Dynamo :: SubcategoryごとにGeometryを取得

 

DynamoでRevit内に配置されたFamilyからGeometryを取得する際、Categoryを元に選択することはよくあるかと思いますが、

試しに、RevitからリビングテーブルFamilyを、デフォルトのノードから取得すると、このように一つのリストに全てのGeometryが格納されます。

この場合、天板と幕板、脚のGeometryを別々に利用したい時には、インデックスなどから手動でリストを分けることになってしまいます。

そこで今回は、FamilyのSubcategoryを利用して、部材ごとにGeometryをリスト分けする方法について扱います。

 

レシピ

レシピは上図の通りです。(Dynamoのバージョンは2.0.1)

Subcategoryを取得するにあたり、Clockwork(2.x)とOrchidの2つパッケージを利用しています。

Orchidはパッケージマネージャーからではなく、GitHubからダウンロードします。

Orchid for Dynamo

ダウンロードされたファイルの[Builds]フォルダ内にインストーラーが格納されています。

それでは、順を追って説明します。

 

1.FamilyにSubcategoryを割り当て

まずは、Subcategoryごとにリストを分けるため、Revit内で元となるFamilyにSubcategoryを割り当てます。

ここでは、[リビングテーブル]Familyを編集して、Subcategoryを追加しました。

 

2.FamilyTypeからFamilyを取得

続いてDynamoに移り、[Family Types]ノードで対象のFamilyを選択し、

Orchidの[GetFamilyDocument]ノードに繋ぎます。

 

3.CategoryからSubCategoryを取得

Familyとは別に、[Categories]ノードからCategoryを選択し、Clockworkの[Subcategories]ノードへ繋ぎます。

 

4.FamilyとSubcategoryからElementを取得

最後に、Orchidの[ElementByCategory]ノードでSubcategoryごとにElementを取得し、[Geometry]ノードに繋ぐと、Subcategoryごとにリストが分かれたGeometryを取得することができました。

 

 

おわりに

いかがでしたか。Subcategoryは手動で割り当てる必要がありますが、Dynamoでは扱い易くなったのではないでしょうか。

ぜひお試しください。

 

使用した主なノード
  • [GetFamilyDocument] (Orchid > Elements > FamilyType > GetFamilyDocument)
  • [Subcategories] (Clockwork > Revit > Elements > Subcategories)
  • [ElementByCategory] (Orchid > Elements > Selection > ElementByCategory)

 

参考

コメントを残す