Autodesk.Revit.DB.WallType
是 Revit 中的墙类型类。该类描述了 Revit 墙族类型的特性和行为。
WallType
类提供了以下构造函数:
WallType(Document document, ElementId id)
document
:指定 WallType
所属的文档对象。id
:指定 WallType
的唯一标识符。WallType
类提供了以下属性:
获取该墙类型的父级类别。
Category Category { get; }
获取该墙类型的复合结构。
CompoundStructure CompoundStructure { get; }
获取或设置该墙类型的描述信息。
string Description { get; set; }
获取该墙类型所属的族名称。
string FamilyName { get; }
获取一个值,指示该墙类型是否具有结构材料。
bool HasStructuralMaterial { get; }
获取该墙类型的类型种类。
WallKind Kind { get; }
获取该墙类型的材料列表。
IList<Material> Materials { get; }
获取或设置该墙类型的名称。
string Name { get; set; }
获取或设置该墙类型的结构材料资产 ID。
ElementId StructuralAssetId { get; set; }
WallType
类提供了以下方法:
获取该墙类型的复合结构。
CompoundStructure GetCompoundStructure();
获取该墙类型的层列表。
IList<WallLayers> GetLayers();
确定该墙类型的默认复合结构是否有效。
bool IsValidDefaultCompoundStructure();
以下示例演示了如何获取指定墙类型的复合结构。
var wallType = new FilteredElementCollector(doc)
.OfClass(typeof(WallType))
.Cast<WallType>()
.FirstOrDefault(w => w.Kind == WallKind.Basic);
if (wallType == null)
throw new Exception("未找到 Basic 墙类型。");
var compoundStructure = wallType.GetCompoundStructure();
if (compoundStructure == null)
throw new Exception("获取复合结构失败。");
foreach (var layer in compoundStructure.GetLayers())
{
Console.Write("材料名称:{0},材料厚度:{1}\n", layer.Material.Name, layer.Width);
}