问题标签 [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 投票
0 回答
124 浏览

java - 自定义 IFC 架构(IdObject 到 EObject

我正在尝试IFC使用自定义实体和关系扩展架构。到目前为止,我所做的是:

使用 JSDAI 在 EXPRESS-G 中扩展 IFC4 模式。使用新模式,生成 .ecore(使用 EMF),然后使用 .genmodel 生成 Java 类。

使用BIMServer类,我可以(当然)读取IFC4文件,但我想要做的是:

a)REad IFC文件

b) 添加到IfcModel我的新实体

c)用我的新实体生成一个新IFC文件(.ifc)(我想我必须实现一个新的IfcSerializer)。

问题出在 b) 点,因为IfcDeserializer给出了元素/实体 asIdEObject以及我的 java 类由EMFextend from生成EObject

假设我必须转换IdEObject (IFC4)EObject (IFC4Custom)并在此之后实现序列化程序以从EOBjects文件IFC生成。

老实说,我有点失落..

0 投票
0 回答
1194 浏览

python - 在 Python 中从 IFC 文件中提取数据

我必须在 IFC 文件中提取数据,但是当我阅读该文件时,我似乎犯了一些错误,我不明白: 首先:我有一把钥匙;第二:我读了一个文件;第三:我创建了一个字符串,并将其放入类似 csv 的文件中。第四:可视化组件在 Pyside2 中。

编码:

问题是它会跳转一个值,它会移动一行并将数据发布到类似 csv 的文件中的下一行中,但是会创建具有正确 uID 的行,但会将行的字段留空。谁能帮我?

0 投票
1 回答
1495 浏览

c# - Xbim 几何错误

我正在使用以下 C# 代码从 ifc4 文件访问几何数据。该文件仅包含使用 Revit 2016 创建的墙。我正在使用 Xbim 库。这是我的代码:

我收到以下错误。我正在使用视觉工作室 2015。

1226 [1] 调试 Xbim.Geometry.Engine.Interop.XbimCustomAssemblyResolver (null) - 从 C:\Examples\ifcWall\ifcWall\bin\Debug\x86\Xbim.Geometry.Engine32.dll 加载程序集 1404 [1] 调试 Xbim .Geometry.Engine.Interop.XbimCustomAssemblyResolver (null) - 从 C:\Examples\ifcWall\ifcWall\bin\Debug\x86\Xbim.Geometry.Engine32.dll 加载程序集

