对于自定义的族,我们可以使用如下方式,先从FamilyInstance获取FamilySymbol,然后从FamilySymbol.Family拿到对应的族,最后调用Name属性。
- FamilyInstance instance;
- var typeid = instance.GetTypeId();
- var symbol = RevitDoc.GetElement(typeid) as FamilySymbol;
- var familyName = symbol.Family.Name;
但是对于系统族是获取不到Family的。我们的解决办法是:
1. 如果使用的是Revit 2014以前的版本,可以尝试使用一个隐藏的内建参数“族名称” SYMBOL_FAMILY_NAME_PARAM,使用方法如下:
- Parameter symbolNameParameter = ceilingType.get_Parameter(
- BuiltInParameter.SYMBOL_FAMILY_NAME_PARAM);
- if (symbolNameParameter != null &&
- symbolNameParameter.StorageType == StorageType.String)
- {
- string symbolName = symbolNameParameter.AsString();
- }
2. 如果您使用的是Revit 2015或者之后的版本,除了可以使用上面的方法,还可以用一个更简便的方法ElementType.FamilyName:
- string symbolName = ceilingType.FamilyName;
其中FamilyName是ElementType的新的属性。
同样这个方法适用于FamilySymbol:
- FamilyInstance instance;
- var typeid = instance.GetTypeId();
- var symbol = RevitDoc.GetElement(typeid) as FamilySymbol;
- var familyName = symbol.FamilyName;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。