過濾器

過濾器分為過濾器和選擇過濾器,主要用來批量選擇Revit文檔里的我們所需要的圖元。

下面我們開始演示過程,首先建立一個基本的接口環(huán)境

一.過濾器

??? 1.? FilteredElementCollect:被過濾元素收集器,得到的是需要過濾的元素,而不是過濾后剩下的元素

??????? //建立收集器

?????? FilteredElementCollector collector = new FilteredElementCollector(doc );

???????? 2.? ElementClassFilter:元素類過濾器,根據(jù)類(族,族類別,族實例)對Revit文檔中的元素進行過濾,獲取所需傳入類的元素

???? 利用元素類過濾器對收集器進行過濾

? ?? ElementClassFilter classFiter = new ElementClassFilter(typeof(Wall));

? ?? collector = collector.WherePasses(classFiter);

???? 最后通過把圖元轉(zhuǎn)換為id來提取出所需元素。然后通過Revit----附加元素—外部工具—add in Manager ——run來運行,成功。

???????? 3.? ElementCategoryFilter:元素類別過濾器,所有基類為element類的元素都有一個category屬性用于表示類所屬的類別。

利用元素類別過濾器對收集器進行過濾

ElementCategoryFilter categoryFilter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);

collector = collector.WherePasses(categoryFilter);

Category的名稱可以通過如下方式查看,框出所選圖元——附加工具——Revit Lookup——snoop current selection ,得到如下圖

運行成功。

二.選擇過濾器

主要是用戶在執(zhí)行命令過程中,讓用戶自行選擇所要的構(gòu)件或者構(gòu)建集。

首先建立一個新類public class WallSelectionFilter : ISelectionFilter,并且實現(xiàn)接口,選擇所需要選擇構(gòu)建的名稱

在主函數(shù)里面添加ISelectionFilter wallFilter = new WallSelectionFilter();? ??

??? ? ?? ? IListelementList = uidoc.Selection.PickObjects(ObjectType.Element, wallFilter, "請選擇墻");

生成解決方案,框選所需要選擇的部分,成功。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 視頻連接v.bimcc.com/course/35/tasks 常用過濾器:過濾器、選擇過濾器 一、過濾器 建立一...
    _skyky閱讀 1,605評論 0 2
  • Reference:tableau教程 w3c school 數(shù)據(jù)源 1. Tableau基本排序 數(shù)據(jù)排序是數(shù)據(jù)...
    mcdullsnow閱讀 15,835評論 0 3
  • 基于列過濾的過濾器 1,ColumnPaginationFilter列分頁過濾器:基于列進行分頁,需要設(shè)置偏移量與...
    Coffeelong閱讀 5,465評論 0 7
  • 在朋友圈剛夸了它兩句,肚子就不自在了。公司的食堂是沒有心思想要做好了呀。害我們都次壞了肚子;這么有情懷的食堂,沒有...
    AnnaWT閱讀 174評論 0 0
  • 江南梅雨季節(jié),心情也淅淅瀝瀝,心靈上的孤單寂寞,只能寄情于畫作。
    周海雙閱讀 273評論 2 4

友情鏈接更多精彩內(nèi)容