文章目录
一、Revit 过滤器使用
过滤器可用来选中模型中想要的东西,某个族实例,族等等。
二、使用步骤
1.Category(种类)
操作如下:
以植物类为例选中该类下任意一项,将其拖入项目中
选中该目标用Revit Lookup查看
点击Categroy
OST_Planting为该实例的Categroy
2.Family(族)
Categroy下一级为族,如图:
2.1.族类型(FamilySymbol)
族的下一级为族类型,如图:
(注:族类型有多种)
2.2.族实例(FamilyInstance)
墙实例如下:
三、过滤方法
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;
}
}
}
一般先用OfCategory找到大类再接着往下寻找过滤,如上图:
OfCategory类似索引,OfClass会从头查找。