簡體   English   中英

如何獲取IFC對象的絕對坐標?

[英]How to get absolute coordinates of an IFC object?

我正在開發一個處理IFC(工業基礎類)對象的小型Java API。 為此,我使用了外部工具,例如BIMserver

現在,我正在嘗試獲取作為IfcProduct實例的每個對象的坐標。 但是,我只是通過IfcLocalPlacement獲得對於另一個IfcProduct的相對坐標 ,而不是對象的絕對坐標。 因此,每個對象的引用是包含它的實體。

我的目標是計算IFC對象之間的距離(只是為了向用戶顯示信息,我不打算渲染對象等)。 例如, IfcSpaceIfcDistributionControlElement之間的距離。

有誰知道如何獲取每個IFC對象的絕對坐標 (而不是相對坐標)? 如果您知道一些可以幫助我的API或庫,也可以發送它們。

您需要在樹中應用/堆疊所有不同的IfcLocalPlacement ,直到到達IfcProject容器。 您還可以在IFC2X3的文檔中和IFC4的文檔中找到說明(據我IfcLocalPlacement ,IfcLocalPlacement 的規范並未更改)

如果使用相對位置,則以下約定應作為默認相對位置。 為IfcProduct的所有五個直接子類型,IfcSpatialStructureElement,IfcElement,IfcAnnotation,IfcGrid,IfcPort提供了約定。 在上述五種類型的子類型級別上提供了更詳細的放置信息。

  • 對於IfcSpatialStructureElement的子類型,以下約定適用
    • IfcSite必須絕對放置在由IfcProject的幾何表示環境建立的世界坐標系內
    • IfcBuilding應相對於IfcSite的本地放置
    • IfcBuildingStorey應相對於IfcBuilding的本地放置
  • 對於IfcGridIfcAnnotation ,適用慣例是將其相對放置
    • 到其容器的本地位置( IfcSiteIfcBuildingIfcBuildingStorey
      • 它應該與IfcRelContainedInSpatialStructure包含關系所引用的容器元素相同,
  • 對於IfcPort ,約定適用於它應相對放置
    • 到它所屬元素的本地位置( IfcElement
      • 它應該與IfcRelConnectsPortToElement連接關系引用的元素相同,
  • 對於IfcElement ,約定適用於它應相對放置:
    • 到其容器的本地位置( IfcSiteIfcBuildingIfcBuildingStorey
      • 它應該與IfcRelContainedInSpatialStructure包含關系所引用的容器元素相同,
    • 到元素組成關系所綁定的IfcElement的本地位置
      • 對於相對於主要組件(例如開口)定位的要素(如IfcRelVoidsElementIfcRelProjectsElement表示),
      • 對於由IfcRelFillsElement表示的填充開口的元素(例如門或窗戶),
      • 用於覆蓋元素的覆蓋物,如IfcRelCoversBldgElements
      • 對於聚合到主要組件的子組件,如IfcRelAggregatesIfcRelNests

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM