问题标签 [ifc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4126 浏览

javascript - 如何从头开始创建 IFC 文件?

在 spacedesigner3d.com,我们希望允许我们的用户导出为行业基础类 (IFC) 格式。这可以让建筑师和建筑商将在我们基于 Web 的应用程序中绘制的项目导入到 Revit 或 Archicad 等环境中。

Space Designer 项目由通用建筑实体组成:墙壁、开口、楼梯、地板、天花板(甚至是假天花板)、家具等。从这个角度来看,它似乎与IFC的性质相似。

到目前为止,我可以在 C++、Java 或 Python 中找到一些中间件解决方案。

  • IfcOpenShell(开源):各种 IFC 模式的解析器和代码生成器。他们也有一些教程

  • xBim(开源):.NET 开源软件开发 BIM 工具包

  • BimServer(开源):一种用于处理和操作 IFC 数据的服务器方法。

  • GeometryGymIFC(开源):另一个用于生成和解析 OpenBIM IFC 的 C# 库。

  • ST-Developer v10(商业):用于在 C、C++ 中操作 IFC 文件的库。

要使用它们,我们有两个选择:

  • 将项目数据发送到运行这些库的服务器,并从中导出 IFC 结果。
  • 将我们的应用程序和 IFC 库嵌入桌面应用程序(我们已经有一个使用electron的应用程序)以在本地运行这些库。

也许网络浏览器被认为是这个任务的题外话,但我仍然想知道我是否错过了这些库的任何 Javascript 等价物?对于 fbx 格式,我们也有这种“孤独在虚空中”的感觉,我们已经用 Javascript 开发了我们的 fbx 生成器,它现在运行良好。在您看来,IFC 也可行吗?

尽管我们对 3D 数据结构和格式有广泛的了解,但从 IFC 文件开始似乎并不是一件容易的事,我们不想重新发现轮子。那么我们应该从哪里开始呢?

0 投票
1 回答
223 浏览

xml - IfcOpenShell 对象放置

我有以下数据:

有人可以告诉我如何解释 ObjectPlacement 部分吗?我需要知道属性的每个数字是什么意思。这是使用 IfcOpenShell 中的 IfcConvert 工具从 ifc 格式转换为 xml 格式的代码的一小部分

非常感谢

0 投票
1 回答
712 浏览

c# - 如何为 Ifc2x3 和 Ifc4 重用相同的 xBim 代码

我正在开发一个需要使用 xBim 解析 IFC 文件的项目,并且我需要同时支持 Ifc2x3 和 Ifc4。大多数 Ifc 类名及其属性在 Ifc2x3 和 Ifc4 中是相同的,但在 xBim 的对象模型中,Ifc2x3 和 Ifc4 命名空间中的相同类不共享公共基类或接口,因此我将不得不编写相同的代码两次。我的意思是,如果我正在编写一个检索空间体积的函数,或者类似的简单函数,我将不得不为 IfcSpace 的 Ifc2x3 版本编写一次,为 IfcSpace 的 Ifc4 版本编写另一次。

我考虑过使用编译时指令来决定加载哪个命名空间,但我不确定这是否是个好主意。我知道这是一个奇怪的要求,但是有没有其他方法可以避免两次编写相同的代码?

0 投票
2 回答
346 浏览

ruby - IFC ISO-10303-21 文件(STEP 文件)是否有 ruby​​ 解析器?

我正在寻找一个用于 ruby​​ 的STEP文件解析器,它将吐出OBJ文件或类似于OBJ文件的模型结构。

我还在这里找到了一个制作你自己的解析器 gem ,但不太确定如何正确设置解析器/词法分析器规则以使用它。

0 投票
2 回答
347 浏览

python - 使用坐标和索引的 .ifc 文件格式的三角剖分模式

由于问题的数学性质,我也将其发布在另一个论坛上: 论坛帖子

我有一个 .ifc 文件,其中导出的原始数据根据链接说明通过一组坐标及其相应的索引来描述 xy 平面中的墙:

解释

我有一个txt,其中数据分为 xyz 空间中的坐标,然后是索引和其他一些数据。

我希望有人可以帮助我了解如何将索引链接到相应的坐标。有 164 个坐标对和 324 个索引对,因此每个索引仅与 1 个坐标对相关对我来说没有意义。

目标是建立索引和坐标之间的关系,以便此类数据可以输出壁厚,在本例中为“10”。我在想(根据上面的链接)通过描述第一个三角形,它应该以 3D 形式描述墙的边缘,因此给我们它的一个边作为墙中最短的部分,即厚度。

我在提到的论坛帖子中收到了一个答案,我应该 “……根据 X、Y 和 Z [而不是 (X,Y,Z) 三元组) 扩展每个坐标,然后使用每个索引三元组来获得单个坐标的实际坐标而不是一个三元组。例如,您有 X[]、Y[] 和 Z[],并且您有一个索引 (a,b,c),然后您会找到 X[a], Y[ b],并且 Z[c] 不是 Point(a,b,c)..."

我不太明白这个解释,为了实现我的目标,我将不胜感激任何帮助或进一步的解释。

谢谢

0 投票
1 回答
154 浏览

c# - Ifc2x3 等效于 IfcExtrudedAreaSolidTapered

我希望能够在 IFC 中实现截锥。我知道在 IFC 2x4 中使用IfcExtrudedAreaSolidTapered类有一种相当快速的方法来实现这一点。

谁能告诉我如何用 Ifc 2x3 做到这一点?

这是我所拥有的:

这是我创建个人资料的地方:

有谁知道如何以正确的方式做到这一点?

0 投票
1 回答
836 浏览

php - 使用 Autodesk Forge 从 IFC 文件获取几何数据(尺寸)

我需要使用 Autodesk Forge 从 IFC 文件中获取尺寸,以便计算建筑物(建筑物楼层)的面积、质量和其他属性。Autodesk Forge 可以做到这一点吗?

0 投票
1 回答
289 浏览

matrix - 在 Ifc4 命名空间中找不到 IfcProduct.Transform() 方法!(Xbim.Essentials)

我正在使用 IfcProduct.Transform() 方法来获取转换矩阵(XbimMatrix3D 实例)并使用它在相对和绝对位置之间进行转换。

但我无法在 Ifc4 命名空间中找到这些函数!我找不到任何其他可以替代这些功能的东西。此处也强调了此问题:https ://github.com/xBimTeam/XbimGeometry/issues/103 ,但没有回应。请帮忙!

0 投票
1 回答
185 浏览

revit - 在 xBim 中导入 3D 成像数据

有没有办法将 3D 成像数据(点云和/或其他类似的 3D 成像产品 - 指定支持的格式)导入 xBim 文件?

0 投票
2 回答
6084 浏览

python - 在 python 中使用 IfcOpenShell 提取元素的数量

我正在尝试ifc使用IfcOpenShellPython 读取文件中对象的最深层数量。到目前为止,我有:

我研究了定义

无论我尝试为 放置哪种类型的函数test = geometry.X(),我都会收到错误消息:

不知道如何解决这个问题,希望得到帮助。

编辑:

获得平板和进一步参考的进一步工作:

到目前为止,障碍是与 IFC4 的兼容性,我将尝试使用此论坛帖子中的说明重新编译。

编辑2:

进一步的工作目前使用 IFC 2x3 标准,带有一个包含数量信息的文件(通过原始数据验证)。以下是相关代码:

无论我放在什么之后都会出现错误step1 = line.,以下都没有给出结果:

这段代码的输出仍然是:

这意味着我可以访问IfcElementQuantity但所有属性都不起作用。我查看了架构参考,但找不到正确的参考。