问题标签 [xbim]

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 回答
388 浏览

properties - xBim ifc 操作:尝试添加属性集

我正在尝试使用 xBim 操作 ifc2x3 文件。它基于示例:https ://docs.xbim.net/examples/basic-model-operations.html

但是当涉及到时var pSetRel = model.Instances.New<IfcRelDefinesByProperties>,它会崩溃,System.Exception: "This factory only creates types from its assembly" 代码如下:

我做错了什么?

0 投票
1 回答
289 浏览

c# - 使用 xbim 库创建自定义多边形墙

我尝试使用一些多边形点制作 ifc 墙并保存到 ifc 文件。

我找到了一些方法并尝试了,但它不起作用。

这是我的代码:

如果我按照代码保存到 ifc 文件,则该文件具有我描述的多边形点。但它没有显示任何 ifc 查看器。

那么如何使用 xbim 库创建多边形墙并将其保存到 ifc 文件?

任何提示?

此致。

0 投票
1 回答
380 浏览

c# - 使用 Ifc2x3 获取对象的所有属性

我正在尝试检索存储在 IFC 文件中的每个项目中的所有属性,类似于您在 xbim 资源管理器中选择一个项目并获得所有数据(例如 Type、DefiningType、GlobalID 等)时看到的内容。

xbim 文档包含一个相关示例:

但是,上面的代码在使用 Ifc2x3 内核时无法编译。而且我的 IFC 模型不适用于 Ifc4。

Ifc2x3 等价于什么

或者更好的是,如何循环 IFC 模型中的每个项目并检索每个项目的所有属性(Ifc2x3)?

0 投票
1 回答
178 浏览

c# - 如何获取特定IfcElement的材质数据

在 xbim 示例https://docs.xbim.net/examples/basic-model-operations.html的基本操作中,它显示了如何检索特定 IfcElement 的单值属性。基于此,我试图获取材料数据。

我写了以下内容:

它给了我这个错误:

“IIfcRelAssociates”不包含“RelatingMaterial”的定义,并且找不到接受“IIfcRelAssociates”类型的第一个参数的可访问扩展方法“RelatingMaterial”(您是否缺少 using 指令或程序集引用?)

我知道我必须使用 IfcRelAssociatesMaterial,但我不知道如何使用。如何检索材料信息?

0 投票
1 回答
524 浏览

c# - 如何仅提取 Xbim 中最低级别的对象?

我有一个 IFC 格式的 BIM 模型,我想使用 Xbim 为模型中的每个对象添加一个新属性,比如成本。我正在构建一个 .NET 应用程序。以下代码运行良好,除了该属性还添加到楼层、建筑物和场地 - 我只想将其添加到不嵌套其他对象的最低级别对象。

首先,我尝试了各种方法来打印每个对象的“相关对象”,认为我可以过滤掉任何具有非空相关对象的对象。这让我看到了这个:

IfcRelDefinesByType.RelatedObjects ( http://docs.xbim.net/XbimDocs/html/7fb93e55-dcf7-f6da-0e08-f8b5a70accf2.htm ) 认为相关对象 ( https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3 /FINAL/HTML/ifckernel/lexical/ifcreldecomposes.htm)将包含此信息。

但是我还没有设法从这个文档中实现工作代码。

这是我的代码:

0 投票
1 回答
366 浏览

3d - 如何确定 3D 坐标是否位于 BIM 中 3D 对象的边界内?我正在使用 Xbim 处理 IFC 文件

我有一个 3D 建筑模型 (BIM) 的 IFC 文件,它拆分为组成物理对象,并且我有要分配给正确对象的属性。这些属性带有一个位置:它们是与 3D 空间中的一个点相关联的标量值。如果我有一个点 P1 = (x1, y1, z1),我如何确定这个点是位于门内还是门旁边的墙上(或两者都不是,在空中)?

我看到两个选项,但无法破译 Xbim/IFC 文档以使用任何一种方法到达任何地方:

  1. 查看 BIM 中的位置 P1 并询问:如果有的话,哪个物体占据了空间中的这个点?
  2. 查看 BIM 中的每个对象并询问:该对象是否根据其形状和全局位置围绕 P1 延伸?

作为一个额外的挑战,我最终可能会在一个非常大的 BIM 中分布数以万计的属性,因此首选低复杂度的算法。

0 投票
1 回答
312 浏览

c# - 如何使用 Xbim 为 IFC 对象创建和操作 Table 属性?

我正在研究修改数据的基本示例(https://github.com/xBimTeam/XbimEssentials)。我唯一要更改的是在下面的代码中,我想在其中添加一个 IfcPropertyTableValue 而不是 IfcPropertySingleValue。

此代码运行,但在对象属性下的 XbimXplorer 中,什么都没有 - 它是空白的。

为了确保,示例代码以及其他属性类型确实有效,并且确实显示在 Xplorer 中的属性下。

我怎样才能使这项工作?

我还尝试使用代码来读取属性,以防 XbimXplorer 不显示表格。此代码运行并打印零行(但适用于 Xplorer 中显示的其他属性):

如果我可以一次添加几个定义/定义的值对也会很方便,例如像这样(类似于普通的 C# 列表):

但是,{"x", "y", "z", "k"}然后标记为错误Cannot initialize type 'IfcText' with a collection initializer 因为它没有实现 'System.Collections.IEnumerable'

0 投票
1 回答
81 浏览

ifc - 如何获得 IFC 窗台高度

如何在 ifc 文件中获取 Ifcwindow 的窗台高度(高于地板的高度)

0 投票
0 回答
43 浏览

c# - 使用 xbim 创建字符串 IfcParameterValue 会导致异常

我正在尝试使用 c# 中的 xbim (v5.1.323) 将字符串 IfcParameterValue 添加到现有的 IfcFlowSegment (Ifc2x3),在下面的代码中称为“圆柱体”。“IfcParameterValue”的构造函数接受双精度和字符串。添加一个双精度值效果很好,但是在尝试通过将字符串传递给构造函数来创建 IfcParameterValue 时,我总是遇到错误。

工作(双值)

不工作(字符串值)

这是我得到的错误:

System.NotSupportedException:不支持“System.Type”实例的序列化和反序列化,应该避免,因为它们会导致安全问题。路径:$.TargetSite.DeclaringType。---> System.NotSupportedException:不支持“System.Type”实例的序列化和反序列化,应该避免,因为它们会导致安全问题。在 System.Text.Json.Serialization.Converters.TypeConverter.Write(Utf8JsonWriter writer, Type value, JsonSerializerOptions options) 在 System.Text.Json.Serialization.JsonConverter 1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.JsonPropertyInfo1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) 在 System. Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.JsonPropertyInfo 1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter 1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)

知道什么可能导致此异常吗?或者您是否有更好的解决方案可以轻松地将参数(属性)添加到 IfcElement?

非常感谢!

0 投票
0 回答
39 浏览

asp.net-mvc - 如何在 ASP.NET mvc 上使用 npm 安装包

大家好,感谢您的帮助!

在我的 ASP.NET MVC(运行 Framework 4.8 而不是 Core)项目中,我以前使用的是 nuget 包(https://www.nuget.org/packages/XbimWebUI/),但该包的开发人员停止更新它并切换到仅限 npm 包(https://www.npmjs.com/package/@xbim/viewer)。

所以我创建了 package.json 文件并添加了 devDependency 但我真的不明白它应该如何工作。文件会下载到 node_modules 文件夹中,但不会添加到解决方案中。

我应该怎么做才能正确安装它,以便我可以引用这个 npm 包中的 javascript?