未处理的异常:System.Exception:1 trans) in c:\BuildAgent\work\860c3b913b6c647f\Xbim.ModelGeometry.Scene\XbimMeshGeometry3D.cs:line 219 at Xbim.ModelGeometry.Scene.XbimMeshGeometry3D.Add(String mesh, Int16 productTypeId, Int32 productLabel, Int32 geometryLabel, NullableC:\BuildAgent\work\860c3b913b6c647f\Xbim.ModelGeometry.Scene\XbimMeshGeometry3D.cs 中 Xbim.ModelGeometry.Scene.XbimMeshGeometry3D.Read(String data, Nullable 1 transform, Int16 modelId) 的几何命令无效:C:\BuildAgent\work\860c3b913b6c647f\Xbim.ModelGeometry.Scene\Xbim3DModelContext.cs 中 Xbim.ModelGeometry.Scene.Xbim3DModelContext.ShapeGeometryMeshOf(XbimShapeInstance shapeInstance) 的第 669 行:ifcWall.Program.Main(String[] args 中的第 1525 行) 在 C:\Users\karshenas\Documents\Courses\CEEN6840\VS_Projects\ifcWall\ifcWall\Program.cs:line 26

任何解决错误的帮助表示赞赏。

0 投票
1 回答
1329 浏览

three.js - 如何在three.js中将x、y、z坐标数据转换为几何(顶点、面)?

我有一组 [x,y,z] 坐标数据,它们形成一个空间。

例如 (0,0,-3000),(1848,0,-3000),(1848,-5177,-3000),(0,-5177,-3000), (0,0,0),(1848, 0,0),(1848,-5177,0),(0,-5177,0)

我想使用three.js 渲染空间坐标。我正在尝试创建一个函数来创建要渲染的几何对象。然而,设置顶点和面似乎相当棘手。

有没有一种简单的方法可以将 xyz 坐标渲染到 three.js 中的几何图形?

或者是否可以绘制 2D 形状(使用 x、z)并使其成为 3D(使用 z)? 因为对于每个几何图形,它的高度是均匀的,正如您在给定坐标示例中看到的那样。

0 投票
1 回答
1752 浏览

c# - 无法使用 xBIM 从 IFC 中提取三角几何

我正在尝试使用此代码在 IFC 文件中提取所有几何形状的三角网格我已经使用 ifcstore.open 加载了模型...

如果我使用上述代码的注释部分,则网格会返回而不进行三角剖分。格式为 PolyHedronBinary。

如果我使用 context.ShapeGeometryMeshOf() 方法,则会引发异常:无效几何类型。

图片

请帮助我对模型的几何形状进行三角测量。

我还阅读了 XbimWindowsUI/Xbim.Presentation/MeshGeometry3DExtensions.cs 中的“读取”方法,但我无法弄清楚我必须作为“m3d”参数传递什么?

如果有人可以提供/指向我使用此方法的示例,那就太好了。

我需要在 Unity 中重建 IFC 模型,因此我需要三角网格数据。

还建议是否有更有效和/或更简单的方式来实现这一点!

0 投票
1 回答
659 浏览

ruby - 如何使用 Ruby 解码 IFC

在 Ruby 中,我正在读取一个 .ifc 文件以获取一些信息,但我无法对其进行解码。例如文件内容:

应该:

我正在尝试使用以下代码对其进行编码:

  • puts ifcFileLine.encode("Windows-1252")
  • puts ifcFileLine.encode("ISO-8859-1")
  • puts ifcFileLine.encode("ISO-8859-5")
  • puts ifcFileLine.encode("iso-8859-1").force_encoding("utf-8")'

但没有什么能给我我需要的东西。

0 投票
0 回答
263 浏览

python - 使用 IfcOpenShell 将使用 PythonOcc 创建的形状添加到 IFC 模型

目前,我在 IFC 模型中使对象可见时遇到问题。example_shape我用 PythonOCC [1]创建了一个名为 的形状。此形状在我的 IfcOpenShell 3D 查看器中以所需颜色显示 [2]。现在我希望这example_shape在具有特定属性集的新导出 IFC 模型中也可见。我找不到有关此主题的任何有用信息。

我尝试了不同的方式,但没有好的或想要的输出。这里有没有人曾经遇到过同样的问题?

0 投票
1 回答
299 浏览

c++ - IFC 中的绝对墙位置

因为我想将窗户与墙相关联,所以我试图使用 IFCOpenShell 找到墙的端点。

这目前产生10.1596,0,09.08038,0,0作为两个墙的端点,0 作为两个墙的起点。这意味着它们是平行的。但是当我在 Archicad 中打开 IFC 文件时,它们是正交的。文件中甚至还有一个 IFC 标记,指定一堵墙连接到另一堵 ATSTART/ATEND。我怎样才能得出正确的坐标?

编译命令行:g++ -I/usr/include/oce wallpoints.cpp -l IfcGeom -l IfcParse $(for i in $(cd /usr/lib/x86_64-linux-gnu/; ls libTK*.so | cut -d. -f1 | cut -c4-); do echo "-l $i"; done) $(icu-config --ldflags) -ggdb3

国际金融公司文件:https ://hushfile.it/592c22c69af2a#AwrpRI2O3ecDuAmP_pIjNmCAV3BWvwr30tfrazqJ

0 投票
2 回答
202 浏览

c# - 如何实现:Express (ISO 10303-21) TYPE typename = SELECT in C#

目前,我正在为 IFC 编写一个非常基本的早期绑定,它按照 ISO 10303-21 中描述的 Express 标准进行映射。由于我两个月前才刚刚开始编码,所以我所做的一切仍然相当基本。但是,我已经可以在给定的模式中创建具有所有属性的所有实体和类型。我还可以按照 ISO 将其映射到文件。我仍然遇到一个问题:

  • 在模式中,有些类型是 SELECT 类型,如下所示:

    IfcDirection 和 IfcVirtualGridIntersection 本身都是实体或类型(我为类型和实体创建了一个类)。我的 TYPE IfcGridPlacementDirectionSelect - 类看起来像这样:

    /li>

有没有办法将选择结构实现到 csharp 中,所以 _value 的属性类型是“IfcDirection”或“IfcVirtualGridIntersection”,而不是我现在所做的“IfcBase”。以便表示 SELECT 结构?

0 投票
2 回答
198 浏览

c# - 如何在 CSharp 中实现 EXPRESS 最高效

我需要创建一个基于 EXPRESS 模式的类库。EXPRESS 模式具有如下所示的类型和实体:

在这里,GlobalId、OwnerHistory、Name 和 Description 都是 IfcRoot 类的属性。例如,“Name”的属性类型是 IfcLabel,它在 EXPRESS 模式中作为 TYPE 给出,如下所示:

这种类型是字符串类型或井字符串数组。在我的方法中,我将模式中的所有实体和模式中的所有类型都实现为 chsharp 中的类。因此我写了一个字符串阅读器,它读取模式并基于它创建实体(~800)和类型(~400)。我的实现中的 IfcLabel 如下所示:

这一切都很好,但是当我想使用我的类库时,由于每个属性类型本身就是一个类,所以真的很费力。这意味着我必须首先创建 IfcLabel 类的对象并分配 _value 属性,然后创建我的 IfcRoot 对象并将 Name 属性分配为 IfcLabel 对象。有谁知道,我如何以更智能的方式实现它?还有一件事要补充:所有类型都需要有一个方法并从一个名为 IfcBase 的类继承,所以这仍然需要成为可能。我也不允许直接将属性类型从 IfcLabel 更改为字符串,无论如何它实际上是最终的。