【问题标题】:How to get absolute coordinates of an IFC object?如何获取 IFC 对象的绝对坐标?
【发布时间】:2016-11-19 13:46:25
【问题描述】:

我正在开发一个操作 IFC(工业基础类)对象的小型 Java API。为此,我使用了外部工具,例如BIMserver

现在,我正在尝试获取作为IfcProduct 实例的每个对象的坐标。但是,我只是通过IfcLocalPlacement 获取另一个 IfcProduct 的 相对坐标,而不是对象的绝对坐标。因此,每个对象的引用都是它所在的实体。

我的目标是计算 IFC 对象之间的距离(只是为了向用户显示信息,我不想渲染对象等等)。例如,IfcSpaceIfcDistributionControlElement 之间的距离。

有谁知道如何获取每个 IFC 对象的绝对坐标(不是相对坐标)?如果您知道一些可以帮助我的 API 或库,也可以发送。

【问题讨论】:

    标签: java geometry coordinates ifc


    【解决方案1】:

    您需要在树中应用/堆叠所有不同的IfcLocalPlacement,直到到达IfcProject 容器。您还可以找到解释 here in the docs for IFC2X3here in the docs for IFC4 (据我所知,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表示)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2022-08-22
      • 2018-08-06
      • 2014-08-30
      • 2015-08-01
      • 2013-08-18
      • 2012-03-31
      相关资源
      最近更新 更多