Autodesk.Revit.DB.FilteredWorksetCollector 是 Revit API 中的一个类,用于从当前文档中过滤出指定工作集的元素,返回符合条件的元素集合。该类需要 .NET Framework 4.5 或更高版本。该类继承自 Autodesk.Revit.DB.FilteredElementCollector,因此继承了父类的方法和属性。
public FilteredWorksetCollector(Document document);
document:要过滤元素的文档。public ICollection<ElementId> ToElementIds();
public FilteredWorksetCollector OfKind(WorksetKind worksetKind);
worksetKind:要过滤的工作集类型。FilteredWorksetCollector 对象,表示过滤指定工作集类型的元素。public FilteredWorksetCollector OfName(string name, bool caseSensitive = false);
name:要过滤的工作集名称。caseSensitive:是否区分大小写,默认为 false。FilteredWorksetCollector 对象,表示过滤指定名称的元素。public FilteredWorksetCollector OfUser(Document userDocument);
userDocument:要过滤的工作集所属的文档。FilteredWorksetCollector 对象,表示过滤指定文档的元素。public bool Contains(ElementId worksetId);
worksetId:要检查的工作集ID。bool 值,表示当前集合是否包含指定的工作集。以下示例过滤出类型为 UserCreated 的工作集中的族实例元素,然后输出这些元素的名称:
// 获取当前文档
Document doc = ActiveUIDocument.Document;
// 获取类型为 UserCreated 的工作集中的族实例元素
FilteredWorksetCollector collector = new FilteredWorksetCollector(doc)
    .OfKind(WorksetKind.UserCreated)
    .OfClass(typeof(FamilyInstance));
// 输出这些元素的名称
foreach (Element element in collector)
{
    TaskDialog.Show("Element Name", element.Name);
}