这只是原始版本的代码,写这行代码的原因是工作中遇到过明细表统计零件(parts)的量的问题。
用这个小工具可以一次性选中一个主体(host) 的所有零件,然后只需要自行输入一个注释性质的参数即可在明细表中起到分类的作用。
public Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
var hasPickOne = uidoc.Selection.PickObject(ObjectType.Element);
Element e = doc.GetElement(hasPickOne);
ICollection<ElementId> allId = PartUtils.GetAssociatedParts(doc,e.Id,true,true);
Selection sel = uidoc.Selection;
string prompt = string.Empty;
foreach (var item in allId)
{
prompt += item.ToString()+",";
sel.Elements.Add(doc.GetElement(item));
}
TaskDialog.Show("id",prompt);
//SelectionFilterElement filter = new SelectionFilterElement(doc);
//filter.SetElementIds(allId);
return Result.Succeeded;
}