Revit獲取過濾元素或ID

2021-08-28 05:18:17 字數 2588 閱讀 1494

## 獲取過濾元素或元素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...