網絡收集-几家主流的BIM引擎分析汇总

Forge|ThreeJS|Smart3D|BIM平台 版权:禁止匿名转载;禁止商业使用。

215 2 0 2018-08-13 举报

admin

建筑师

几家主流的BIM引擎分析汇总
BIM.jpg

我们单位是一家软件公司(此处隐去名字**字),之前也做过几个公路和铁路的项目,重点在在项目建设阶段的项目管理、进度管理、施工协作功能。BIM概念也知道几年了,知道很多地方都在搞BIM建模、碰撞检测、管线综合这块,但这些跟我们这样的软件公司来说,没什么太大关系。
从去年开始,公司也慢慢碰到了一些客户提到bim相关的需求,公司也想将我们原来的软件系统加上BIM的功能。过了年,我们技术的老大就安排我研究如何进行BIM的开发或者我们的软件系统怎么能跟BIM结合,压力山大呀!!
好在我天资聪慧,哈哈,经过一段苦逼的百度、询问和产品试用,终于有了结果,可以给老大交差了。
一、Bim概念梳理和开发方案选择
老实讲,之前对bim了解不深,只知道是建模啥。经过学习发现,BIM不仅是建模,bim是一个贯穿建筑物全生命周期的基数,将建筑的所有过程、工程数据跟三维的模型进行整合。Bim是一种技术,一种建筑工程的管理技术。现在,对于一谈bim就只知道建模的人,我就觉得很low。
还是我们老大英明,让我们研究bim怎么结合我们的产品,结合我们的软件功能。可是怎么把bim的三维模型和数据整合到我们现在的产品中,这难度可不小呀,要知道我们单位虽然大,但软件开发就那几杆枪,再说万一搞不出来,或者搞出来了到时候天天加班,那还不把人整死,这个坑可不能给自己挖。
如果有现成的bim的产品用,我们只是把这个产品嵌进我们现有的软件,实现我们想要的功能,那岂不是很好!技术风险也小,我们也不用专门搞一堆人,术业有专攻嘛!现在是资源整合的年代了,别啥都想着自己做,是不是。
二、轻量化、WebGL轻量化bim引擎
经过一圈了解,我发现,还真有这样的产品。这样的产品叫:轻量化,然后是轻量化bim引擎。有了这个东西,就可以把原来不管是revit、tekla、bentely等建模软件建的大模型(可能有几个G或几十个G)进行轻量化的处理,就会变得比较小,bim的信息依然保留。
轻量化后,bim引擎负责展示、操作bim模型和数据,并提供全部功能的api接口,我们的系统就可以通过调用这些api接口来实现跟我们现有系统的整合,实现BIM的各种功能应用了。这个bim引擎是作为一个插件,被我们的软件封装过了,用户完全看不出来我们封装的是什么东东,只看见我们的系统里面有三维bim模型,bim模型和能我们的应用功能完全整合,觉得我们很牛,哈哈!
当然,在这个产品选择的过程中,我也走了一些弯路,现在市面上有很多轻量化bim的产品,但并不是我们所要的东西,很多都是坑,我梳理一下,给大家参考。
市场上Bim轻量化的产品可以分为以下三类:
1. BIM模型查看工具:
这类产品是以在线的方式查看BIM模型成果,具备跨终端(电脑和移动端)直接查看的优点,通常以BIM单文件的查询作为主要功能,产品会对文件格式的支持非常丰富。通常再加上BIM延伸为“BIM在线协同/协作平台”等类似名词,通常按照产品直接销售或按时间收费。这类产品有:BIM Vision(客户端)、A 360个人版、Trimble Connect、广联达——协筑、鸿业微模、isBIM云立方、BimShow等。
2. BIM平台类产品
可以导入BIM场景进行开发的平台,将业务功能与BIM场景进行结合,集成开发实现BIM+系统,例如现场施工进度管理、BIM+FM、BIM装配式建造过程管理、BIM+智慧园区等系统。平台通常侧重于业务结合,技术平台有采用Unity3D游戏引擎,也有采用OSG、ThreeJS等开源平台进行开发。这类产品有:鲁班、EBIM、大象云、蓝色星球、奇境……等。
3. BIM引擎
将BIM模型的展示、操作(比如放大、缩小、刨切、点选构件、透明、着色、测量、漫游等)、BIM数据提取等功能进行封装,以API的形式开放给第三方开发者。让第三方开发者也能实现完整的BIM+系统。(引擎与平台的区别,主要在于,是否在架构上将BIM模型的展示、操作和数据提取等技术与业务系统进行完整的分离,并封装成SDK供第三方使用)。这类产品有:Autodesk A360 、GL WebGL BIM Engine、广联达-BimFace、BIM365等。
经过分析我发现,我们需要应该是BIM引擎类产品,而不是前面两类产品。有了BIM引擎提供的SDK,我们就能按照客户的需求,结合我们已有的产品实现BIM的业务应用。
三、BIM引擎选择
在BIM引擎中,我们评测了几个产品,结果如下:
1. Autodesk A360
Autodesk公司的产品,应该是采用ThreeJS开发的,功能比较丰富,常用的对BIM模型的操作都有、支持文件格式多。纯WEB的,基于WebGL技术,无需浏览器安装任何插件。
功能体验网址:https://myhub.autodesk360.com/g/all_projects/my 需要先申请注册一个个人账号。
但A360比较坑的是即使你付费了,你也只能将你的模型文件上传到 A360的云平台,然后下载它的JS包,将链接嵌入你的web系统,使用A360提供的BIM模型操作能力。
我的天!这怎么可能??我们的客户,我老大都不会同意的。我们自己也没有任何安全感可言,用户很轻松就能看出来这不是我们的东西了。如果我们部署的客户服务器不联网,那岂不是抓瞎了???
1. GL WebGL BIM Engine
这个产品是一个新公司做的,之前没有怎么听说过,纯WEB的,基于WebGL技术,无需浏览器安装任何插件。常用的BIM模型操作功能都有,文件格式目前支持IFC和DAE,基本能满足我们的项目需要。
功能体验网址:http://www.glendale.com.cn 也需要简单注册一个账号,它家的体验环境中有不少模型可以体验,感觉有些模型挺大的。
为什么说这家的引擎呢,这家引擎最大的特点就是加载速度快,这太关键了,我们测试了一下,一个900M左右的revit文件,转为ifc后为84M,上传这家的引擎测试,在我的集成显卡笔记本测试,加载只需要10秒左右。
这家的产品可以以插件形式提供给我们,我们想怎么用怎么用,想怎么部署怎么部署,没有A360那些事情,只是他们产品按客户端数量和模型大小报价不同。
1. 广联达-BimFace
这是广联达为了配合他们的5Dbim产品推出的一个产品,为了丰富他们的产品线,功能也比较丰富的,纯WEB的,应该基于WebGL技术,无需浏览器安装任何插件。
Bimface跟广联达的其他产品配合度比较好,很多导入导出功能。但是,比较坑的也是采用了和A360同样的模式,你也只能将你的模型文件上传到广联达Bimface的云平台,然后提供一个客户端的模型查看器可供调用。
功能体验网址:http://www.bimface.com/ 也需要注册一个账号才能体验。
为嘛呀?为啥大公司都是这么牛,不考虑我们的感受吗?



