过滤器

过滤器分为过滤器和选择过滤器,主要用来批量选择Revit文档里的我们所需要的图元。

下面我们开始演示过程,首先建立一个基本的接口环境

一.过滤器

    1.  FilteredElementCollect:被过滤元素收集器,得到的是需要过滤的元素,而不是过滤后剩下的元素

        //建立收集器

       FilteredElementCollector collector = new FilteredElementCollector(doc );

         2.  ElementClassFilter:元素类过滤器,根据类(族,族类别,族实例)对Revit文档中的元素进行过滤,获取所需传入类的元素

     利用元素类过滤器对收集器进行过滤

     ElementClassFilter classFiter = new ElementClassFilter(typeof(Wall));

     collector = collector.WherePasses(classFiter);

     最后通过把图元转换为id来提取出所需元素。然后通过Revit----附加元素—外部工具—add in Manager ——run来运行,成功。

         3.  ElementCategoryFilter:元素类别过滤器,所有基类为element类的元素都有一个category属性用于表示类所属的类别。

利用元素类别过滤器对收集器进行过滤

ElementCategoryFilter categoryFilter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);

collector = collector.WherePasses(categoryFilter);

Category的名称可以通过如下方式查看,框出所选图元——附加工具——Revit Lookup——snoop current selection ,得到如下图

运行成功。

二.选择过滤器

主要是用户在执行命令过程中,让用户自行选择所要的构件或者构建集。

首先建立一个新类public class WallSelectionFilter : ISelectionFilter,并且实现接口,选择所需要选择构建的名称

在主函数里面添加ISelectionFilter wallFilter = new WallSelectionFilter();    

           IListelementList = uidoc.Selection.PickObjects(ObjectType.Element, wallFilter, "请选择墙");

生成解决方案,框选所需要选择的部分,成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 视频连接v.bimcc.com/course/35/tasks 常用过滤器:过滤器、选择过滤器 一、过滤器 建立一...
    _skyky阅读 1,479评论 0 2
  • Reference:tableau教程 w3c school 数据源 1. Tableau基本排序 数据排序是数据...
    mcdullsnow阅读 15,476评论 0 3
  • 基于列过滤的过滤器 1,ColumnPaginationFilter列分页过滤器:基于列进行分页,需要设置偏移量与...
    Coffeelong阅读 5,344评论 0 7
  • 在朋友圈刚夸了它两句,肚子就不自在了。公司的食堂是没有心思想要做好了呀。害我们都次坏了肚子;这么有情怀的食堂,没有...
    AnnaWT阅读 152评论 0 0
  • 江南梅雨季节,心情也淅淅沥沥,心灵上的孤单寂寞,只能寄情于画作。
    周海双阅读 259评论 2 4