遍歷過濾物件,得到想要的物件,是revit二次開發乙個重要的操作。
/**revit物件的標識
* revit物件的類名稱
* 直接可以用類名唯一標識出來:如:wall,walltype,floor,floortype..
* 不同物件,但是共用乙個類:familyinstance,familysymbol,family,element
* * rervit物件的category名稱
* 通過revit的category可以唯一標識物件的類別
* 門例項和門型別具有相同的category
* * 其他屬性
* 如所在的樓層
* 如某乙個引數的值
* * 如何識別revit中不同的物件
* 根據標識來識別區分不同的物件
* 只使用類名來判斷
* 它們的特點:
* 片關能容納其它物件或特定用途的類
* 如:wall,floor,contfooting,celingandfloor等系統族的例項
* * 如果通過類名無法分別出來,需要聯合物件的類別(category)來判斷
* 門窗柱等物件沒有專用的類來表示,都是familyinstance的例項
* 用category來判斷其類別
* 用列舉型的builtincategory,來建立elementcategoryfilter物件,支援多國語言
*/[transaction(transactionmode.automatic)]
[regeneration(regenerationoption.automatic)]
public
class
getelement : iexternalcommand個"
, lists.count);
messagebox.show(strmsg);
//使用過濾器
filteredelementcollector collector2
=new
filteredelementcollector(doc);
elementclassfilter classfilter
=new
elementclassfilter(
typeof
(familyinstance));
elementcategoryfilter catfilter
=new
elementcategoryfilter(builtincategory.ost_doors);
//把過濾器聯合起來
logicalandfilter logicalfilter
=new
logicalandfilter(classfilter, catfilter);
collector2.wherepasses(logicalfilter);
ilist
<
element
>
list2
=collector2.toelements();
strmsg
=string
.format(
"有門個
", list2.count);
messagebox.show(strmsg);
}catch
(exception e)
return
result.succeeded;}}
Revit二次開發 過濾元素
在revit二次開發中,過濾指定型別元素的需求是很常見的,比如說獲取標高 軸網 三維檢視 familysymbol等等,於是乎 元素過濾服務 public static class filterelementservice filteredelementcollector collector vie...
Revit二次開發 初學
前言 由於工作需要,近期開始學習revit二次開發知識。學習的同時將學習過程與小夥伴們一起分享,希望後來的小夥伴在看到我的學習筆記的時候有所幫助。說明由於revit的版本在不斷更新中,所以我在學習revit的時候選擇了從revit自帶的幫助檔案開始學習,不同版本的revit,就看相應的help檔案。...
revit二次開發之單位轉換
revit內部基本單位是英呎,如果要獲取或設定構件引數數值需要進行單位轉換,比如轉換為基本的公釐或公尺等單位 1.可以使用常規方式進行轉換 1英呎等於0.3047999995367公尺,等於304.7999995367公釐 2.可以使用revitapi內建的轉換函式進行目標單位的轉換 使用unitu...