如果指定族名,则取得对应的实体,如果不指定,则读取全部电气设备
public List<FamilyInstance> GetElectricalEquipments(Document doc, string family = "")
{
List<FamilyInstance> elements = new List<FamilyInstance>();
try
{
FilteredElementCollector collector = new FilteredElementCollector(doc);
ElementClassFilter classFilter = new ElementClassFilter(typeof(FamilyInstance));
ElementCategoryFilter catFilter = new ElementCategoryFilter(BuiltInCategory.OST_ElectricalEquipment);
LogicalAndFilter logicalFilter = new LogicalAndFilter(classFilter, catFilter);
collector.WherePasses(logicalFilter);
FilteredElementIterator eit = collector.GetElementIterator();
eit.Reset();
while (eit.MoveNext())
{
FamilyInstance element = eit.Current as FamilyInstance;
if (element == null)
continue;
if (family == "" || element.Symbol.FamilyName.IndexOf(family) != -1)
{
elements.Add(element);
}
}
}
catch (System.Exception)
{
}
return elements;
}