1

我正在尝试使用 Python 在 Revit API 中探索快速、慢速和 LINQ 过滤器。所以我决定通过过滤参数值或家庭/类别/符号来为任何类别创建通用过滤器。

现在我有一组来自 FilteredElementCollector(document) 的不同类别的元素(墙壁、地板、家庭符号等),我需要获取集合中任何元素中的所有参数。换句话说,参数集的交集。如果可以在不使用 LINQ 的情况下制作这样的过滤器,那将是完美的

uidoc = __revit__.ActiveUIDocument
doc = uidoc.Document

collector = FilteredElementCollector(doc)

list_of_categories = [
    ElementCategoryFilter(BuiltInCategory.OST_StructuralColumns),
    ElementCategoryFilter(BuiltInCategory.OST_Walls),
    ElementCategoryFilter(BuiltInCategory.OST_Floors)
]

logical_filter = LogicalOrFilter(list_of_categories)
collector.WherePasses(logical_filter)

感谢您的任何想法

4

1 回答 1

1

根据您的描述,在我看来,这更像是参数集的并集,而不是交集。您可能想查看我为RvtMetaProp实现的参数分析和处理功能,这是一个 Revit C# .NET 插件,用于导入和存储在Forge中创建的元属性。

于 2018-11-10T21:53:30.370 回答