[Dynamo] 複数のファミリをひとつにまとめる

皆様こんにちは。
AMDlabの秋山です。

今回は、複数のファミリを1つにまとめたいと思います。
社内のあるプロジェクトでtfasデータに触れる機会がありました。
tfasとはダイテック社が開発した3DCG機能を搭載した建築設備専用CADソフトになります。
設備に特化したBIMのため設備図作成時は使いやすいのですが、tfasデータをRevitにインポートする際にいくつか問題点が出てきます。

  1. インポートに時間がかかる
  2. パラメータ名が統一されない
  3. ダクトや配管継手にクリアランスができてしまう
  4. ファミリカテゴリが異なる
  5. ファミリがひとつひとつインポートされる

このなかでも問題点5は、tfasデータを使用した設備の図面化、データを整理する際に、特に時間を要すことになります。
今回こちらの問題点をDynamoを使用して
ある程度作業を効率化することができたので解説していこうと思います。

今回、tfas上のFCUという同じ部材20個をRevitにインポートしてみます。

↑インポートすると、このように形状が同じファミリでさえ{ファミリ名+数字}が連番で作成されてしまいます。また、今回はFCUが機械設備カテゴリに配置されました。(tfasデータによってはFCUが衛生器具カテゴリに配置されることもあります。←問題点.4になります)

※今回変更するファミリは形状の同じ異なるファミリになるため、分かりやすいようにファミリ名の異なるものは色を変えています。(今回FCUファミリは20個なので20色)
これらのファミリをRevit上でひとつのファミリに変更するには、ファミリをクリックしてプロパティからファミリを変更するか、タイププロパティ一致ツールを使用する必要があります。
同じファミリカテゴリなら、ファミリを全選択してプロパティからひとつに変更することも可能ですが、本来の設計業務では、機械設備カテゴリにはFCUだけということはありません。
複数のファミリが存在する場合は取り込んだtfasのファミリ名に合わせて、ビューのフィルタ設定や、ファミリひとつひとつに表示、非表示をしていく必要があります。

※あらかじめビューのフィルタ設定ができていると問題ありませんが、ゼネコンさんから頂くデータはプロジェクトによってファミリ名がそれぞれ異なるため、FCU以外の他のファミリが選択されている場合、こちらのやり方では手間です。

そこでDynamo上で以下のようなグラフを作成することにしました。
今回は、既存のファミリ位置からロケーションを取得し、ファミリひとつひとつがもつ基準点に新たなファミリを配置していくやり方を行います。
追加するカスタムパッケージがあるので、初めにダウンロードお願いします。

1.Categories
RevitのファミリカテゴリからFCUが配置されている機械設備カテゴリを選択します。
2.All Elements of Category
このプロジェクトに含まれる機械設備カテゴリの要素一覧が表示されます。
3.Element.ElementType
2で表示された要素のファミリタイプを取得します。
4.FamilyType.Family
3で表示されたファミリタイプのファミリを取得します。
5.Element.Name+

機械設備カテゴリのファミリ名からFCUの名前をもつファミリインスタンスだけを抽出したいのですが、
Dynamo標準ノードにはアウトプット先がstringのものしかないため、Dynamoのパッケージを追加しています。
Element.Name+はアウトプット先がFamilynameとなるカスタムノードになっています。
6&7.String.Contains
ファミリ名にFCUという名前をもつものにはtrueをそうでないものにはfalseで分けていきます。
8.List.FilterBoolMask
trueのファミリを置き換えます。
9&10.FamilyInstance.ByPointAndLevel

FCU1~20の挿入点を取得し、それらの挿入点にFCUというファミリを新たに配置します。

ファミリを置き換えることによって、問題点4のファミリカテゴリが違う問題も解決されます。

大規模プロジェクトのような複雑なデータを扱うときは同じ形状のファミリでも100を超えてきます。
今回紹介したやり方を活用することで、時間削減をすることができたので、皆さんもぜひ活用してみてください。

ARTICLES