[英]How to get absolute coordinates of an IFC object?
我正在開發一個處理IFC(工業基礎類)對象的小型Java API。 為此,我使用了外部工具,例如BIMserver 。
現在,我正在嘗試獲取作為IfcProduct實例的每個對象的坐標。 但是,我只是通過IfcLocalPlacement
獲得相對於另一個IfcProduct的相對坐標 ,而不是對象的絕對坐標。 因此,每個對象的引用是包含它的實體。
我的目標是計算IFC對象之間的距離(只是為了向用戶顯示信息,我不打算渲染對象等)。 例如, IfcSpace
和IfcDistributionControlElement
之間的距離。
有誰知道如何獲取每個IFC對象的絕對坐標 (而不是相對坐標)? 如果您知道一些可以幫助我的API或庫,也可以發送它們。
您需要在樹中應用/堆疊所有不同的IfcLocalPlacement
,直到到達IfcProject
容器。 您還可以在IFC2X3的文檔中和IFC4的文檔中找到說明(據我IfcLocalPlacement
,IfcLocalPlacement 的規范並未更改) :
如果使用相對位置,則以下約定應作為默認相對位置。 為IfcProduct的所有五個直接子類型,IfcSpatialStructureElement,IfcElement,IfcAnnotation,IfcGrid,IfcPort提供了約定。 在上述五種類型的子類型級別上提供了更詳細的放置信息。
- 對於
IfcSpatialStructureElement
的子類型,以下約定適用
IfcSite
必須絕對放置在由IfcProject
的幾何表示環境建立的世界坐標系內IfcBuilding
應相對於IfcSite
的本地放置IfcBuildingStorey
應相對於IfcBuilding
的本地放置- 對於
IfcGrid
和IfcAnnotation
,適用慣例是將其相對放置
- 到其容器的本地位置(
IfcSite
,IfcBuilding
,IfcBuildingStorey
)
- 它應該與
IfcRelContainedInSpatialStructure
包含關系所引用的容器元素相同,- 對於
IfcPort
,約定適用於它應相對放置
- 到它所屬元素的本地位置(
IfcElement
)
- 它應該與
IfcRelConnectsPortToElement
連接關系引用的元素相同,- 對於
IfcElement
,約定適用於它應相對放置:
- 到其容器的本地位置(
IfcSite
,IfcBuilding
,IfcBuildingStorey
)
- 它應該與
IfcRelContainedInSpatialStructure
包含關系所引用的容器元素相同,- 到元素組成關系所綁定的
IfcElement
的本地位置
- 對於相對於主要組件(例如開口)定位的要素(如
IfcRelVoidsElement
和IfcRelProjectsElement
表示),- 對於由
IfcRelFillsElement
表示的填充開口的元素(例如門或窗戶),- 用於覆蓋元素的覆蓋物,如
IfcRelCoversBldgElements
,- 對於聚合到主要組件的子組件,如
IfcRelAggregates
和IfcRelNests
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.