中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Revit如何通過過濾器獲取元素

發布時間:2022-03-18 13:56:58 來源:億速云 閱讀:98 作者:iii 欄目:大數據

今天小編給大家分享一下Revit如何通過過濾器獲取元素的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

獲得元素的辦法:

1、創建一個收集器(Collector)

FilteredElementCollector fil = new FilteredElementCollector(doc);

這里舉個栗子:

你媽剛從超市買了過年要吃的蠶豆和綠豆,結果被你個混小子打破袋子,全都掉在地上混在一起,你媽要你馬上給她整理好,你天資聰慧不想一顆一顆去撿,想了一個好辦法就是用篩子篩選出來,那么我們要先把散落在地上的大豆和綠豆用簸箕掃起來,收集器在這里就是簸箕的作用,把散落在doc的構件收集起來裝在fil這個容器里。

2、創建一個過濾器

ElementClassFilter el = new ElementClassFilter(typeof(Wall));(類過濾器)

過濾器就是我們的篩子,可以用來篩選蠶豆和綠豆,留下你想要的。當然篩子的種類有多種多樣,我們的API同樣提供了多種篩子。

ElementCategoryFilter eld = new ElementCategoryFilter(BuiltInCategory.OST_Doors);(類別過濾器)

過濾好了以后,要拿出來你需要的東西,那么我們需要進行獲取。

(1)調用 fil.WherePasses( );

  fil.WherePasses(el);這樣我們就獲取了收集器fil中的墻的類型。

          fil2.WherePasses(el2);我們獲取了收集器fil2里的所有的門。

         有些人可能會有疑問,或者會犯這種錯誤:在同一個收集器里調用兩次.WherePasses( ),這會造成一個問題你所取得的構件是0個。因為收集器你篩選一遍獲得墻之后,你再去篩選就只剩下墻了,你不可能再去篩選出來門。可你能從墻里再篩選出來疊層墻。這就像你在豬圈里能找到豬,在豬里能找到小黑豬,但你肯定找不到驢,是一個道理。(可能比喻不夠恰當,但就是這個理。)

(2)利用邏輯過濾器

  ElementClassFilter el = new ElementClassFilter(typeof(FamilyInstance));(過濾出族實例)

            ElementCategoryFilter eld = new ElementCategoryFilter(BuiltInCategory.OST_Windows);(過濾出窗戶)

            利用邏輯過濾器來過濾族實例里的窗戶:

            LogicalAndFilter door = new LogicalAndFilter(el, eld);

(3)of的簡便方法

利用of來獲取墻:

  fil.OfClass(typeof(Wall));

利用of來獲取窗戶:

  fil.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_Windows);

以上就是“Revit如何通過過濾器獲取元素”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁晋县| 海门市| 灵川县| 潮安县| 金昌市| 平罗县| 宝兴县| 阿克| 凤山县| 南安市| 山东| 建平县| 郁南县| 毕节市| 廊坊市| 横峰县| 龙南县| 珠海市| 赤水市| 洛扎县| 泾阳县| 大理市| 类乌齐县| 泾源县| 两当县| 昌黎县| 丹凤县| 封开县| 涡阳县| 西青区| 化德县| 且末县| 潞西市| 岑溪市| 康定县| 昌平区| 铜梁县| 沧源| 宁海县| 香河县| 忻城县|