## 獲取過濾元素或元素id
一旦將乙個或多個過濾器應用於filteredelementcollector,過濾後的集合
可以通過以下三種方式之一檢索元素:
1.獲取elements或elementids的集合。
toelements() - 返回通過所有應用過濾器的所有元素
toelementids() - 返回傳遞所有應用過濾器的所有元素的elementids
2.獲取與過濾器匹配的第乙個element或elementid。
firstelement() - 返回第乙個元素以傳遞所有應用的過濾器
firstelementid() - 返回第乙個元素的id以傳遞所有應用的過濾器
3.獲取elementid或element迭代器。
getelementiditerator() - 將filteredelementiditerator返回給傳遞的元素id過濾器
getelementiterator() - 將filteredelementiterator返回給傳遞的元素過濾器
getenumerator() - 返回迴圈收集的ienumerator 傳遞元素
## 使用toelements()獲取過濾結果
elementclassfilter filter = new elementclassfilter(typeof(loadbase));
filteredelementcollector collector = new filteredelementcollector(document);
collector.wherepasses(filter);
icollectionallloads = collector.toelements();
string prompt = "the loads in the current document are:\n";
foreach (element loadelem in allloads)
taskdialog.show("revit", prompt);
```## 獲取第乙個傳遞元素
structuralinstanceusagefilter columnfilter =new structuralinstanceusagefilter(structuralinstanceusage.column);
filteredelementcollector collector = new filteredelementcollector(document);
collector.wherepasses(columnfilter);
familyinstance column = collector.firstelement() as familyinstance;
```## 使用擴充套件方法獲取第乙個傳遞元素
filteredelementcollector collector = new filteredelementcollector(document);
funcisnottemplate = v3 => !(v3.istemplate);
collector.ofclass(typeof(view3d));
view3d view3d = collector.cast().first(isnottemplate);
## 使用獲取過濾器結果作為元素id
```filteredelementcollector collector = new filteredelementcollector(document);
collector.ofclass(typeof(view3d));
elementid viewid = collector.firstelementid();
if (filteredelementcollector.isviewvalidforelementiteration(document, viewid))
```## 將結果作為元素迭代器獲取
```filteredelementcollector collector = new filteredelementcollector(document);
collector.ofclass(typeof(autodesk.revit.db.plumbing.pipe));
filteredelementiterator elemitr = collector.getelementiterator();
elemitr.reset();
while (elemitr.movenext())
}```
## 將結果作為元素id迭代器獲取
roomfilter filter = new roomfilter();
filteredelementcollector collector = new filteredelementcollector(document);
collector.wherepasses(filter);
filteredelementiditerator roomiditr = collector.getelementiditerator();
roomiditr.reset();
while (roomiditr.movenext())
}```
Revit開發之元素過濾
revit 二次開發 中提供了乙個filteredelementcollector 類,通過這個類我們可以方便的獲取到 我們想要獲取的 這個類返回的是乙個 的集合,他有 種建構函式 1.filteredelementcollector document 這個是返回傳入document中的所有elem...
獲取id元素 DOM元素節點獲取方法
1dom dom全稱是document object model,也叫文件物件模型,這裡document是指從開始到結束的這一部分,window視窗下載入網頁的部分就是dom。dom節點型別分為元素節點,屬性節點和文字節點。如 div文字 元素節點就是 2dom元素節點獲取方法2.1document...
Revit二次開發 過濾元素
在revit二次開發中,過濾指定型別元素的需求是很常見的,比如說獲取標高 軸網 三維檢視 familysymbol等等,於是乎 元素過濾服務 public static class filterelementservice filteredelementcollector collector vie...