Autodesk.Revit.DB.FamilySymbol
类表示Revit族的类型。一个Revit族可以有多个类型,每个类型被称为一个FamilySymbol。例如,门族可以有单扇门、双扇门、滑动门等多个类型。
Autodesk.Revit.DB.FamilySymbol
类有以下重要属性:
Family
:获取族模板Name
:获取或设置族类型的名称FamilyName
:获取族模板的名称Category
:获取该族类型的类别LineStyle
:获取族类型的线型Family.GetFamilyTypeParameterIds()
:获取族模板参数的IDAutodesk.Revit.DB.FamilySymbol
类包含以下方法:
FamilySymbol.Duplicate(string name)
:创建该族类型的副本FamilySymbol.Activate()
:激活该族类型创建一个门族类型 myDoor1
,该类型基于门族的模板 doorTemplate
:
// 获取门族模板
FilteredElementCollector famCollector = new FilteredElementCollector(doc);
ElementClassFilter familyFilter = new ElementClassFilter(typeof(Family));
IEnumerable<Family> familyIterator = famCollector.WherePasses(familyFilter).Cast<Family>();
Family doorFamily = familyIterator.FirstOrDefault(q => q.Name == "门");
if (doorFamily == null) return;
// 获取门族类型
FilteredElementCollector symbolsCollector = new FilteredElementCollector(doc);
symbolsCollector.OfCategory(BuiltInCategory.OST_Doors);
IEnumerable<FamilySymbol> symbolsIterator = symbolsCollector.WhereElementIsElementType().Cast<FamilySymbol>();
FamilySymbol doorSymbol = symbolsIterator.FirstOrDefault(q => q.Name == "单扇门");
if (doorSymbol == null) return;
// 创建门族类型副本
FamilySymbol myDoor1 = doorSymbol.Duplicate("myDoor1") as FamilySymbol;
if (myDoor1 == null) return;
// 激活门族类型
myDoor1.Activate();
以上示例中,我们首先获取门族的模板,然后获取门族的类型 单扇门
。接着,我们通过 Duplicate
方法创建了一个名为 myDoor1
的门族类型副本,并通过 Activate
方法激活该副本。现在,我们可以在项目中使用 myDoor1
类型的门了。