Revit開發之元素過濾

2021-07-22 07:28:50 字數 1398 閱讀 6272

revit 二次開發api中提供了乙個filteredelementcollector 類,通過這個類我們可以方便的獲取到

我們想要獲取的element。

這個類返回的是乙個element的集合,

他有3種建構函式

1.filteredelementcollector(document)

這個是返回傳入document中的所有element

2filteredelementcollector(document, elementid)

elementid 是乙個檢視的id ,所以這個是返回這個檢視中所有的element

3filteredelementcollector(document, icollection<

(of<

<'

(elementid>

)>

>))

返回傳入的elementid集合的element

建立了filteredelementcollector 後,我們要做的就是建立 過濾條件

比如 要過濾所有的門

filteredelementcollector doorfilter = new filteredelementcollector(doc);//建立過濾集合

elementcategoryfilter doorcategory = new 

elementcategoryfilter(builtincategory.ost_doors);//建立類別過濾條件

doorfilter .wherepasses(

doorcategory

); //這個返回的是門類別下的所有element,他包括了檔案中的門例項(對應type為familyinstance),和用來建立門例項的型別,(type 對應familysymbol)

elementclassfilter  doortype = new elementclassfilter (typeof(familyinstance));//建立乙個type過濾器
doorfilter .

wherepasses(

doortype

);//過濾掉其中的門型別(

familysymbol

經過上面的兩次過濾doorfilter裡就只剩檔案中建立的門了

上面的兩次過濾也可以簡寫為

doorfilter.ofcategory(builtincategory.ost_doors).ofclass(typeof(familyinstance)

更多過濾器請查手冊

更多技術交流,**qq群480950299

Revit二次開發 過濾元素

在revit二次開發中,過濾指定型別元素的需求是很常見的,比如說獲取標高 軸網 三維檢視 familysymbol等等,於是乎 元素過濾服務 public static class filterelementservice filteredelementcollector collector vie...

Revit獲取過濾元素或ID

獲取過濾元素或元素id 一旦將乙個或多個過濾器應用於filteredelementcollector,過濾後的集合 可以通過以下三種方式之一檢索元素 1.獲取elements或elementids的集合。toelements 返回通過所有應用過濾器的所有元素 toelementids 返回傳遞所有應...

Revit開發之管段

在api裡管段對應了乙個pipesegment類,要獲取可以用class過濾去來過濾 如果要建立管段可以使用pipesegment的create方法來建立,這是個靜態方法 public static pipesegment create document adocument,elementid ma...