/// <summary>
/// 根据族类别名称+族名称 : 获取相应的各种族类型名称
/// </summary>
/// <param name="document"></param>
/// <param name="dicZuCateNameToZuNameZuTypeName"></param>
/// <param name="zuCategoryName"></param>
public void GetZuNameZuTypeNameByZuCategoryName(Document document,out Dictionary<string, List<string>> dicZuCateNameToZuNameZuTypeName, string zuCategoryName)
{
// a. 初始化
dicZuCateNameToZuNameZuTypeName = new Dictionary<string, List<string>>();
// b. 获取过滤器
FilteredElementCollector collector = new FilteredElementCollector(document);
// c. 获取所有的族
var familys = collector.OfClass(typeof(Family)).Cast<Family>().ToList();
foreach (var family in familys)
{
if (family.FamilyCategory != null && family.FamilyCategory.Name != "")
{
var categoryName = family.FamilyCategory.Name; // 类别名称
if (categoryName.Equals(zuCategoryName))
{
var familyName = family.Name; // 族名称
var zuNamezuCategoryName = zuCategoryName +":"+ familyName;
// d. 获取文件中的族符号
IEnumerable<FamilySymbol> fss = from ele in new
FilteredElementCollector(document).OfClass(typeof(FamilySymbol))
let item = ele as FamilySymbol
where item.FamilyName == familyName
select item;
List<string> zuNameZuTypeNameSt = new List<string>();
foreach (var fs in fss)
{
zuNameZuTypeNameSt.Add(fs.Name);
}
// e. 存储到字典中
if (dicZuCateNameToZuNameZuTypeName.Count == 0 || !dicZuCateNameToZuNameZuTypeName.Keys.Contains(zuNamezuCategoryName))
{
dicZuCateNameToZuNameZuTypeName.Add(zuNamezuCategoryName, zuNameZuTypeNameSt);
}
else
{
dicZuCateNameToZuNameZuTypeName[zuNamezuCategoryName].AddRange(zuNameZuTypeNameSt);
}
}
}
}
}
版权声明:本文为weixin_46669020原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。