在IFC標準中,採用相對座標系對構件定位。如柱(IfcColumn)的定位信息(局部座標系及參考座標系)由ObjectPlacement描述。ObjectPlacement由兩部分組成:ui
(1)PlacementRelTo是參考座標系。柱子的參考座標系是樓層IfcBuidlingStorey所在的座標系。IfcBuidlingStorey以IfcBuilding所在的座標系爲參考,IfcBuilding以IfcSite所在的座標系爲參考,IfcSite定義的是總體座標系,沒有參考座標系。spa
(2)RelativePlacement是相對座標系內的座標轉換。.net
座標系存在多層參考的狀況,在明確各構件層次關係的前提下,進行逐級查詢肯定構件的絕對座標。code
IFC文件的內容以下:blog
#6= IFCCARTESIANPOINT((0.,0.,0.)); #31= IFCAXIS2PLACEMENT3D(#6,$,$); #32= IFCLOCALPLACEMENT(#311,#31); #114= IFCBUILDING('1BNyUUMcj6ywEAW7k0zZlo',#41,'',$,$,#32,$,'',.ELEMENT.,$,$,#110); #120= IFCAXIS2PLACEMENT3D(#6,$,$); #121= IFCLOCALPLACEMENT(#32,#120); #123= IFCBUILDINGSTOREY('1BNyUUMcj6ywEAW7j$2VSC',#41,'\X2\68079AD8\X0\ 1',$,$,#121,$,'\X2\68079AD8\X0\ 1',.ELEMENT.,0.); #310= IFCAXIS2PLACEMENT3D(#6,$,$); #311= IFCLOCALPLACEMENT($,#310); #312= IFCSITE('1BNyUUMcj6ywEAW7k0zZln',#41,'Default',$,'',#311,$,$,.ELEMENT.,(42,21,31,181945),(-71,-3,-24,-263305),0.,$,$); #165= IFCCARTESIANPOINT((-7318.22370947408,711.194038980438,0.)); #167= IFCAXIS2PLACEMENT3D(#165,$,$); #168= IFCLOCALPLACEMENT(#121,#167); #170= IFCCOLUMN('0Ae7iOjK982gh$h7PwMCca',#41,'M_\X2\77E95F6267F1\X0\:475 x 610mm:203111',$,'475 x 610mm',#168,#161,'203111');
#170是柱子(IfcColumn),位置信息由#168(IfcLocalPlacement)定義。it
#168(IfcLocalPlacement)指定了#121(IfcLocalPlacement,參考座標系)和#167(IfcAxis2Placement3D,局部座標系)。class
#121(IfcLocalPlacement)是樓層#123(IfcBuidlingStorey)所在的座標系。它指定了#32(IfcLocalPlacement,參考座標系)和#120(IfcAxis2Placement3D,局部座標系)。im
#32(IfcLocalPlacement)是建築物#114(IfcBuilding)所在的座標系。它指定了#311(IfcLocalPlacement,參考座標系)和#31(IfcAxis2Placement3D,局部座標系)。查詢
#311(IfcLocalPlacement)是場地#312(IfcSite)所在的座標系,它是總體座標系,沒有參考座標系。
img
參考:https://blog.csdn.net/liyazhen2011/article/details/81630680