如何使用Xbim.Ifc2x3获取IFCWALL
元素的TotalThickness
值?
正如我所看到的,它包含在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);
显然,您需要添加更多的null检查逻辑,并可能检查其他可能类型的RelatingMaterial
。