从事建筑行业也有一段时间,知道了整个建筑建设的大概流程:初设、设计、施工交付到后期运营,信息化有个关键技术就是模型的轻量化。
我们的BIM设计人员主要使用Revit 进行三维设计,这里主要是分享基于revit的轻量化实现。实现路径很曲折,先后从uintiy 转到webgl的threejs.

一、几种模型的文件格式

FBX
FBX格式都是三维通用模型格式,基本主流的三维设计软件都可以导出导入FBX,他们主要区别是FBX包含动画、材质特性、贴图、骨骼动画、灯光、摄像机等信息。revit 可以直接导出FBX,通过加载这个文件,3DMAX、UNITY都可以载入进行处理,经过一些测试,3dmax2020可以直接载入rvt文件,可以按照类别、族等来合并模型从而减少模型文件的大小,当然也可在3dmax中进行再次处理,比如图元合并、去除重复顶点、减少mesh等操作从而进一步减少模型体积,一般来说如果有专业的3dmax美术人员可以提供简模+贴图。3dmax 导入的RVT文件可以直接附带颜色,还原度比较好。

文件导入UNITY中往往会丢失很多材质,结果显示的都为灰白色,如图:

因为没搞过unity,期间也做了各种挣扎,查了很多资料,主要的因素好像是这些材质不是标准材质,需要在3DMAX中转换为标准材质,也有说unity的版本不支持或者重新关联,总之我没有解决这个问题,只能在unity重新赋予材质。

IFC

为建筑行业发布的建筑产品数据表达标准。目前, FME2013 IFC读模块支持2x,2x2,和2x3版本的IFC规范。使用了面向对象、范化的数据描述语言EXPRESS 语言,具体的数据格式网上有很多介绍,这里就不在赘述。revit 可以直接导出IFC格式文件,但是3dmax和uintiy 不能直接支持此文件格式。unity市场有个插件BIM Tridify可以将revit转换至uinity上,按照IFC的分类对应,材质、数据保留的也很好,不过是通过云端中转数据。

github上有个开源的BIMSERVER,使用的是JAVA,支持在线转换发布RVT文件。服务端对文件解析并转换为IFC通过文件数据库存储,展现使用的是bimsufer,是基于xeogl引擎开发,不过项目作者不打算继续维护了,估计是开源项目收益太小,目前主要在开发 xeokit,这个两个项目的定位是一样的,但 xeokit 商用要收费,一次性收 €2999。有能力的同学可以在这基础上进行二次开发。我部署了一套,服务端的还好说,只是模型展示的功能比较单一,没有定位、漫游、测量等这个常用功能需要进行二次开发,xeogl说明资源很少,需要自己慢慢摸索。

BIMSERVER:https://github.com/opensourceBIM/BIMserver

OBJ

OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,不包含动画、材质特性、贴图路径、动力学、粒子等信息。OBJ也是比较通用的文件格式,很单纯的描述了模型的顶点、贴图坐标、法线坐标等等清晰简单高效。自定义的数据格式可以参照这种数据格式表达。

GITF/GIB

GLTF代表Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为Web上的3D对象标准。它由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的JPG格式:Web导出的通用标准。GLTF主要包括两部分,一部分JSON文件描述场景结构,另一部分为二进制文件描述几何信息

https://www.khronos.org/gltf/

此外还有DWG\DAE\3DS等需求模型文件格式,都是各个绘图专业软件的文件格式。

二、UINITY轻量化

我也不太清楚怎么就出现了轻量化引擎这个说法,可能是给不明白的人听的吧,显的高大上。倒不如说怎么把专业的绘图文件转换为更小更轻的文件展示,把各绘图软件的成果统一到一个平台一种格式,理想很好,现实很骨感。每个厂商都想统一市场、统一标准,可是它能吗,更何况还有多版本兼容性的问题,所以才有各种行业协会制定标准让大家遵守,but…

先开始使用Unity作为开发工具的原因是一款成熟的游戏引擎,资源教程多,更重要的是能支持PC,WEB,手机端,一套代码多端使用,可以方便扩展减少工作量,实现的大概流程:

直接解析rvt文件不太现实,只能通过revti接口进行二次开发,revit 提供了IexportContext接口可以导出view\element\mesh等信息,这里只提取了每个构件的属性信息,按照标高形成构件树
经过3dmax对FBX模型文件处理后在导入unity进行开发,模型文件最好不要超过100m,否则会卡死,超过100m最好按专业把模型分成多个文件,不需要查看构件数据的可以合并。导入unity中最大的问题就是材质丢失问题,我遇到的主要是管线材质丢失,始终没有什么好的解决方法。
导入到unity后,剩下的工作就是开发对模型操作的功能,基本包括模型的漫游、定位、高亮、测量等功能,导出webgl的还需要提供外部调用的接口函数。对于大模型三角面比较多的导出webgl后浏览器往往会内存溢出。导出客户端形式体验是非常好的。
总的来说:

如果产品需要的是展示效果,管理功能没那么多的,可以考虑使用uinity这条路,unity今年针对AEC行业推出了新软件 reflect,貌似可以做到revit与客户端实时同步。

