Revit二次開發在專案中給鏈結模型附加過濾器

2021-09-21 07:04:40 字數 2567 閱讀 3945

檢視過濾器分為規則過濾器與選擇過濾器:

選擇過濾器:需要傳入elementid列表對指定的element進行操作

規則過濾器:通過對指定引數的規則描述,傳入categeorys的id進行操作

具體可參照api

—update—

2019 api刪除掉set*命令與模型顏色指定方法,顏色附加未實驗,需要自己驗證

#if revit2016

var filterelement = parameterfilterelement.create(document, name, categeorys);

filterelement.setrules(filterrules);

view.addfilter(filterelement.id);

document.regenerate();

var overridesettings = view.getfilteroverrides(filterelement.id);

//加入打斷節點,判斷淨高值並進行顏色附加

overridesettings.setprojectionfillcolor(getdbcolorfrommediacolor(dictionary.values.elementat(i)));

overridesettings.setprojectionfillpatternid(patternid(document));

view.setfilteroverrides(filterelement.id, overridesettings);

view.setfiltervisibility(filterelement.id, true);

filterrules.clear();

#elif revit2019

var elemparamfilter = new elementparameterfilter(filterrules);

var parameterfilter = parameterfilterelement.create(document, name, categeorys);

parameterfilter.setelementfilter(elemparamfilter);

view.addfilter(parameterfilter.id);

document.regenerate();

var overridesettings = view.getfilteroverrides(parameterfilter.id);

//加入打斷節點,判斷淨高值並進行顏色附加

overridesettings.setsu***ceforegroundpatterncolor(getdbcolorfrommediacolor(dictionary.values.elementat(i)));

overridesettings.setsu***ceforegroundpatternid(patternid(document));

view.setfilteroverrides(parameterfilter.id, overridesettings);

view.setfiltervisibility(parameterfilter.id, true);

filterrules.clear();

#endif

一般的專案中,如果新增過濾器只需要使用selectionfilterelement這個命令就可以新增成功,當我們對鏈結模型進行操作的時候,由於提取出的list的值是鏈結模型中的id值,對主專案文件沒有作用。這個時候我們需要利用規則過濾器parameterfilterelement進行新增,通過對引數的規則描述進行附加過濾器。

下面的例子,是對鏈結模型中的自定義值在》=value&&

if (!maxvalue.equals(minvalue))

else

parameterfilterelement filterelement = parameterfilterelement.create(document, name, categeorys);

filterelement.setrules(filterrules);

view.addfilter(filterelement.id);

document.regenerate();

overridegraphicsettings overridesettings = view.getfilteroverrides(filterelement.id);

overridesettings.setprojectionfillcolor(getdbcolorfrommediacolor(dictionary.values.elementat(i)));

overridesettings.setprojectionfillpatternid(patternid(document));

view.setfilteroverrides(filterelement.id, overridesettings);

view.setfiltervisibility(filterelement.id, true);

filterrules.clear();

Revit二次開發 初學

前言 由於工作需要,近期開始學習revit二次開發知識。學習的同時將學習過程與小夥伴們一起分享,希望後來的小夥伴在看到我的學習筆記的時候有所幫助。說明由於revit的版本在不斷更新中,所以我在學習revit的時候選擇了從revit自帶的幫助檔案開始學習,不同版本的revit,就看相應的help檔案。...

Revit二次開發 Revit擴充套件儲存資料

revit二次開發過程中,需要將相關資訊儲存到rvt檔案中,再次開啟rvt的時候,可以通過讀取這些資訊,知道當前構件的基本狀態,或者將乙個特殊的資訊儲存到rvt檔案中,從revit2012開始引入了擴充套件儲存這個新技術,就是可以把一些資料儲存在revit中的某乙個物件上。且這個儲存操作,只能通過程...

Revit二次開發 分割族

如有不明白,請qq254033230詢問。其實在revit裡是不存在分割族的概念。對於基於線形的族,截面沿線都是一樣,要想達到分割的狀態,只需要把族基於線的那條線變短,然後再在分割點複製乙個新的族即可。過程是先獲得線的均分點,然後把族的線縮短,接著再複製族,即可變成均分的效果。主要方法見 priva...