获取 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
。
如何使用 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
。