如何使用 Xbim.Ifc2x3 获取元素的TotalThickness
值?IFCWALL
正如我所看到的,它包含在wallElement.Material=>ForLayerSet=>TotalThickness
或其中,wallElement.IsTypedBy=>Material=>TotalThickness
但是当我尝试通过代码访问它时,它无法识别TotalThickness
属性。
只需将材料层的所有厚度相加即可。但是不要忘记检查该材质实际上是一个材质层集,因为它可能是其他类型的材质。
var thickness =
(ifcWall.HasAssociations.OfType<IfcRelAssociatesMaterial>()
.FirstOrDefault()?.RelatingMaterial as IfcMaterialLayerSetUsage)?
.ForLayerSet?.MaterialLayers.Sum(l => l.LayerThickness);
您显然需要添加更多的空值检查逻辑,并且可能还需要检查其他可能的类型RelatingMaterial
。