當前位置:成語大全網 - 古籍善本 - Revit如何創建選擇集和搜索集?

Revit如何創建選擇集和搜索集?

您知道revit如何創建選擇集和搜索集嗎?似乎大多數人都不知道甚至覺得這個名字很陌生,但如果妳是在學習使用revit,那妳壹定知道。這是我們常用的功能之壹,不用我多說。下面將詳細介紹如何在revit中創建選擇集和搜索集的教程。如果妳想了解和學習,請繼續閱讀。如何在revit教程中創建選擇集和搜索集在Revit中,可以使用過濾器選擇所需族類別下的所有圖元,同樣,Grasshopper可以根據族類別選擇所有圖元。但是我們選擇之後,還能再利用嗎?答案是肯定的。在Revit中,過濾壹類圖元後,可以在“修改上下文”選項卡的最右側找到“保存”按鈕來保存當前選擇集。

但Revit只能根據族類別過濾圖元,而Grasshopper可以更精確地按參數過濾,並且在過濾完成後,直接創建選擇集,需要時直接在Revit中重新加載選擇集。

例如,要過濾註釋參數為“房間”的所有墻,可以先選擇所有墻,然後根據參數進行過濾:

同時創建壹個參數過濾器,將“Annotation”的參數值過濾為“Room”,然後通過壹個“LogicalAndFilter”節點將兩個過濾器合並:

這樣,通過“QueryElements”節點,很容易根據前面的兩個過濾器過濾出所需的墻:

這壹步很順利,但是當妳想創建壹個選擇集的時候,妳發現在節點庫中沒有現成的節點來創建選擇集。這時候妳只能查詢API,看看是否可以用代碼解決:

所以打開RevitAPI手冊,搜索ionFilterElement的方法,我們可以看到:

找創建方法很簡單,基礎語法超級簡單,可以直接套用:

selset=ionFilterElement。(文檔,名稱)

但實際寫下來,我發現還是有很多問題需要註意:

壹種是,在創建選擇集時,需要先判斷項目中是否存在同名選擇集,因為存在無法創建的同名選擇集。這裏不需要刪除選擇集,只需要清空選擇,然後就可以把選中的圖元添加進去;

另壹種是新創建的選擇集是空的,需要將選中的圖元添加到其中。使用的方法是:AddSet,語法如下:

如果妳把這兩個問題想清楚了,就可以順利的寫代碼了。完整的代碼如下:

#Copyright(c)2020,九歌bimerimportclrclr . add reference(' system . core ')clr . add reference(' rhino inside . revit ')clr . add reference(' revit API ')clr . add reference(' revitapiui ')。fromSystemimportEnum,actionimportrhinoscriptsyntaxasrsimportrhinoimportrhinoinsideimportgrasshopperfromsgrasshop。KernelimportGH _ runtimemessagelevelasmlfromrinoinside。Re vitimportRevit,Convert#還可以添加擴展方法#這允許調用。ToXXX()轉換器方法clr。importextensions (convert。幾何圖形)。revit對象上的revimeportdbfromutdesk . revit . db import *#。訪問活動文檔對象doc=Revit。ActiveDBDocument#來過濾原語ids=list()ifnotisinstance(E,List): e = [e] else: e = eforeine: ids。append (e.id) itemset = set (ids) #從模型中收集所有現有的篩選器names = list()collector = filterdelementcollector(doc)filters = collector。類的(filterelement)。to元素。selset = false set = Transaction(doc,' create selection set') t.Start()#如果具有該名稱的選擇集已經存在,則刪除其內容以進行過濾filters:If filter . name = = name:filter . clear()selset = filter #創建新的選擇集(如果選擇集不存在)If selset = = false:selset = ionfilterelement。(Doc,Name)#將選定的基本體添加到選擇集try: selset。addset (itemset) out = selset。todsttype(false)except:out = nonet。commit () print (out)這裏有幾個步驟來編寫代碼:

1.收集要添加到選擇集中的圖元並獲得ID列表;

2.獲取模型中的選擇集。

3、判斷模型中的選擇集與待創建的選擇集是否同名;

4.如果存在同名的選擇集,請清空選擇。

5.如果沒有同名的選擇集,則創建壹個新的選擇集。

6.將過濾後的圖元添加到選擇集中。

最後放壹張過濾墻全圖添加選擇集供大家參考:這就是“Revit中創建選擇集和搜索集的方法課程”。看完以上內容,妳對創建選擇集和搜索集有什麽了解嗎?關註了解更多圖文教程“文章”。