public static List<FamilyInstance> GetColumns(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_StructuralColumns); //选择结构柱
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;
}