伴随着互联网的发展,越来越多的BIM用户希望在Web端直接浏览三维模型。传统的BIM应用程序都基于桌面客户端,且需要较高的计算机配置:高频CPU、大内存、独立显卡。在从桌面端走向Web端、移动端的过程中,由于受浏览器计算能力和内存限制等方面的影响,基于桌面的对模型的数据组织和消费方式必须做出相应调整,即需要更多的使用三维模型轻量化技术对模型进行深度处理。三维模型轻量化主要包括两个方面:模型轻量化显示和模型文件转换。


1、模型轻量化显示

近几年,随着WebGL标准被广泛接受,涌现出许多基于HTML5的开源三维显示引擎,如threejs、scenejs等。尤其threejs使用非常广泛,一方面由于其使用门槛较低,另一方面是其支持若干种三维文件格式,如3ds、obj、dae、fbx等。对于中小规模的三维模型,使用threejs可以快速搭建一个基于Web的模型浏览应用。但对于模型构件比较多的应用场景,如BIM应用,直接使用threejs必然会遇到性能瓶颈,因此,必须针对threejs进行深度定制,甚至从零开始。

对threejs深入研究后,我们决定在threejs的基础上进行扩展,主要从以下几个方面展开:

1)场景空间八叉树划分

空间八叉树是一种高效的三维空间数据组织方式,使用八叉树可以快速剔除不可见图元,减少进入渲染区域的绘制对象。这部分技术在桌面端的三维显示引擎已非常成熟。

2)增量绘制

绘制效率跟场景中绘制对象的数量紧密相关。对象越多,绘制效率越低。而绘制效率又会影响用户的交互体验。因此,在绘制图元达到一定数量的时候,需要使用增量绘制技术,减少等待时间,提高交互响应速度。

3)绘制对象内存池

浏览器分配给Javascript虚拟机的内存是有限的,当内存超出限制,整个页面就会崩溃。这是由于Javascript是一种运行时解释性语言,自身具有垃圾回收机制,当分配的Javascript对象过多,垃圾回收会占用大量时间,影响浏览器响应。使用对象池可以最大限度的减少对象分配,降低内存使用,从而减少垃圾回收产生的负担。

4)图元合并

图元个数越多,显示效率越低。这是由于每绘制一个图元就会进行一次draw call。而在浏览器端的draw call比在桌面端draw call的调用代价更大。合并图元可以减少draw call,从而提示显示效率。

2、模型文件转换

基于桌面的三维模型大多数采用单文件或几个文件来存储模型信息,比如几何信息、材质信息、纹理贴图及属性。这样的组织方式便于桌面程序管理,也便于用户之间以文件的方式传输数据。但单个大文件却不利于网络端传输,尤其是从服务器端下载一个三维模型,使其在浏览器中显示。一方面,大的文件传输需要更多的等待时间,另一方面,用户需等待模型下载完成后才能解析显示。 没有人愿意等待,因此,我们需要定义适合网络传输的大模型组织方式,把原始的模型文件转换为适合网络传输和轻量化显示的文件格式。


我们主要从以下几个方面设计三维模型轻量化转换:

1)构建“模型流”

与在线视频播放一样,用户不需要下载和缓存完整的视频才能观看,只要点击播放后边下载边缓存边播放。以模型流的方式,用户可以实时看到已经下载的部分,对显示影响较大的部分先下载先显示,细节部分可以后显示。下载过程,用户不需要等待,可以进行其他操作。

2)几何唯一性表达

在模型转换过程中,把具有相同形状的几何对象进行唯一性表达。大的模型一般会存在相同几何的多份拷贝,而实际上可以用相同的几何描述不同的构件。使用相似体的识别算法可以大大减少几何体的数量,减少模型的大小,也能减少显示时GPU的占用。

3)数据压缩

数据压缩可以大大减少网络传输时间,尤其对于json和几何数据,gz算法可以达到几倍的压缩率。

模型轻量化显示和模型文件转换是BIM模型轻量化的核心技术,具有一定的技术门槛。BIMFACE本着开放的精神,把核心技术提供给广大的BIM开发者,使得开发者即使没有掌握任何图形技术,也能轻松开发强大的BIM应用。

BIMFACE,与你一起开发BIM的价值!

 关注XinBIM平台

快速回复 返回顶部 返回列表