过滤器

作者: 辉呀辉呀骄傲放纵 | 来源:发表于2017-09-27 11:44 被阅读0次

    过滤器分为过滤器和选择过滤器,主要用来批量选择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, "请选择墙");

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

    相关文章

      网友评论

          本文标题:过滤器

          本文链接:https://www.haomeiwen.com/subject/xavkextx.html