首页 文章

如何获取IFC对象的绝对坐标?

提问于
浏览
0

我正在开发一个小型Java API来操作IFC(Industry Foundation Class)对象 . 为此,我使用外部工具,如BIMserver .

现在,我正在尝试获取作为IfcProduct实例的每个对象的坐标 . 但是,我只是通过 IfcLocalPlacement 获取 relative coordinates 到另一个IfcProduct,而不是对象的绝对坐标 . 因此,每个对象的引用是包含它的实体 .

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

有谁知道每个IFC对象的 how to get the absolute coordinates (不是相对坐标)?如果你知道一些可以帮助我的API或库,你也可以发送它们 .

1 回答

  • 1

    您需要在树中应用/堆叠所有不同的 IfcLocalPlacement ,直到到达 IfcProject 容器 . 你也可以找到解释here in the docs for IfcLocalPlacement

    如果使用相对位置,以下约定将作为默认相对位置应用 . 这些约定是针对IfcProduct,IfcSpatialStructureElement,IfcElement,IfcAnnotation,IfcGrid,IfcPort的所有五种直接子类型给出的 . 更详细的放置信息在所提到的这五种类型的子类型下给出 . 对于IfcSpatialStructureElement的子类型,以下约定适用IfcSite应绝对放置在由IfcProject的几何表示上下文 Build 的世界坐标系中IfcBuilding应相对于IfcSite的本地放置位置ifcBuildingStorey应相对于IfcBuilding的本地放置位置对于IfcGrid和IfcAnnotation,约定适用于它应相对于其容器的本地放置(IfcSite,IfcBuilding,IfcBuildingStorey)放置它应该是由IfcRelContainedInSpatialStructure包含关系引用的相同容器元素,对于IfcPort,约定适用于它应相对于它所属元素的本地放置位置(IfcElement)它应该与IfcRelConnectsPortToElement连接关系引用的元素相同,对于IfcElement,约定适用于它应该相对于:放置在本地放置者它的容器(IfcSite,IfcBuilding,IfcBuildingStorey)的if应该是IfcRelContainedInSpatialStructure包含关系引用的相同容器元素,它与IfcElement的本地放置相关联,它由一个元素组合关系绑定到相对的特征ifcRelVoidsElement和IfcRelProjectsElement表示的主要组件(如开口),用于填充开口的元素(如门或窗口),如IfcRelFillsElement所表示的,用于覆盖元素的覆盖,如IfcRelCoversBldgElements所表示的,用于子聚合到主要组件的组件,由IfcRelAggregates和IfcRelNests表示)

相关问题