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

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

36 2 0 2018-08-13 举报

admin

建筑师

几家主流的BIM引擎分析汇总
  Q/ B% M+ k# v( l- i! l; ^! D/ \
BIM.jpg

& Z8 o0 o; S( {6 f7 f' x* ^我们单位是一家软件公司(此处隐去名字**字),之前也做过几个公路和铁路的项目,重点在在项目建设阶段的项目管理、进度管理、施工协作功能。BIM概念也知道几年了,知道很多地方都在搞BIM建模、碰撞检测、管线综合这块,但这些跟我们这样的软件公司来说,没什么太大关系。
" q" \" K6 ^8 V4 b2 v从去年开始,公司也慢慢碰到了一些客户提到bim相关的需求,公司也想将我们原来的软件系统加上BIM的功能。过了年,我们技术的老大就安排我研究如何进行BIM的开发或者我们的软件系统怎么能跟BIM结合,压力山大呀!!! p  b8 T2 a( a: Y! @
好在我天资聪慧,哈哈,经过一段苦逼的百度、询问和产品试用,终于有了结果,可以给老大交差了。% F. o) X2 ?; @* |& q  F
一、Bim概念梳理和开发方案选择
& t3 |' e" ^, y: S老实讲,之前对bim了解不深,只知道是建模啥。经过学习发现,BIM不仅是建模,bim是一个贯穿建筑物全生命周期的基数,将建筑的所有过程、工程数据跟三维的模型进行整合。Bim是一种技术,一种建筑工程的管理技术。现在,对于一谈bim就只知道建模的人,我就觉得很low。3 o" [9 B: {8 m6 g" z% r* \5 G
还是我们老大英明,让我们研究bim怎么结合我们的产品,结合我们的软件功能。可是怎么把bim的三维模型和数据整合到我们现在的产品中,这难度可不小呀,要知道我们单位虽然大,但软件开发就那几杆枪,再说万一搞不出来,或者搞出来了到时候天天加班,那还不把人整死,这个坑可不能给自己挖。
* B( U5 }; q& W+ {/ v4 \/ |如果有现成的bim的产品用,我们只是把这个产品嵌进我们现有的软件,实现我们想要的功能,那岂不是很好!技术风险也小,我们也不用专门搞一堆人,术业有专攻嘛!现在是资源整合的年代了,别啥都想着自己做,是不是。% Q5 B: e, M; u1 u* X
二、轻量化、WebGL轻量化bim引擎# F8 o* _$ N8 u/ g' E# Q1 h: x4 f
经过一圈了解,我发现,还真有这样的产品。这样的产品叫:轻量化,然后是轻量化bim引擎。有了这个东西,就可以把原来不管是revit、tekla、bentely等建模软件建的大模型(可能有几个G或几十个G)进行轻量化的处理,就会变得比较小,bim的信息依然保留。
; K$ w( a" B" l/ t# Y  x轻量化后,bim引擎负责展示、操作bim模型和数据,并提供全部功能的api接口,我们的系统就可以通过调用这些api接口来实现跟我们现有系统的整合,实现BIM的各种功能应用了。这个bim引擎是作为一个插件,被我们的软件封装过了,用户完全看不出来我们封装的是什么东东,只看见我们的系统里面有三维bim模型,bim模型和能我们的应用功能完全整合,觉得我们很牛,哈哈!
0 |) i5 ?* X7 F# @: v) S当然,在这个产品选择的过程中,我也走了一些弯路,现在市面上有很多轻量化bim的产品,但并不是我们所要的东西,很多都是坑,我梳理一下,给大家参考。' I; R) `3 ~4 o* [6 ^4 [
市场上Bim轻量化的产品可以分为以下三类:
+ s5 R' ^0 e! ?, x1. BIM模型查看工具:  {/ L$ r! z* \- N$ `  @0 Q
这类产品是以在线的方式查看BIM模型成果,具备跨终端(电脑和移动端)直接查看的优点,通常以BIM单文件的查询作为主要功能,产品会对文件格式的支持非常丰富。通常再加上BIM延伸为“BIM在线协同/协作平台”等类似名词,通常按照产品直接销售或按时间收费。这类产品有:BIM Vision(客户端)、A 360个人版、Trimble Connect、广联达——协筑、鸿业微模、isBIM云立方、BimShow等。+ i0 r* m8 m& V; }9 C; b5 X1 |
2. BIM平台类产品
  m6 c. ~3 l3 F) o可以导入BIM场景进行开发的平台,将业务功能与BIM场景进行结合,集成开发实现BIM+系统,例如现场施工进度管理、BIM+FM、BIM装配式建造过程管理、BIM+智慧园区等系统。平台通常侧重于业务结合,技术平台有采用Unity3D游戏引擎,也有采用OSG、ThreeJS等开源平台进行开发。这类产品有:鲁班、EBIM、大象云、蓝色星球、奇境……等。2 `; s8 f9 Q# N! [
3. BIM引擎. t9 Q& K2 H! ]
将BIM模型的展示、操作(比如放大、缩小、刨切、点选构件、透明、着色、测量、漫游等)、BIM数据提取等功能进行封装,以API的形式开放给第三方开发者。让第三方开发者也能实现完整的BIM+系统。(引擎与平台的区别,主要在于,是否在架构上将BIM模型的展示、操作和数据提取等技术与业务系统进行完整的分离,并封装成SDK供第三方使用)。这类产品有:Autodesk A360 、GL WebGL BIM Engine、广联达-BimFace、BIM365等。
# t4 y% `* _+ H; M7 T3 S经过分析我发现,我们需要应该是BIM引擎类产品,而不是前面两类产品。有了BIM引擎提供的SDK,我们就能按照客户的需求,结合我们已有的产品实现BIM的业务应用。
; Q1 V, U) j2 }, R2 b, c三、BIM引擎选择
1 f7 W7 k3 s5 |2 ]; _3 v2 n3 p在BIM引擎中,我们评测了几个产品,结果如下:
4 |; t# c9 f$ r. r$ n1. Autodesk A3603 U) b0 z/ L' l' c. k
Autodesk公司的产品,应该是采用ThreeJS开发的,功能比较丰富,常用的对BIM模型的操作都有、支持文件格式多。纯WEB的,基于WebGL技术,无需浏览器安装任何插件。
# T5 U; F" t( w) M/ t. {功能体验网址:https://myhub.autodesk360.com/g/all_projects/my 需要先申请注册一个个人账号。6 i  r7 K+ }% t7 w: n
但A360比较坑的是即使你付费了,你也只能将你的模型文件上传到 A360的云平台,然后下载它的JS包,将链接嵌入你的web系统,使用A360提供的BIM模型操作能力。  H; H# S1 i# @# ]( ?
我的天!这怎么可能??我们的客户,我老大都不会同意的。我们自己也没有任何安全感可言,用户很轻松就能看出来这不是我们的东西了。如果我们部署的客户服务器不联网,那岂不是抓瞎了???
% r6 n7 O' L4 f1 p8 i1. GL WebGL BIM Engine
/ }+ t+ s) M. G4 L2 e; K+ A& y这个产品是一个新公司做的,之前没有怎么听说过,纯WEB的,基于WebGL技术,无需浏览器安装任何插件。常用的BIM模型操作功能都有,文件格式目前支持IFC和DAE,基本能满足我们的项目需要。8 b: i3 Y/ _3 A* Y. }
功能体验网址:http://www.glendale.com.cn 也需要简单注册一个账号,它家的体验环境中有不少模型可以体验,感觉有些模型挺大的。
+ C0 }* s- J( W* f  n. D为什么说这家的引擎呢,这家引擎最大的特点就是加载速度快,这太关键了,我们测试了一下,一个900M左右的revit文件,转为ifc后为84M,上传这家的引擎测试,在我的集成显卡笔记本测试,加载只需要10秒左右。
# j7 `3 {6 y( E+ j6 y这家的产品可以以插件形式提供给我们,我们想怎么用怎么用,想怎么部署怎么部署,没有A360那些事情,只是他们产品按客户端数量和模型大小报价不同。6 i, k! J* p" c% U' P) Z
1. 广联达-BimFace9 G+ n+ e0 n9 k& b2 Q
这是广联达为了配合他们的5Dbim产品推出的一个产品,为了丰富他们的产品线,功能也比较丰富的,纯WEB的,应该基于WebGL技术,无需浏览器安装任何插件。
  B$ c% y3 `) R! t9 d; ~1 lBimface跟广联达的其他产品配合度比较好,很多导入导出功能。但是,比较坑的也是采用了和A360同样的模式,你也只能将你的模型文件上传到广联达Bimface的云平台,然后提供一个客户端的模型查看器可供调用。
! ?6 X. t: ?( j功能体验网址:http://www.bimface.com/ 也需要注册一个账号才能体验。' J. E/ ^$ s0 J! w! J& J+ C) W* g
为嘛呀?为啥大公司都是这么牛,不考虑我们的感受吗?3 b2 U  O! Q  [" ~: E
$ x" b$ Z, C1 }% m3 K

0 I/ N6 W! b% _' T% z
# R% b* D5 p8 `0 k9 k5 e$ N! k伴随着互联网的发展,越来越多的BIM用户希望在Web端直接浏览三维模型。传统的BIM应用程序都基于桌面客户端,且需要较高的计算机配置:高频CPU、大内存、独立显卡。在从桌面端走向Web端、移动端的过程中,由于受浏览器计算能力和内存限制等方面的影响,基于桌面的对模型的数据组织和消费方式必须做出相应调整,即需要更多的使用三维模型轻量化技术对模型进行深度处理。三维模型轻量化主要包括两个方面:模型轻量化显示和模型文件转换。
3 b+ f2 k3 K1 r- Z, K9 u: H5 r; t9 _/ U3 p; {7 W' I

5 M& A- @+ c: C. `. a/ t. V* }1、模型轻量化显示
0 o/ J3 V& [: Z1 p) |
/ Y8 m+ G# n; u) S$ t近几年,随着WebGL标准被广泛接受,涌现出许多基于HTML5的开源三维显示引擎,如threejs、scenejs等。尤其threejs使用非常广泛,一方面由于其使用门槛较低,另一方面是其支持若干种三维文件格式,如3ds、obj、dae、fbx等。对于中小规模的三维模型,使用threejs可以快速搭建一个基于Web的模型浏览应用。但对于模型构件比较多的应用场景,如BIM应用,直接使用threejs必然会遇到性能瓶颈,因此,必须针对threejs进行深度定制,甚至从零开始。
; q  p% Y$ E: f) U) }" S) M8 ^; N5 c" e" ]9 Y; g6 |9 ~
对threejs深入研究后,我们决定在threejs的基础上进行扩展,主要从以下几个方面展开:" M' R7 }9 E: P7 F
. x& L$ `3 l6 ~" ~# z: `
1)场景空间八叉树划分
, b$ R% @: d# z
/ H( m/ N0 P; a# B. s空间八叉树是一种高效的三维空间数据组织方式,使用八叉树可以快速剔除不可见图元,减少进入渲染区域的绘制对象。这部分技术在桌面端的三维显示引擎已非常成熟。
% {+ O. J# c$ K( h3 r4 u
0 T; r9 k2 f* t* ]# r# b8 L" i/ F9 X2)增量绘制
3 T; y6 _9 T- M" A
7 |8 L/ D' z7 I9 D绘制效率跟场景中绘制对象的数量紧密相关。对象越多,绘制效率越低。而绘制效率又会影响用户的交互体验。因此,在绘制图元达到一定数量的时候,需要使用增量绘制技术,减少等待时间,提高交互响应速度。
6 `/ O$ ?$ Y9 K. r) A
( ^, h- `9 F* }$ N( j$ h5 V3 q3)绘制对象内存池) \: b8 D; m) g" R) V
  G) Q& p0 N  C* g! x  r# Y
