Revit二次开发小白学习笔记7——Revit元素过滤器
- 1.说明
- 2.FilteredElementCollector三种方法
- 3.FilteredElementCollector的OfCategory()、OfCategoryId()方法
- 4.FilteredElementCollector的OfClass()
- 5.FilteredElementCollector方法的组合应用
- 6.FilteredElementCollector使用List<ElementId>筛选对象
- 7.FilteredElementCollector使用View筛选对象
- 8.FilteredElementCollector的WherePasses()
- 8.5.WherePasses(boundingBoxIsInsideFilter)使用包含过滤器筛选要素
1.说明
1.1收集过滤器:FilteredElementCollector【Ctrl+D可以复制行】
- 收集全部元素:FilteredElementCollector(Documnet document)
- 根据指定的Id集合:FilteredElementCollector(Documnet document,Listids)
- 根据指定的视图:FilteredElementCollector(Documnet document,ElementId viewId)
1.2.FilteredElementCollector常用方法
- 通过类型:OfCategory()、OfCategoryId()
- 通过类:OfClass()
- 通过WherePasses()
2.FilteredElementCollector三种方法
//方法1:抓取文档内所有要素
FilteredElementCollector elementCollector1 = new FilteredElementCollector(document);
//方法2:通过ElementId列表,抓取要素
List<ElementId> ids = new List<ElementId>();
FilteredElementCollector elementCollector2 = new FilteredElementCollector(document,ids);
//方法3:抓取某一视图(标高1)中所有要素
ElementId viewId = null;
FilteredElementCollector elementCollector3 = new FilteredElementCollector(document,viewId);
3.FilteredElementCollector的OfCategory()、OfCategoryId()方法
通过族的ID或者标识,筛选当前收集过滤器中对应的族类型和实例
3.1.FilteredElementCollector的OfCategoryId()
//抓取文档内所有要素
FilteredElementCollector elementCollector1 = new FilteredElementCollector(document);
//抓取族类型和族实例
IList<Element> elements1 = elementCollector1.OfCategoryId(new ElementId(-2000023)).ToElements();
StringBuilder stringBuilder1 = new StringBuilder();
//将会显示与族Id-2000023对应的所有族类型和族实例
foreach (Element item in elements1)
{
stringBuilder1.AppendLine("抓取对象:\t\t" + item.Name + " " + item.Id);
}
TaskDialog.Show("提示",stringBuilder1.ToString());
3.2.FilteredElementCollector的OfCategory()
//抓取文档内所有要素
FilteredElementCollector elementCollector1 = new FilteredElementCollector(document);
//抓取族类型和族实例
IList<Element> elements2 = elementCollector1.OfCategory(BuiltInCategory.OST_Doors).ToElements();
StringBuilder stringBuilder2 = new StringBuilder();
//将会显示与族【OST_Doors】对应的所有族类型和族实例
foreach (Element item in elements2)
{
stringBuilder2.AppendLine("抓取对象:\t\t" + item.Name + " " + item.Id);
}
TaskDialog.Show("提示",stringBuilder2.

本文主要介绍了FilteredElementCollector收集过滤器,包括其创建方式,如根据文档、Id集合、视图创建。还阐述了常用方法,如OfCategory()、OfClass()、WherePasses()等,以及这些方法的单独使用、组合应用,还介绍了使用List和View筛选对象的方式。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



