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);
}