版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Autodesk?Revit2016
二次開發(fā)入門教程
第4課時
第四章圖元過濾第一節(jié)周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司上節(jié)回顧元素基礎如何獲取元素元素與元素類型元素的屬性與重要方法元素參數(shù)概念與實例010304應用過濾器快速過濾器QuickFilter
本章內(nèi)容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter01元素過濾器注意:無論應用的條件和過濾器的順序是什么,Revit內(nèi)部會對過濾器重新排序來減少元素的展開。RevitAPI提供了元素過濾器,用來遍歷元素以及元素的ID.這些過濾器為各種不同的應用程序獲取元素提供了更靈活更實用的接口。元素過濾器是一個檢驗一個元素是否符合某種標準的類。它被分為三個層次:
快速過濾器(Quickfilters)只檢查記錄的元素并防止元素在內(nèi)存中展開。這種過濾器可以提高迭代的效率并減少內(nèi)存的消耗慢速過濾器(Slowfilters)先在內(nèi)存中獲取和展開元素,再進行查詢,因此在效率上會比較低。推薦的方法是慢速過濾器和快速過濾器結(jié)合起來用,這樣會減少展開元素的數(shù)量。邏輯過濾器(Logicalfilters)由兩個及以上的過濾器邏輯組成的過濾器01元素過濾器?查找、過濾、遍歷元素。?基于Document;支持特定View和元素集?支持Filter及復雜的組合Filter。?Shortcut方法,快速返回。?支持集合的合并?!uickfilters快速過濾器–
快速查找過濾器:性能好,內(nèi)存占用低。·Slowfilters慢速過濾器–
性能較差,耗時多,內(nèi)存占用多?!ogicalfilters邏輯過濾器–
多個過濾器的組合。02元素收集器用來迭代以及過濾元素的主要類是收集器,它有三種構造方式(如下圖),可根據(jù)具體情況使用任意一種。收集器的三種構造函數(shù)構造函數(shù)描述FilteredElementCollector(Documentdocument)從一個文檔構造,迭代會從文檔所有的元素進行FilteredElementCollector(Documentdocument,Icollection<ElementId>elementIds)從一個文檔和ElementID集合構造,迭代會從這傳進來的集合中進行FilteredElementCollector(Documentdocument,ElementIdviewId)從一個文檔和一個視圖構造,迭代會從所有在傳進來的視圖中所見的元素中進行02元素收集器public
class
FilteredElementCollector
:
IEnumerable<Element>LINQpublic
static
class
Enumerable
{
public
static
IEnumerable<TSource>
Where<TSource>(this
IEnumerable<TSource>
source,
Func<TSource,
bool>
predicate);
public
static
IEnumerable<TSource>
Where<TSource>(this
IEnumerable<TSource>
source,
Func<TSource,
int,
bool>
predicate);}擴展函數(shù)FilteredElementCollector
collector
=
new
FilteredElementCollector(RevitDoc);ElementClassFilter
classFilter
=
new
ElementClassFilter(typeof(Wall));collector
=
collector.WherePasses(classFilter);var
basicWalls1
=
from
element
in
collector
let
wall
=
element
as
Wall
where
wall.WallType.Name
==
"基本墻"
select
wall;var
basicWalls2
=
collector.Cast<Wall>().Where(wall
=>
wall.WallType.Name
==
"基本墻");
LINQ擴展函數(shù)03應用過濾器過濾操作的步驟:1.新建FilteredElementCollector實例·varcoll=newFilteredElementCollector(_doc);2.添加過濾條件·coll.WherePasses(newElementClassFilter(typeof(Wall)));3.訪問滿足條件的對象·IList<Element>walls=wallTypeCollector1.ToElements();RevitAPI開發(fā)論壇
Revit開發(fā)幫助Revit開發(fā)討論帖
Revit開發(fā)討論中國BIM論壇
Revit開發(fā)源碼下載Autodesk,Asia,Pte,Ltd.AutodeskRevit二次開發(fā)基礎教程[M].上海市四平路1239號:同濟大學出版社,2015.1-37參考文獻賈合豐.
2016Autodesk最新開發(fā)計劃培訓課程資料賈合豐.
Revit開發(fā)進階(基本篇2)謝謝觀看!Autodesk?Revit2016
二次開發(fā)入門教程
第5課時
第四章圖元過濾第二節(jié)周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司上節(jié)回顧元素過濾器ElementFilter元素收集器FilterElementCollector應用過濾器010304應用過濾器快速過濾器QuickFilter
本章內(nèi)容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter04快速過濾器1)ElementCategoryFilterElementCategoryFilter是使用類別Category來查詢元素的過濾器?!ぶС諩lement及ElementType·共有900+OST_DoorOST_Column….·快捷方法:OfCategory/OfCategoryId04快速過濾器2)ElementClassFilterElementClassFilter是使用類來查詢元素的過濾器,它將會精確匹配傳入的類或者該類的子類。通用的按元素類進行查找可替代其他Filter:·Room/Area/Space/…Filter·快捷方法:OfClass
注意例外!04快速過濾器3)ElementIsElementTypeFilterElementIsElementTypeFilter是用來匹配元素類型的過濾器,可以過濾出文檔中所有的元素類型的元素或者過濾出所有非元素類型的元素?!た旖莘椒ǎ篧hereElementIsElementType WhereElementIsNotElementType04快速過濾器4)ExclusionFilterExclusionFilter是自動排除元素集的過濾器?!た旖莘椒ǎ篍xcluding04快速過濾器5)FamilySymbolFilterFamilySymbolFilter是使用傳入的族來得到其所有族類型的過濾器。04快速過濾器
常用子類:·Category·Class·CurveDriven·ElementType·OwnerView·Workset·FamilySymbol·BoundingBox·…05慢速過濾器1)ElementLevelFilterElementLevelFilter是使用關聯(lián)的標高(Level)來匹配其關聯(lián)或不關聯(lián)的元素。05慢速過濾器2)ElementParameterFilterElementParameterFilter是使用一個或者多個參數(shù)過濾規(guī)則來匹配元素的過濾器·元素參數(shù)精確匹配·FilterRule的用途·ParameterFilterRuleFactory構造各種Rule·四種參數(shù)類型!·==,!=,>=,<=,>,<,…05慢速過濾器3)FamilyInstanceFilterFamilyInstanceFilter是使用族類型來匹配對應族實例元素的過濾器。05慢速過濾器4)CurveElementFilterCurveElementFilter是匹配線型元素的過濾器。如果想要找模型線、參考線等線型元素,使用這個過濾器會比較方便。05慢速過濾器
常用子類·CurveElement·Room/Area/Space·FamilyInstance·XXXUsage·ElementIntersect·ElementParameter·…06邏輯過濾器1)LogicalOrFilterLogicalOrFilter是過濾器的邏輯或集合,可以查找匹配符合任意一個過濾器條件的元素。2)LogicalAndFilterLogicalAndFilter是過濾器的邏輯與集合,可以查找匹配符合所有過濾器條件的元素。其他更多FilterRevitAPI開發(fā)論壇
Revit開發(fā)幫助Revit開發(fā)討論帖
Revit開發(fā)討論中國BIM論壇
Revit開發(fā)源碼下載Autodesk,Asia,Pte,Ltd.AutodeskRevit二次開發(fā)基礎教程[M].上海市四平路1239號:同濟大學出版社,2015.1-37參考文獻賈合豐.
2016Autodesk最新開發(fā)計劃培訓課程資料賈合豐.
Revit開發(fā)進階(基本篇2)謝謝觀看!Autodesk?Revit2016
二次開發(fā)入門教程
第6課時
第四章圖元過濾第三節(jié)周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司章節(jié)回顧元素過濾器ElementFilter元素收集器FilterElementCollector如何應用過濾器快速過濾器QuickFilter慢速過濾器SlowFilter邏輯過濾器LogicalFilter010304應用過濾器快速過濾器QuickFilter
本章內(nèi)容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter實例練習1:元素過濾ElementFilter(1)在范例圖中計算過濾出所有型號為1200*1500mm,且標記為小于5的窗數(shù)量。識別并計算門窗總和?!ilteredElementCollector的使用·QuickFilter及SlowFilter·ElementParameterFilter·LogicalFilter實例練習2:元素過濾ElementFilter(2)·
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年運載火箭遙測系統(tǒng)檢測設備投資申請報告
- 2023年會議電視圖像保密機資金申請報告
- 黃石市初中畢業(yè)生學業(yè)考試語文模擬試卷
- 6高中數(shù)學新教材課堂導學案(直線的方程)及答案
- 山東省濟南市槐蔭區(qū)西城實驗學校2024-2025學年八年級上學期開學考試數(shù)學試題
- 電視節(jié)目自動播出設備相關行業(yè)投資方案
- 歷史知識清單2024~2025學年統(tǒng)編版九年級歷史上冊
- 協(xié)作辦公順暢性
- 氟伐他汀的長期安全性評估
- 港口數(shù)據(jù)智能化管理
- 晚期食管癌治療進展
- 建筑工程高大模板施工技術培訓講義
- 客房代理運營方案
- 新兵心理培訓課件
- 2024年陜西柴油機重工有限公司招聘筆試參考題庫含答案解析
- 《系列七:防微杜漸加強零售消費行業(yè)合規(guī)風險管理》
- 小學一年級《體育與健康》教學課件
- 三 《聯(lián)系生活實際 弘揚工匠精神》(教學設計)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- 鋼架維修施工方案
- 中學生講安全演講課件
- 人工智能在智能智能智能制造領域的應用
評論
0/150
提交評論