【发布时间】:2020-06-30 00:34:50
【问题描述】:
我正在使用 Visual Studio 开发 Revit 工具。此特定工具将应用特定类型/系列的批次标签。到目前为止,我的工具过滤了模型中的所有类别并列出了用于标记的类型 categories.annotation。用户可以选择其中一个类别,一旦让用户选择一个类别,我就会陷入困境,如何从该选择中获取家庭或类型?
【问题讨论】:
标签: visual-studio revit-api revit
我正在使用 Visual Studio 开发 Revit 工具。此特定工具将应用特定类型/系列的批次标签。到目前为止,我的工具过滤了模型中的所有类别并列出了用于标记的类型 categories.annotation。用户可以选择其中一个类别,一旦让用户选择一个类别,我就会陷入困境,如何从该选择中获取家庭或类型?
【问题讨论】:
标签: visual-studio revit-api revit
有很多方法可以实现。
这是来自The Building Coder samples 的代码 sn-p,用于过滤特定类别的家庭实例:
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 );
您可以轻松地调整它或在示例中搜索其他代码 sn-ps 来收集家族符号。
收集家族比符号更棘手,因为它们的类别并不总是明确定义的。
这个话题最近在Revit API discussion forum中讨论过
【讨论】: