Speckle+IFC.js:开源BIM

2021年12 月底,我有机会参加了一个关于两个开源工具的网络研讨会:Speckle 和 IFC.js。 该网络研讨会是由一个名为 Agile BIM 的社区组织的,我对此也一无所知。 然而,我所知道的事实是开源软件开发在任何领域的重要性,开发人员作为一个团队聚集在一起创建软件,这些软件可以免费提供以进行可能的修改和重新分发,从而允许它进一步开发 . 使用开源开发的技术通常是商业软件公司无法提供的,其业务是开发专有软件。

对于 AEC 行业,我们确实有开放设计联盟(ODA)和 buildingSMART International 等组织致力于促进开放性和互操作性,关于这一点请参阅最近的文章 ODA Summit 2021buildingSMART 标准概述。IFC 格式已为 OpenBIM 建立完善,几乎得到所有领先的 AEC 技术开发商的一致支持,以允许他们的应用程序交换彼此的数据 。

那么,Speckle 和 IFC.js 是什么,它们有什么作用,为什么需要它们? 2021 年 12 月 15 日举行的关于这两个开源工具的敏捷 BIM 网络研讨会让我有机会了解更多关于它们的信息。

首先是 IFC.js。

一、IFC.js

IFC.js 是一个正在开发的 JavaScript 库,旨在使 BIM 开发民主化并降低成本,这样 AEC 技术领域的小公司也可以获得开发 BIM 的机会,而不会被大公司垄断。 这不仅有利于小型企业,也有利于整个行业,因为更多 BIM 解决方案将以更实惠的价格在更多国家/地区推出。 反过来,这将导致 BIM 的采用率不断提高,从而提高整个行业的技术水平。 此外,降低开发 BIM 的成本也将刺激该领域的更多创新并加快改进步伐。 从本质上讲,这个想法不仅是为了创造公平的竞争环境,而且实际上是为了让更多的玩家能够参与进来。

IFC.js 背后的想法是通过免费提供 IFC 开发的源代码和文档来实现这一点,这样开发人员至少可以准备好这个起点并准备开始。 当然,前提是 IFC 格式对任何类型的 BIM 软件开发都至关重要;考虑到IFC的成熟程度——更不用说它是唯一可用的开放式 BIM 标准——这是一个安全的选择。 但是,实施起来非常困难。 凭借完全免费的现成实施,IFC.js 消除了进入障碍,使小型开发人员更容易快速启动他们的软件开发。

IFC.js 的当前功能包括以 3D 形式读取和写入 IFC 文件。 此外,由于它是一个 JavaScript 框架,它允许创建可在 Web 浏览器以及多个平台上的移动设备中运行的 BIM 工具。 IFC.js不仅易于使用,而且非常高效,如仅用 30 行 JavaScript 在 Twitter 中创建 BIM 工具的示例所示:

在上图中,使用 IFC.js 插入 Twitter 推文中的 BIM 模型。 可以在模型周围导航并执行其他操作,例如应用剖切平面、与其他 BIM 工具交互以及将模型导出为 DXF 工程图。

本质上,Twitter 在这种情况下充当 BIM 查看器。 它以相同的方式与任何其他网页一起工作,允许在任何地方显示 BIM 模型(IFC 格式)。

网络研讨会中演示的另一个示例是一个 BIM + GIS 应用程序,该应用程序是使用 IFC.js 和另一个名为 Harp.gl 的开源库在不到 48 小时内开发的,这个在最近的 AEC 黑客马拉松期间开发的 BIM + GIS 应用程序显示了位于旧金山的 BIM 模型:

然后是下图所示的 BIM 查看器示例,仅用 74 行代码创建了元素选择、环境遮挡、阴影、剪裁位置、相机动画等。 IFC.js 库的实现方式隐藏了代码的复杂性,允许根据正在开发的应用程序的需要轻松引用所需的功能:

上图中使用 IFC.js 创建的 BIM 查看器, 可以在右侧的开发者工具窗口中看到所选元素的属性。

IFC.js 的源代码位于 GitHub ,包括教程、用例等在内的文档可以在这里访问。随着更多开发人员加入该计划并添加到代码中,它的功能应该会继续得到增强。 不用说,作为一项非商业性的努力,它没有付费应用程序的花哨功能,但它是实用的,如BIM查看器中的示例所示,其中所选元素的属性可以在 Developers 工具中看到 窗口而不是集成的调色板。

