Autodesk.Revit.DB.ElementWorksetFilter
类是 Revit API 中的一个过滤器,用于过滤特定工作集中的元素。该类可通过输入一个或多个工作集 ID 来创建一个过滤器对象,并在与该过滤器对象匹配的元素列表中仅包含指定工作集中的元素。
Autodesk.Revit.DB.ElementWorksetFilter
类有以下构造函数:
ElementWorksetFilter(IList<WorksetId> worksetIds);
该构造函数接受一个 WorksetId
对象列表作为输入参数,并返回一个过滤器对象。
Autodesk.Revit.DB.ElementWorksetFilter
类有以下属性:
IList<WorksetId> WorksetIds { get; }
获取过滤器对象所包含的工作集 ID 列表。
// 获取指定工作集中的所有墙体元素
FilteredElementCollector collector = new FilteredElementCollector(doc);
ElementWorksetFilter filter = new ElementWorksetFilter(new List<WorksetId> { new WorksetId(123456) });
IList<Element> walls = collector.OfCategory(BuiltInCategory.OST_Walls).WherePasses(filter).ToElements();
上述代码中,我们创建了一个 ElementWorksetFilter
对象,其中包含工作集 ID 为 123456
的工作集。然后,我们使用 FilteredElementCollector
类来获取所有墙体元素,并使用 WherePasses
方法将过滤器对象应用于待过滤的元素集合中。最后,我们使用 ToElements
方法将过滤后的元素集合转换为 Element
对象列表。