你如何获得 IFC 窗台高度
How do you get IFCWindow sill height
如何获取 ifc 文件中 Ifcwindow 的窗台高度(地板上方的高度)
没有解决方案可以直接获取地板上方的高度。这是因为上面的高度取决于几个因素,比如 window 所在的墙是如何创建的,等等。
可能是原始建模软件将 sillHeight 导出到自定义 IFC 属性。您可以检查一下,但由于没有通用标准,因此存在风险。
最好的办法是研究 ObjectPlacement
属性,IfcWindow
继承自 IfcProduct
。 ObjectPlacement 定义产品如何放置在世界 space 中或相对于其主机。有关详细信息,请参阅 https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2/HTML/schema/templates/product-local-placement.htm。
你需要读取ObjectPlacement 属性,并检查是否有RelativeTo 属性,如果有,你还需要填写那个属性,并检查是否这是地板的放置。如果是这样,您可以停止循环,并对您收获的所有位置进行矩阵计算,以计算 window 相对于 floor.
的位置。
(也许更简单:分别计算 window 和地板的世界位置,而不是减去两个向量 z 值以获得地板的 window 高度)
如何获取 ifc 文件中 Ifcwindow 的窗台高度(地板上方的高度)
没有解决方案可以直接获取地板上方的高度。这是因为上面的高度取决于几个因素,比如 window 所在的墙是如何创建的,等等。
可能是原始建模软件将 sillHeight 导出到自定义 IFC 属性。您可以检查一下,但由于没有通用标准,因此存在风险。
最好的办法是研究 ObjectPlacement
属性,IfcWindow
继承自 IfcProduct
。 ObjectPlacement 定义产品如何放置在世界 space 中或相对于其主机。有关详细信息,请参阅 https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2/HTML/schema/templates/product-local-placement.htm。
你需要读取ObjectPlacement 属性,并检查是否有RelativeTo 属性,如果有,你还需要填写那个属性,并检查是否这是地板的放置。如果是这样,您可以停止循环,并对您收获的所有位置进行矩阵计算,以计算 window 相对于 floor.
的位置。(也许更简单:分别计算 window 和地板的世界位置,而不是减去两个向量 z 值以获得地板的 window 高度)