Revit过滤器使用

文章目录

  • 一、Revit 过滤器使用
  • 二、使用步骤
    • 1.Category(种类)
    • 2.Family(族)
      • 2.1.族类型(FamilySymbol)
      • 2.2.族实例(FamilyInstance)
  • 三、过滤方法
  • 总结



一、Revit 过滤器使用

过滤器可用来选中模型中想要的东西,某个族实例,族等等。

二、使用步骤

1.Category(种类)

操作如下:

Revit过滤器使用_第1张图片
以植物类为例选中该类下任意一项,将其拖入项目中
Revit过滤器使用_第2张图片
选中该目标用Revit Lookup查看
Revit过滤器使用_第3张图片
点击Categroy
Revit过滤器使用_第4张图片
OST_Planting为该实例的Categroy
在这里插入图片描述

2.Family(族)

Categroy下一级为族,如图:
Revit过滤器使用_第5张图片

2.1.族类型(FamilySymbol)

族的下一级为族类型,如图:
Revit过滤器使用_第6张图片
(注:族类型有多种)
Revit过滤器使用_第7张图片
Revit过滤器使用_第8张图片

2.2.族实例(FamilyInstance)

Revit过滤器使用_第9张图片
墙实例如下:
在这里插入图片描述

三、过滤方法

namespace FilterDemo
{
     
    [Transaction(TransactionMode.Manual)]
    class Filter : IExternalCommand
    {
     
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
     
            //获得交互内容
            UIDocument uIDocument = commandData.Application.ActiveUIDocument;
            //获得实际内容
            Document document = commandData.Application.ActiveUIDocument.Document;
            //创建元素收集器
            FilteredElementCollector fec = new FilteredElementCollector(document);
            //过滤出所有的墙实例
            fec.OfCategory(BuiltInCategory.OST_Walls).OfClass(typeof(Wall));


            var sele = uIDocument.Selection.GetElementIds();
            foreach (var item in fec) {
     
             
                    sele.Add(item.Id);
             
                
            }
            uIDocument.Selection.SetElementIds(sele);

            return Result.Succeeded;
        }
    }
}

Revit过滤器使用_第10张图片
一般先用OfCategory找到大类再接着往下寻找过滤,如上图:
OfCategory类似索引,OfClass会从头查找。

总结

本文仅仅简单介绍了Revit过滤器

你可能感兴趣的:(Revit二次开发,c#,过滤器,经验分享)