xBim 工具包可以帮助我计算 IFC 模型中某些对象的体积吗?

问题描述 投票:0回答:1

我是 .NET xBim Toolkit 的新手,我想知道它是否可以帮助计算 IFC 模型中某些对象的体积。特别是,有一个名为 XbimGeometry 的模块,但我不确定它是否以及如何用于此目的。或者如果它只是用于图形。

3d ifc bim xbim
1个回答
0
投票

是的,可以。在 Xbim.Geometry v5.1(develop/master 中的最新版本)中,您可以计算一些 IFC 几何图元的体积。

通常,几何引擎用于创建细分/网格化的场景,但它也可用于计算更基本的几何数据。

例如在此单元测试中,您可以了解如何获取单个 IfcSweptDiskSolid 对象的体积https://github.com/xBimTeam/XbimGeometry/blob/c1c22812601d0bd506c5f9230b731d0ab0c6e08a/Xbim.Geometry.Engine.Interop.Tests/IfcExtrudedAreaSolidTests.cs# L74

            using (var model = MemoryModel.OpenRead("YourModel.ifc"))
            {
                var sweptDisk = model.Instances.OfType<IIfcSweptDiskSolid>().FirstOrDefault();

                // Convert to a solid
                var solid = geomEngine.CreateSolid(sweptDisk, logger);
                solid.Volume.Should().BeApproximately(1234.56, 1e-7);
            }

显然,这是相当低的水平,您需要考虑空隙(孔等 - 使用引擎中的布尔切割功能),并考虑许多不同的几何类型(扫描、布雷普、拉伸等)。请记住,上面的代码是构成对象一部分的单个几何项目,并且可能只是实体形状集的一部分。即对象通常由这些单独表示的组合来表示。

即该窗口由 4 个独立的表示组成:

整个窗户 窗台 外框 内框 玻璃板

这只是一个对象,项目要复杂得多。

因此“计算体积”可能需要一些澄清。

最终您的实际答案将取决于您想要如何处理体积数据。您想进行基于材料的数量起飞吗?您是否只想要一个物体的总体积(请记住,像墙这样的东西可能有多种材质和空隙)?您想要边界框体积吗?

v6 Xbim.Geometry 在这方面有相当多的改进,因此可能值得检查 netcore 分支。我相信该版本中有一些更高阶的实现。

© www.soinside.com 2019 - 2024. All rights reserved.