Dynamo根據參數過濾

在Revit中,我們經常需要根據元素的參數值情況進行過濾。下面用一個簡單的例子來說明一下如何根據參數值進行過濾。

本例目的:獲取項目文件中所有牆中「結構用途」參數為「承重」的元素清單,並展示這些元素的名稱。

實現步驟如下:

  1. 獲取所有牆元素

    1. 使用Categories組件,選擇Walls類別

    2. 使用All Elements Of Category組件,將上一步的輸出作為這一步的輸入

  2. 獲取牆元素的「結構用途」參數值

    1. 使用String組件,輸入「結構用途」

    2. 使用GetParameterValueByName組件,將上一步的輸出作為這一步的輸入(parameterName)

    3. 將所有牆元素的輸出作為GetParameterValueByName組件的element輸入

  3. 過濾元素

    1. 使用Number組件,輸入1

    2. 使用==組件,將GetParameterValueByName組件的輸出作為該組件的x輸入,將Number組件的輸出作為該組件的y輸入

    3. 使用FilterByBoolMask組件,將第1步All Elements Of Category組件的輸出作為list輸入,將==組件的輸出作為mask輸入

  4. 獲得元素名稱

    1. 使用Element.Name組件顯示元素名稱

註:由於「結構用途」參數是一個整形參數,參數值為整數(實際上對應內部的枚舉值),因此比較的時候不能用「承重」字元串進行比較。在Revit的參數中,實際上這樣的情況還比較多,另外還有一種情況是參數為元素ID的參數,得到的是元素ID,比較時還需要通過這個ID獲取到元素的名稱進行比較。

下面是完整的組件圖。


推薦閱讀:

Dynamo應用秘籍:9:線與面的Parameter
Dynamo應用秘籍:3:理解關聯式語法
BIM一波流第十彈——利用dynamo自動放樁

TAG:AutoDeskRevit | Dynamo |