此外还应注意,虽然 JavaScript 主要用于 Web 开发,但它也可用于创建桌面应用程序,因此 IFC.js 也可用于快速启动桌面 BIM 应用程序的开发,如下图 所示, 导入和使用 IFC 格式的 BIM 模型的基础知识得到处理后,开发人员可以专注于实现其 BIM 应用程序将提供的其他功能:

上图展示了使用 IFC.js 创建的测试桌面应用程序。 虽然此示例在 Windows 上运行,但 IFC.js 也适用于 Mac 和 Linux 平台。

二、Speckle

网络研讨会中介绍的第二个开源工具是 Speckle。 与 IFC.js 不同,IFC.js 不仅免费且开源,而且还由在不同公司工作的个人协作开发,Speckle 实际上是一家名为 Speckle Systems 的公司的产品,该公司拥有一些全职员工,其中许多人拥有之前曾在以尖端技术开发和实施而闻名的 AEC 公司从事计算设计工作,例如 Arup、Buro Happold 和 Foster+Partners。

事实上,我第一次听说 Speckle 是在 upFront.eZine 的第 1113 期,Arup Digital Technology 的高级顾问 Peter Debney 提到了为什么 Arup 帮助开发 Speckle 并作为开源产品来解决建筑中的数据传输问题 .

Speckle 是一种协作和互操作性解决方案,不同于使用 IFC 等通用文件格式在应用程序之间交换数据,Speckle通过为最流行的 AEC 应用程序提供连接器来工作,允许它们与其他连接的应用程序实时交换数据。 一旦为应用程序安装了连接器,它允许从模型中选择的元素被捕获为“流”,然后可以被任何其他具有 Speckle 连接器的应用程序接收。 下图显示了一个示例:

在 Revit 模型中选择元素以创建 Speckle 流
将其导入 Rhino + Grasshopper

目前,大约有 18 个连接器,还有更多连接器正在开发中,通常是与应用程序开发人员协作。 因此,例如,Speckle 正在与 Graphisoft 合作开发 Archicad 连接器; Tekla Structures 的连接器也在开发中。

除了能够实时启用 AEC 数据交换之外,需要注意的关键是 Speckle 不处理文件本身。 相反,数据是通过其 Speckle 连接器作为“流”从应用程序中捕获的。 Speckle 是一个基于 Web 的应用程序,所有这些捕获的流都在线托管,如下图所示。任何流都可以简单地通过 URL 发送到具有连接器的接收应用程序。 Speckle 跟踪对流中捕获的元素所做的任何修改,并向所有在其他应用程序中使用该流的人实时发送有关更新的通知。

所有保存的 Speckle 流都可以在线查看。

Speckle产品的长期愿景是超越成为最终用户的平台,同时也被开发人员部署。 由于 AEC 数据可以根据需要推入和推出 Speckle,因此可以开发需要处理模型中数据的工具,例如嵌入碳计算、数量报告、成本核算、调度等。 随着 AEC 数据现在从专有文件中“解放”出来,其他开发人员可以访问它并释放 BIM 模型的潜力,而无需开发 API(应用程序编程接口)来处理各个 AEC 应用程序。 他们只需要使用 Speckle 中的数据流,而且它是免费和开源的事实降低了进入门槛,就像使用 IFC.js 一样。

三、结束语

看到如此多的人聚集在一起,汇集他们的技能、兴趣和资源来开发对整个行业有用的开源软件解决方案,为商业软件解决方案提供急需的对比,真是太棒了。 通过免费提供,Speckle 和 IFC.js 允许较小规模的开发人员快速启动他们自己的解决方案的开发,这显着降低了进入门槛,并可以鼓励 AEC 技术行业的更多创新。

这些开源工作的许多贡献者都是以志愿者的身份这样做的,除了他们的有偿工作之外,他们还为此腾出了时间。 他们是开源软件的坚定支持者,并且希望分享他们编写的代码。 我发现它非常鼓舞人心。


原文链接:Speckle and IFC.js: Open Source Tools for BIM

BimAnt翻译整理,转载请标明出处