IFC中构件位置的表示方法
以STEP格式呈现的IFC文件可读性不强,但是转化为OWL后,可以在Protege中可视化IFC的组织模式。下面将通过Protege的OntoGragph功能显示一个墙实例是如何在IFC中进行位置表示的。
IFC通过相对位置来表示物体的位置:
可以看出,IfcWallStandardCase_278通过以下相对位置确定:Wall相对BuildingStorey(楼层)的位置——BuildingStorey相对Building的位置——Building相对Site的位置。那么相对位置的数值是如何表示的呢?如图:
物体的位置通过IfcAxis2Placement3D来表示。IfcAxis2Placement3D提供在三维空间中放置项目的位置和方向。Axis定义Z方向,RefDirection定义X方向,Y方向通过右手定则得到。不过Wall278不存在Axis和RefDirection两个Object Properties,如果未给出Axis和RefDirection的属性值,则放置默认为P[1](x轴)为[1,0,0.],P[2](y轴)为[0,1,0.],P[3](z轴)为[0,0,1]。
进一步地,Location的属性通过笛卡尔点来表示。笛卡尔点的含义是:An IfcCartesianPoint defines a point by coordinates in an orthogonal, right-handed Cartesian coordinate system.也就是常规意义上的坐标点。不过在转化为OWL后,失去了直接表示一对多关系的能力,因此OWL通过一个类似链表的数据结构来表示这样一个三维坐标点,每个点保存在IfcLengthMeasureList中,前一个通过hasNext链接下一个。
通过相对位置关系和坐标点,其实也就可以推出物体在绝对坐标系下的位置了。