public class DuctAccessoryFilter : ISelectionFilter
{
public bool AllowElement(Element elem)
{
BuiltInCategory builtInCategory = (BuiltInCategory)elem.Category.Id.IntegerValue;
if (builtInCategory == BuiltInCategory.OST_DuctAccessory)
{
return true;
}
return false;
}
public bool AllowReference(Reference reference, XYZ position)
{
return false;
}
}
然後再調用時候這樣使用就可以了
ISelectionFilter ductAccessory = new DuctAccessoryFilter();
Reference eRef = uiDoc.Selection.PickObject(ObjectType.Element,ductAccessory, "請選擇要标注的閥件");
Element elem = doc.GetElement(eRef);
僅僅數行就達到了想要的結果
以上文字轉載在 審十空間