只获得模型类型的族,不获取标记类型和无效类型的族。
其实就是判断当前族的CategoryType是不是CategoryType.Model类型。
m_curDoc就是当前项目文件的Document
// 获得图形中所有的族
FilteredElementCollector collector = new FilteredElementCollector(m_curDoc);
IList<Element> familyList = new List<Element>();
// 只取模型类型的族,其他的都不要。
foreach (var element in collector.OfClass(typeof(Family)).ToElements())
{
Family curFamily = element as Family;
foreach (var familySymbolId in curFamily.GetFamilySymbolIds())
{
FamilySymbol curFamilySymbol = m_curDoc.GetElement(familySymbolId) as FamilySymbol;
if (curFamilySymbol.Category == null)
{
continue;
}
CategoryType categoryType = curFamilySymbol.Category.CategoryType;
if (categoryType == CategoryType.Model && !familyList.Contains(element))
{
familyList.Add(element);
}
}
}