浏览器分配给Javascript虚拟机的内存是有限的,当内存超出限制,整个页面就会崩溃。这是由于Javascript是一种运行时解释性语言,自身具有垃圾回收机制,当分配的Javascript对象过多,垃圾回收会占用大量时间,影响浏览器响应。使用对象池可以最大限度的减少对象分配,降低内存使用,从而减少垃圾回收产生的负担。
) H; r* X) ]! p4 m  d) R* \
( x9 |% F( r' P5 Z+ w( G- v/ {9 v4)图元合并
6 ^/ a0 `  i, L
2 }8 b  i( C8 \) f图元个数越多,显示效率越低。这是由于每绘制一个图元就会进行一次draw call。而在浏览器端的draw call比在桌面端draw call的调用代价更大。合并图元可以减少draw call,从而提示显示效率。+ h  m" M. X% C6 g6 B& |
7 b8 L  d& r9 S( K7 O
2、模型文件转换
: o3 `* _) n# f  c* ^& B, l9 n7 G1 r! K2 @/ k7 |9 r. h
基于桌面的三维模型大多数采用单文件或几个文件来存储模型信息,比如几何信息、材质信息、纹理贴图及属性。这样的组织方式便于桌面程序管理,也便于用户之间以文件的方式传输数据。但单个大文件却不利于网络端传输,尤其是从服务器端下载一个三维模型,使其在浏览器中显示。一方面,大的文件传输需要更多的等待时间,另一方面,用户需等待模型下载完成后才能解析显示。 没有人愿意等待,因此,我们需要定义适合网络传输的大模型组织方式,把原始的模型文件转换为适合网络传输和轻量化显示的文件格式。( O& X) R! C/ x$ h( c

9 e( v; N9 z2 j% K/ @& }
5 U4 _& n% Z: V# m" `我们主要从以下几个方面设计三维模型轻量化转换:# S8 k0 y/ t& w8 t

8 ~! N) i+ E# F6 C, p1)构建“模型流”
, P9 V+ C! I5 y0 |
/ c, m5 O& p( @与在线视频播放一样,用户不需要下载和缓存完整的视频才能观看,只要点击播放后边下载边缓存边播放。以模型流的方式,用户可以实时看到已经下载的部分,对显示影响较大的部分先下载先显示,细节部分可以后显示。下载过程,用户不需要等待,可以进行其他操作。
2 b! @2 z: p% `* W! X8 ~
( X7 r% e" E% _# v2)几何唯一性表达
9 y; @* e9 R! Q% k) m+ ~$ k
+ N+ g' q6 h' ~在模型转换过程中,把具有相同形状的几何对象进行唯一性表达。大的模型一般会存在相同几何的多份拷贝,而实际上可以用相同的几何描述不同的构件。使用相似体的识别算法可以大大减少几何体的数量,减少模型的大小,也能减少显示时GPU的占用。
$ D: j) |1 E; ~% A
1 z! U2 i1 w& x/ D3)数据压缩9 x. ?, |  U5 L' @# W1 U: O

6 i4 q' |" r. }, u4 d2 G数据压缩可以大大减少网络传输时间,尤其对于json和几何数据,gz算法可以达到几倍的压缩率。' d% F$ U6 c& k

9 E6 i, |" ~4 E$ A% E( B模型轻量化显示和模型文件转换是BIM模型轻量化的核心技术,具有一定的技术门槛。BIMFACE本着开放的精神,把核心技术提供给广大的BIM开发者,使得开发者即使没有掌握任何图形技术,也能轻松开发强大的BIM应用。
5 q. l9 q5 N- v2 i( g9 u- Y& i: k! l) E; a2 M5 H' K
BIMFACE,与你一起开发BIM的价值!

扫一扫分享到朋友圈哦:)

 关注XinBIM平台

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