获取 IFCWALL 元素的 TotalThickness 值

Get TotalThickness value of IFCWALL element

如何使用 Xbim.Ifc2x3 获取 IFCWALL 元素的 TotalThickness 值?

据我所知,它包含在 wallElement.Material=>ForLayerSet=>TotalThickness 中 或者在 wallElement.IsTypedBy=>Material=>TotalThickness 但是当我尝试通过代码访问它时,它无法识别 TotalThickness 属性.

只需将material层的所有厚度相加即可。但不要忘记检查 material 实际上是一个 material 层集,因为它可能是其他类型的 material.

var thickness = 
    (ifcWall.HasAssociations.OfType<IfcRelAssociatesMaterial>()
    .FirstOrDefault()?.RelatingMaterial as IfcMaterialLayerSetUsage)?
    .ForLayerSet?.MaterialLayers.Sum(l => l.LayerThickness);

您显然需要添加更多空值检查逻辑,并且可能还需要检查其他可能的类型 RelatingMaterial