有没有人使用过BuildingSmart的IFC(行业基础类),通常用于BIM项目和构建域? 我想知道如何导航IFC对象以获取IfcWallStandardCase或仿射对象(即墙壁)的坐标。
我很有兴趣获得所有或至少一个顶点分隔墙的坐标。 请指明通过Ifc文件的Ifc对象进行导航,以了解从IfcWallStandardCase或仿射对象开始在Ifc文件中找到坐标信息的位置。
答案 0 :(得分:2)
首先选择Representation
可选的IfcProduct
属性。您需要形状表示(IfcProductDefinitionShape
),而不是材质表示。如果存在表示,则可以获得多个表示,每个表示都具有指定维度,精度和坐标系的上下文。由于您正在寻找坐标,因此您可能需要IfcShapeRepresentation
类型的表示,而不是IfcTopologyRepresentation
。然后,每个表示由多个表示项组成。
有几种类型的几何表示 - 检查IfcGeometricRepresentationItem
的继承树。以下是分面BREP的示例:每个表示项的类型为IfcFacetedBrep
,在IFC2x4规范中为explained nicely。使用属性outer
,您将获得一个封闭的shell,其中包含一组可通过属性IfcFace
访问的面(CfsFaces
)。每个面都有一组边界(IfcFaceBound
,属性Bounds
),每个边界由循环(IfcLoop
,属性Bound
)和方向定义。循环可以是不同的类型,我们假设IfcPolyLoop
。这些点在IfcCartesianPoint
属性下有一个点列表(Polygon
),最终为您提供属性为{{1的坐标(IfcLengthMeasure
类型的REAL
) }}
请注意,这些坐标是相对于开头提到的几何上下文的坐标系。上下文可以嵌套多个坐标转换来解析,以获得绝对世界坐标。
属性名称的路径为:Coordinates
,Representation
,Items
,CfsFaces
,Bounds
,Bound
,{{1} }。