如何获取Revit工作集中的对象?


Revit 提供了一个快捷过滤器ElementWorkSetFilter来获得一个工作集中的对象。

下面代码从RevitAPI.chm 中获取。


public void WorksetElements(Document doc, Workset workset)
{
    // filter all elements that belong to the given workset
    FilteredElementCollector elementCollector = new FilteredElementCollector(doc);
    ElementWorksetFilter elementWorksetFilter = new ElementWorksetFilter(workset.Id);
    ICollection<Element> worksetElemsfounds = elementCollector.WherePasses(elementWorksetFilter).ToElements();

    // how many elements were found?
    int elementsCount = worksetElemsfounds.Count;
    String message = "Element count : " + elementsCount;

    // Get name and/or Id of the elements that pass the given filter and show a few of them
    int count = 5;  // show info for 5 elements only
    foreach (Element ele in worksetElemsfounds)
    {
        if (null != ele)
        {
           message += "\nElementId : " + ele.Id;
           message += ", Element Name : " + ele.Name;

          if (0 == --count)
              break;
        }
    }

    Autodesk.Revit.UI.TaskDialog.Show("ElementsOfWorkset", message);
}


你可能感兴趣的:(如何获取Revit工作集中的对象?)