Autodesk.Revit.DB.AssemblyType
是 Revit API 中用于表示构件类型的类。该类可以用于获取构件的标记和参数信息,以及在 Revit 模型中进行相应的修改和操作。
以下是 Autodesk.Revit.DB.AssemblyType
的语法:
public class AssemblyType : FamilySymbol
Autodesk.Revit.DB.AssemblyType
包含以下属性:
AssemblyTypeName
: 表示构件类型的名称。Category
: 获取该构件所属的类别。Description
: 获取该构件的描述信息。Family
: 获取当前构件所属的族。FamilyName
: 获取当前构件所属族的名称。FamilyOwnerId
: 获取当前构件所属族的唯一标识。FamilySymbolGeometryStyle
: 获取当前构件的族符号的几何风格。HasMaterialQuantities
: 获取当前构件的材料数量是否可用。Id
: 获取当前构件的唯一标识。IsActive
: 获取或设置当前构件是否处于活动状态。IsCompatibleWith
: 获取当前构件是否与指定的构件兼容。Materials
: 获取当前构件的材料列表。OwnerFamily
: 获取当前构件所属的族。Parameters
: 获取当前构件的参数列表。Size
: 获取当前构件的大小。Autodesk.Revit.DB.AssemblyType
包含以下方法:
Duplicate
: 复制当前构件并返回副本。Equals
: 判断当前构件是否等于指定的对象。GetAllowedValues
: 获取指定的参数的允许值。GetDependentElements
: 获取该构件所引用的其他构件。GetOrderedParameters
: 获取当前构件的参数列表,并按照标准顺序排列。GetParameters
: 获取当前构件的所有参数。GetSubComponentIds
: 获取当前构件的所有子构件的唯一标识。GetTypeId
: 获取当前构件类型的唯一标识。GetTypeParameters
: 获取该构件类型的默认参数。GetTypes
: 获取当前构件类型的所有族符号。IsElementType
: 判断当前构件是否为元素类型。以下示例演示如何在 Revit 中创建一个 AssemblyType
并获取其属性和参数列表:
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
public void CreateAssemblyType(Document doc)
{
// 创建构件类型
FamilySymbol symbol = null;
foreach (Family f in new FilteredElementCollector( doc ).OfClass( typeof( Family ) ).ToElements())
{
if (f.Name == "MyFamily") {
symbol = doc.FamilyCreate.NewType( f, "AssemblyType1" ) as FamilySymbol;
break;
}
}
// 获取属性
string name = symbol.AssemblyTypeName;
Category category = symbol.Category;
string description = symbol.Description;
Family family = symbol.Family;
string familyName = symbol.FamilyName;
ElementId familyOwnerId = symbol.FamilyOwnerId;
FamilySymbolGeometryStyle geometryStyle = symbol.FamilySymbolGeometryStyle;
bool hasMaterialQuantities = symbol.HasMaterialQuantities;
ElementId id = symbol.Id;
bool isActive = symbol.IsActive;
MaterialSet materials = symbol.Materials;
Family ownerFamily = symbol.OwnerFamily;
IList<Parameter> parameters = symbol.Parameters;
XYZ size = symbol.Size;
// 输出参数列表
foreach (Parameter p in parameters)
{
TaskDialog.Show("Parameters", $"Name: {p.Definition.Name}, Value: {p.AsString()}");
}
}
该示例会在 Revit 中搜索名为 MyFamily
的族,并创建一个名为 AssemblyType1
的相应的 AssemblyType
。随后,将获取该构件的属性信息和参数列表,并输出到 TaskDialog
中。
Autodesk.Revit.DB.AssemblyType
类提供了一系列用于获取和修改构件类型信息的属性和方法,并支持在 Revit 模型中进行相应的操作。熟练掌握该类可以帮助开发者更好地开发和管理 Revit 插件。