public static List<FamilyInstance> GetBeams(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_StructuralFraming);
//合并过滤条件
LogicalAndFilter logicalFilter = new LogicalAndFilter(classFilter, catFilter);
collector.WherePasses(logicalFilter);
FilteredElementIterator editor = collector.GetElementIterator();
editor.Reset();
while (editor.MoveNext())
{
FamilyInstance element = editor.Current as FamilyInstance;
if (element == null)
continue;
if (family == "" || element.Symbol.FamilyName.==family)
{
elements.Add(element);
}
}
}
catch (System.Exception)
{
}
return elements;
}