我正在使用Visual Studio开发Revit工具。此特定工具将应用特定类型/系列的批处理标签。到目前为止,我的工具过滤了模型中的所有类别,并列出了用于标记的类别category.annotation。用户可以选择这些类别之一,一旦我让用户选择一个类别,我就会被困在那里,如何从该选择中获得家庭或类型?
有很多方法可以实现。
这里是The Building Coder samples中的一个代码段,用于过滤特定类别的族实例:
ElementClassFilter f1
= new ElementClassFilter(
typeof( FamilyInstance ) );
ElementCategoryFilter f2
= new ElementCategoryFilter(
BuiltInCategory.OST_Doors );
ElementCategoryFilter f3
= new ElementCategoryFilter(
BuiltInCategory.OST_Windows );
LogicalOrFilter f4
= new LogicalOrFilter( f2, f3 );
LogicalAndFilter f5
= new LogicalAndFilter( f1, f4 );
FilteredElementCollector collector
= new FilteredElementCollector( doc );
您可以轻松地对其进行调整,或者在示例中搜索其他代码段来代替系列符号。
收集家族比符号要难一些,因为它们的类别并不总是很明确。
最近在Revit API discussion forum中讨论了该主题