如果需要集成大量的管理功能来做平台系统,最好选择webgl,优缺点就是B/S与C/S的区别

BIM轻量化之路(一)-unity展示相关推荐

  1. 什么是好的BIM轻量化引擎

    BIM(Building Information Modeling)技术是一种应用于工程设计.建造.管理的数据化工具,通过对建筑的数据化.信息化模型整合,在项目策划.运行和维护的全生命周期过程中进行共 ...

  2. BIM轻量化引擎—广联达BIMFACE功能测评(一)

    最近有不少小伙伴后台私信我问题,总结下来主要围绕两块:1.市面上BIM轻量化引擎选型讨论:2.探讨某些轻量化软件的功能及使用感受. 依据大家的这些疑问,在接下来的一段时间内,我将亲自通过实操给大家分享 ...

  3. 如何用BIM轻量化引擎搭建BIM协同管理平台

    一个建筑项目从启动到结束,需要设计院.业主.施工方.监理方等多个角色参与其中,进行项目信息与数据的同步与拉通.BIM协同管理平台能实现高效的模型管理.项目进度.信息流转.人员管理,降低项目沟通成本,提 ...

  4. BIM轻量化和Web的应用

           大家好,我是小张同学,一个接触BIM有一段时间的人了,一直混迹在各大论坛学习的潜水党,收获众多.也很感慨与各种前辈们的无私奉献,在此也想分享一点自己一直以来的学习过程.如有理解不足或错误 ...

  5. python与bim_BIM轻量化之路(二)

    前言 上文提到如果项目需求的业务管理功能多.集成度高,那么就建议使用webgl的技术方向进行模型轻量化. 目前市面上有不少成熟的模型轻量化工具,比如广联达BIMFace.葛兰岱尔的GLWebGLBIM ...

  6. BIM轻量化技术解析

    (一) BIM模型处理全流程 从设计模型转换到BIM模型,再到我们最终在电脑或者移动终端看到的模型,中间经历了两个处理过程,一个是几何转换,一个是渲染处理, 这两个处理过程的好坏直接影响到最终轻量化的 ...

  7. 基于BIM轻量化的智能建造OA管理系统

  8. bim webgl 模型 轻量化_WebGL轻量化BIM引擎如何加载大体量BIM模型

    当前,国内的BIM应用如火如荼!在前几年住建部.交通部.铁总及各个省市住建厅推出各类鼓励BIM应用的政策后,湖南省强制推进的BIM审图更是为BIM应用添加了一把火! 不论BIM当前在国内推进的过程中是 ...

  9. 葛兰岱尔3D/BIM/GIS轻量化引擎直接支持PTC Creo和Siemens Nx软件

    作为国内数字孪生GIS/3D/BIM轻量化融合引擎领导厂商,葛兰岱尔3D轻量化渲染引擎持续进化,为制造业数字孪生3D应用开发提供底层技术支撑.近期,在最新的引擎版本中完成了如下的功能升级:完成了直接支 ...

最新文章

  1. JqGridView 1.0.0.0发布
  2. Google 确认 Chrome 存在严重漏洞,向 20 亿用户发出警告:你们需立即更新浏览器...
  3. 智能交通系统无人机派罚单,人脸成为下一个人牌号,人工智能下谁敢犯规
  4. OSPF分解试验部分-LAB7:NSSA区域
  5. onpropertychange替代方案
  6. 考研计算机专业课统考吗,【计算机考研】你了解计算机统考408吗?
  7. Java并发编程(03):多线程并发访问,同步控制
  8. 安装torch_sparse失败解决方法
  9. nginx upstream 模块详解
  10. linux文件查找-find和locate
  11. 【转】.NET Interop入门-P/Invoke和Reverse P/Invoke
  12. C/C++[codeup 1978]排序
  13. c语言入门手机自学软件,C语言入门学习
  14. Tomcat漏洞ip:port/manager/html
  15. 摩尔定律即将走向终结?对未来更广阔世界影响的55个预测!
  16. 鸿蒙OS应用(HarmonyOS Application)开发常见示例源码
  17. Java网络爬虫基础概述
  18. 软件测试设计——按类型划分
  19. vue3 导入svg图片
  20. 【git学习】git clone 出错 error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

热门文章

  1. cocos creator之active
  2. 实验一、二极管特性的研究
  3. fatal: unable to access ‘https://github.com/raw-recruit678/Leetcode.git/‘: OpenSSL SSL_read: Connect
  4. 谷歌piexl手机如何刷机 root
  5. H3C Telnet、SSH登录 用户名和密码一致
  6. 一名iPhone开发者的创业经验 (转)
  7. 教你在windows系统 VMware 软件中安装Ubuntu(附图文教程)超详细
  8. 分布式理论 二阶段提交 2PC 3PC 端到端一致性 分布式事务
  9. 2018.8.21 2018暑假集训之滑雪
  10. GOOGLE搜索从入门到精通v3.0 from:http://www.being.org.cn/tool/google.htm