




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Autodesk?Revit2016
二次開發入門教程
第4課時
第四章圖元過濾第一節周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司上節回顧元素基礎如何獲取元素元素與元素類型元素的屬性與重要方法元素參數概念與實例010304應用過濾器快速過濾器QuickFilter
本章內容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter01元素過濾器注意:無論應用的條件和過濾器的順序是什么,Revit內部會對過濾器重新排序來減少元素的展開。RevitAPI提供了元素過濾器,用來遍歷元素以及元素的ID.這些過濾器為各種不同的應用程序獲取元素提供了更靈活更實用的接口。元素過濾器是一個檢驗一個元素是否符合某種標準的類。它被分為三個層次:
快速過濾器(Quickfilters)只檢查記錄的元素并防止元素在內存中展開。這種過濾器可以提高迭代的效率并減少內存的消耗慢速過濾器(Slowfilters)先在內存中獲取和展開元素,再進行查詢,因此在效率上會比較低。推薦的方法是慢速過濾器和快速過濾器結合起來用,這樣會減少展開元素的數量。邏輯過濾器(Logicalfilters)由兩個及以上的過濾器邏輯組成的過濾器01元素過濾器?查找、過濾、遍歷元素。?基于Document;支持特定View和元素集?支持Filter及復雜的組合Filter。?Shortcut方法,快速返回。?支持集合的合并。·Quickfilters快速過濾器–
快速查找過濾器:性能好,內存占用低。·Slowfilters慢速過濾器–
性能較差,耗時多,內存占用多。·Logicalfilters邏輯過濾器–
多個過濾器的組合。02元素收集器用來迭代以及過濾元素的主要類是收集器,它有三種構造方式(如下圖),可根據具體情況使用任意一種。收集器的三種構造函數構造函數描述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);}擴展函數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擴展函數03應用過濾器過濾操作的步驟:1.新建FilteredElementCollector實例·varcoll=newFilteredElementCollector(_doc);2.添加過濾條件·coll.WherePasses(newElementClassFilter(typeof(Wall)));3.訪問滿足條件的對象·IList<Element>walls=wallTypeCollector1.ToElements();RevitAPI開發論壇
Revit開發幫助Revit開發討論帖
Revit開發討論中國BIM論壇
Revit開發源碼下載Autodesk,Asia,Pte,Ltd.AutodeskRevit二次開發基礎教程[M].上海市四平路1239號:同濟大學出版社,2015.1-37參考文獻賈合豐.
2016Autodesk最新開發計劃培訓課程資料賈合豐.
Revit開發進階(基本篇2)謝謝觀看!Autodesk?Revit2016
二次開發入門教程
第5課時
第四章圖元過濾第二節周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司上節回顧元素過濾器ElementFilter元素收集器FilterElementCollector應用過濾器010304應用過濾器快速過濾器QuickFilter
本章內容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter04快速過濾器1)ElementCategoryFilterElementCategoryFilter是使用類別Category來查詢元素的過濾器。·支持Element及ElementType·共有900+OST_DoorOST_Column….·快捷方法:OfCategory/OfCategoryId04快速過濾器2)ElementClassFilterElementClassFilter是使用類來查詢元素的過濾器,它將會精確匹配傳入的類或者該類的子類。通用的按元素類進行查找可替代其他Filter:·Room/Area/Space/…Filter·快捷方法:OfClass
注意例外!04快速過濾器3)ElementIsElementTypeFilterElementIsElementTypeFilter是用來匹配元素類型的過濾器,可以過濾出文檔中所有的元素類型的元素或者過濾出所有非元素類型的元素。·快捷方法:WhereElementIsElementType WhereElementIsNotElementType04快速過濾器4)ExclusionFilterExclusionFilter是自動排除元素集的過濾器。·快捷方法:Excluding04快速過濾器5)FamilySymbolFilterFamilySymbolFilter是使用傳入的族來得到其所有族類型的過濾器。04快速過濾器
常用子類:·Category·Class·CurveDriven·ElementType·OwnerView·Workset·FamilySymbol·BoundingBox·…05慢速過濾器1)ElementLevelFilterElementLevelFilter是使用關聯的標高(Level)來匹配其關聯或不關聯的元素。05慢速過濾器2)ElementParameterFilterElementParameterFilter是使用一個或者多個參數過濾規則來匹配元素的過濾器·元素參數精確匹配·FilterRule的用途·ParameterFilterRuleFactory構造各種Rule·四種參數類型!·==,!=,>=,<=,>,<,…05慢速過濾器3)FamilyInstanceFilterFamilyInstanceFilter是使用族類型來匹配對應族實例元素的過濾器。05慢速過濾器4)CurveElementFilterCurveElementFilter是匹配線型元素的過濾器。如果想要找模型線、參考線等線型元素,使用這個過濾器會比較方便。05慢速過濾器
常用子類·CurveElement·Room/Area/Space·FamilyInstance·XXXUsage·ElementIntersect·ElementParameter·…06邏輯過濾器1)LogicalOrFilterLogicalOrFilter是過濾器的邏輯或集合,可以查找匹配符合任意一個過濾器條件的元素。2)LogicalAndFilterLogicalAndFilter是過濾器的邏輯與集合,可以查找匹配符合所有過濾器條件的元素。其他更多FilterRevitAPI開發論壇
Revit開發幫助Revit開發討論帖
Revit開發討論中國BIM論壇
Revit開發源碼下載Autodesk,Asia,Pte,Ltd.AutodeskRevit二次開發基礎教程[M].上海市四平路1239號:同濟大學出版社,2015.1-37參考文獻賈合豐.
2016Autodesk最新開發計劃培訓課程資料賈合豐.
Revit開發進階(基本篇2)謝謝觀看!Autodesk?Revit2016
二次開發入門教程
第6課時
第四章圖元過濾第三節周婧祎北京谷雨時代教育科技有限公司上海比程信息科技有限公司章節回顧元素過濾器ElementFilter元素收集器FilterElementCollector如何應用過濾器快速過濾器QuickFilter慢速過濾器SlowFilter邏輯過濾器LogicalFilter010304應用過濾器快速過濾器QuickFilter
本章內容05實例練習02元素收集器FilterElementCollector元素過濾器ElementFilter慢速過濾器SlowFilter
0607邏輯過濾器LogicalFilter實例練習1:元素過濾ElementFilter(1)在范例圖中計算過濾出所有型號為1200*1500mm,且標記為小于5的窗數量。識別并計算門窗總和。·FilteredElementCollector的使用·QuickFilter及SlowFilter·ElementParameterFilter·LogicalFilter實例練習2:元素過濾ElementFilter(2)·
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統編版語文六年級下冊第16課《表里的生物》精美課件
- 稻谷種植與農產品市場分析考核試卷
- 秋天的早晨初三語文作文
- 描寫雨的初三語文作文
- 拒絕平庸的初三語文作文
- 體育表演藝術培訓與指導考核試卷
- 畜產品加工與畜產品質量安全控制考核試卷
- 礦山石材的開采對地貌影響考核試卷
- 搪瓷噴漆房通風系統考核試卷
- 三年級數學脫式計算題
- 幼兒園中班語言《跑跑鎮》課件
- 引水隧洞回填灌漿技術交底
- 送達地址確認書(樣本)
- 危險源辨識風險評價記錄表格范例范例
- 房建工程風險點臺賬
- 數學-二年級(下冊)-人教版-《混合運算-解決問題》教學課件
- 行政訴訟證據(39頁)ppt課件
- T∕CHAS 10-4-13-2020 中國醫院質量安全管理 第4-13部分:醫療管理住院患者健康教育
- 量化策略設計及實戰應用PPT通用課件
- 器官移植PPT課件
- 茶藝-認識茶具(課堂PPT)
評論
0/150
提交評論