是否有人已经使用过 BuildingSmart 的 IFC(行业基础类),通常用于 BIM 项目和建筑领域? 我想知道如何导航 IFC 对象以获取 IfcWallStandardCase 或仿射对象(即墙)的坐标。
我对获取界定墙的所有或至少一个顶点的坐标感兴趣。 请指示通过 Ifc 文件的 Ifc 对象的导航,以了解在 Ifc 文件中从 IfcWallStandardCase 或仿射对象开始的坐标信息的位置。
最佳答案
首先选择Representation
属性,该属性对于IfcProduct
是可选的。您需要形状表示 (IfcProductDefinitionShape
),而不是 Material 表示。如果存在表示,您可能会得到多个表示,每个表示都有一个指定维度、精度和坐标系的上下文。由于您正在寻找坐标,因此您可能需要 IfcShapeRepresentation
类型的表示,而不是 IfcTopologyRepresentation
。每个表示由多个表示项组成。
几何表示有多种类型 - 检查 IfcGeometricRepresentationItem
的继承树。以下是分面 BREP 的示例:每个表示项的类型均为 IfcFacetedBrep
,即 explained nicely在 IFC2x4 规范中。使用属性 outer
,您将获得一个封闭的外壳,其中包含一组可通过属性 CfsFaces
访问的面 (IfcFace
)。每个面都有一组边界(IfcFaceBound
,属性 Bounds
),每个边界都由一个循环定义(IfcLoop
,属性 绑定(bind)
)和方向。循环也可能具有不同的类型,我们假设为 IfcPolyLoop。它们在属性 Polygon
下有一个点列表 (IfcCartesianPoint
),最终为您提供坐标(类型为 IfcLengthMeasure
,它是一个 >REAL
),具有属性坐标
。
请注意,这些坐标是相对于开头提到的几何上下文的坐标系的。上下文可以嵌套多个要解析的坐标转换,以获得绝对世界坐标。
属性名称的路径为:Representation
、Items
、CfsFaces
、Bounds
、Bound
、多边形
、坐标
。
关于IFC 对象导航以检索墙坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29650409/