revit 二次开发之收集器、过滤器和选择器

一、收集器

主要是在文档中,收集出所需要的元素和对象,在revit的定义中,收集器是一个可以迭代的对象。

    1.1 FilteredElementCollector

名称 功能
FilteredElementCollector(Document)
从文档种收集所需要的元素
FilteredElementCollector(Document, ElementId) 从文档和试图种收集需要的元素
FilteredElementCollector(Document, ICollection<(Of <<'(ElementId>)>>)) 从指定的元素种收集需要的元素

包含的主要过滤函数

函数名称   函数功能

OfCategory(BuiltInCategory.OST_Doors);

通过类别收集

OfCategoryId(new ElementId(BuiltInCategory.OST_Doors));

通过类别id收集

OfClass(typeof(Wall));

通过类型收集

WherePasses(new RoomFilter());

通过过滤器收集

2、FilteredWorksetCollector工作集收集器

文档中过滤出指定工作集的元素,其代码如下:

函数名称   作用
OfKind 主要是WorksetKind类别的区分
WherePasses(new RoomFilter()); 通过过滤器收集

 

二、过滤器

过滤器是配合收集器一起工作的,主要是用于更加细致过滤工作,所有的过滤器都继承自ElementFilter,其基本关系如下:

每个过滤器都有自己的作用,这里不细细说,可以参考之前的微博:revit二次开发之 过滤器一 - Min.Xiaoshuang - 博客园

三、选择器 ,主要实现ISelectionFilter 接口实现。

在revit中,通常需要选取指定对象和类型,则需要实现ISelectionFilter接口,相结合在Selection对象中,进行指定构件的选取。

其主要包含两个接口:

AllowElement 允许选取的元素
AllowReference 允许选取的引用
posted @ 2025-03-24 14:09  Min.Xiaoshuang  阅读(41)  评论(0)    收藏  举报