可将云端BIM施工图审查三维模型数据按照轻量化引擎要求的格式转化引擎需要的轻量化格式,即转化为对BIM模型的公开数据文件格式.国产BIM数据,转换数据包含施工图审查需求的墙、梁、板、柱等构件及对应的属性信息。转换后即会在界面显示相应三维模型及其属性。
(1)BIM模型导入
可以选择本地的BIM模型文件导入,也可以实现读取BIM模型服务来将BIM模型导入,以便进行轻量化操作。
(2)数模分离
BIM模型包含几何数据和非几何数据两部分。几何数据就是我们能看到的二维、三维模型数据,非几何数据通常指BIM模型所包含的分部分项结构数据、构件属性数据等相关业务数据。通过数模分离的处理,BIM模型文件中约20%—50%的非几何数据被剥离出去,导出为DB文件或JSON数据,供房建BIM应用开发使用。
数模分离后BIM模型仅包含结构信息,但存在唯一的对象标志,从而实现与DB文件或JSON数据的关联。当需要查看BIM模型的属性数据,再根据这个唯一标志从数据库中读取相关属性。
(3)模型拆分子对象
部分模型在建模时,创建的族类型较为复杂,在最终的模型中单个对象存在较多对象,且三角面过多,导致场景性能较差,此时可以使用拆分子对象的方式,将单个对象拆分为多个小对象。
1、删减子对象
对BIM模型数据中所有对象或选中对象进行删除或者简化来达到模型轻量化的目的,如删减门把手、锁芯等数据量大且没有实际应用价值的信息,达到模型轻量化的目的。


图1.1.3.3.3-1 删减子对象图
(5)移除背立面顶点
导出的模型通常存在一些不影响视觉效果的背立面及重复顶点和重复面,这些重复顶点和重复面在渲染过程中是不必要的,会造成资源的消耗。提供将背立面定点进行优化,减少大量模型重复顶点和重复面渲染,对于服务资源的损耗,增强集中性。
(6)相似对象提取
将相似的BIM图元进行图元合并,实现数据压缩。加载时只加载基本模型,其他模型只存储其在基本模型基础上进行几何变换参数。


图1.1.3.3.3-2相似对象提取
(7)参数化几何描述
用多个参数来描述一个几何体,我们称之为参数化几何描述。例如,画一个
圆形柱子,可以使用3个参数。
参数1:底面原点坐标(x、y、z,3个小数)
参数2:底面半径(r,1个小数)
参数3:柱子高度(h,1个小数)
这样,使用5个小数即可完成一个圆柱体的搭建,非常精简,参数化几何描述可以将单个图元做到最极致的轻量化。
(8)图元合并
在BIM模型中,有很多图元长得一模一样,比如很多桩的形状一模一样,只是位置不一样,可以做图元合并来实现轻量化,即:只保留一个桩的数据,其他桩记录一个引用空间坐标即可。通过这种方式我们可以有效减少图元数量,达到轻量化的目的。系统利用相似性算法自动减少图元数据,实现几何数据的轻量化。
(9)数据流压缩
将BIM模型文件流,材质贴图文件流,网络传输流等,使用传统数据流压缩技术进行压缩,压缩算法一般使用ZIP算法。
(10)LOD提取与轻量化
可以根据BIM模型的LOD级别进行提取和轻量化,减少BIM模型的大小,方便在大场景里面对模型的加载和浏览。LOD几何表达精度的等级划分要求如下表所示。
表1.1.3.3.3-1 LOD几何表达精度等级划分

等级 英文名 代号 几何表达精度要求
1级几何表达精度 Level1ofgeometricdetail G1 满足二维化或者符号化识别需求的几何表达精度
2级几何表达精度 Level2ofgeometricdetail G2 满足空间占位、主要颜色等粗略识别需求的几何表达精度
3级几何表达精度 Level3ofgeometricdetail G3 满足建造安装流程、采购等精细识别需求的几何表达精度
4级几何表达精度 Level4ofgeometricdetail G4 满足高精度渲染展示、产品管理、制造加工准备等高精度识别需求的几何表达精度

(11)BIM图片材质提取
可提取BIM模型的图片材质。如果图片材质是共享的,那么支持材质索引,减少导出BIM模型的中图片材质数据的存储。
(12)BIM模型轻量化服务
将BIM模型轻量化功能发布成服务,外部应用可以通过接入服务实现BIM模型轻量化。

0.3.3.1 3.3.1 数据发布

对于项目的模型数据,是以资源包的形式存储与磁盘系统中。资源包是包含一系列子文件的包文件,在包文件中每个子文件的原始数据会被压缩并加密,包文件被划分为一系列的等长存储单元,子文件数据会被分段,每段存储与某个单元中,所有分段通过链表串接起来。包文件中还存储有子文件的增删改记录,每当资源包文件更新时历史记录也会自动更新,客户端在访问服务端的资源文件时会同时获取这些历史记录,并与客户端本地的缓存数据相比对,从而能够智能减少客户端请求的数据总量。资源包数据通过专用的资源服务模块向客户端发送数据,客户端请求单个子文件,资源服务会将子文件对应的压缩加密数据通过网络传至客户端,客户端在本地进行多线程解密和解压缩。


图1.1.3.3.3.1-1 大场景下三维图形数据的快速转换和渲染
1、二次开发接口
EngineSDK是为二次开发用户提供的Web端JS类库,使得用户通过简单编程即可将引擎集成到自己的系统当中,或者对现有系统进行功能拓展,从而实现基于三维的专业应用。EngineSDK采用将C++编译到webassembly的技术路线,基于webassembly标准进行封装,尽最大可能提高引擎在浏览器端的性能,提供完善的帮助文档和示例代码,开发者可快速⼊门、掌握并上手开发。
EngineSDK针对两个版本共提供20多种共计两百多个前端接口,主要功能如下:
1)渲染性能相关
渲染性能相关提供5组接口,二次开发时,可根据不同客户端的机器性能以及当前的网络环境,实时调整引擎所占浏览器的内存,模型资源加载优先级以及每⼀帧的渲染面数等参数。
2)界面显示设置
引擎支持控制图形窗口界面相关工具栏的显示与隐藏,支持天空盒背景的显示隐藏以及自定义颜色。
3)相机控制
二次开发支持获取、设置当前相机位置,相机自动定位到构件集合功能,通过此功能可实现自定义漫游路径。
4)颜色设置
引擎自带3层颜色信息,第一层是模型原始的颜色,第二层是基于模型选择集的临时颜色,第三层是打开模型后,颜色信息包括RGB通道设置及透明度设置,有效期至本次退出浏览。可修改颜色的元素包括模型构件、地形、倾斜摄影等。
5)辅助标注信息设置
辅助标记信息包括可自定义的锚点、标签、标注三种,均可自由添加、删除、修改,并且带有鼠标点击事件,可通过鼠标点击触发响应事件。
6)轴网信息显示
通过插件导出自定义格式的轴网数据后,可通过调接口的形式加载轴网数据,并可编辑颜色。此功能主要用来显示轴线信息,也可显示等高线等线性元素。
2、数据模块
为了解决超大场景多源异构数据的高性能承载、分析、呈现等需求,为数字孪生和工程数字化发展提供可视化的三维图形底座。所以本质上也是大型软件平台,不仅要满足面向对象的思想进行平台架构设计,更要在此基础上满足数字孪生建设的需求。在服务器端使用分布式GPU加速架构来挖掘硬件潜力,将海量模型数据处理放入计算集群中并实现存储与快速发布;在客户端,采用基于OpenGL采用高效的磁盘/内存调度策略和GPU渲染资源调度策略来实时渲染服务端传输的流式模型数据。
数据导出→接口(中间交换格式文件)→资源版本系统;
资源版本系统→接口(单构件模型数据)→HLOD缓存模块/GPUR缓存模块;
HLOD缓存模块→接口(层级化节点数据)→资源打包模块;
GPUR缓存模块→接口(模型片段数据)→资源打包模块;
资源打包模块→接口(资源包)→资源发布模块;


图1.1.3.3.3.1-2 上游数据建模软件的成果平台集成的流程关系图
资源发布模块→接口(压缩数据流)→客户端文件IO模块;
客户端文件IO模块→接口(文件数据流)→资源管理模块;
资源管理模块→接口(资源创建、删除、加载、卸载,多线程负载均衡调节)→场景管理/渲染器/动画系统/复杂模型系统/GPUR系统/地形系统/植被系统/水面系统;


图1.1.3.3.3.1-3 上游数据建模软件的成果平台集成的流程关系图
渲染器→接口(渲染窗口初始化、纹理管理、GPU缓冲区管理、渲染目标设置、提交渲染批次、Shader编译管理)→场景管理/动画系统/复杂模型系统/GPUR系统/地形系统/植被系统/水面系统;
动画系统→接口(动画数据设置、骨骼信息绑定、时间轴控制)→场景管理/复杂模型系统/GPUR系统;
复杂模型系统→接口(静态构件显隐、变色、局部动画,刷新层级节点)→场景管理;
GPUR系统→接口(动态构件显隐、变色、全局动画,构件动态创建、释放)→场景管理;
地形系统→接口(地形范围设置、高程设置、修改更新)→场景管理;
植被系统→接口(植被创建、树木单体管理、LOD切换设置)→场景管理;
水面系统→接口(水面范围设置,风向、风力设置,渲染等级设置)→场景管理;
场景管理→接口(实例对象创建、删除,场景裁剪,光照环境设置,射线探测,渲染效果设置)→BIM中间层;
BIM中间层→接口(模型版本管理,模型ID管理,模型颜色、显隐控制,场景剖切,测量,相机导航,项目模型整合,UI设置,GIS坐标处理,渲染等级设置)→PC端适配模块/Web端适配模块/Android适配模块/IOS适配模块;
PC端适配模块/Web端适配模块/Android适配模块/IOS适配模块→接口(各平台易用化接口)→用户应用平台;
3、安全需求
该三维图形平台涉及到了浏览器端、移动端、编辑器,数据导出插件和服务器端几个主要的组成部分,在不同的处理阶段,数据安全保证的侧重点有所不同,从整体上划分,主要分为两部分:数据安全和网络安全。
在数据安全方面,要保证两个方面的安全:
1)数据的内容安全性,即数据本身以及数据的元数据信息不可被未授权者篡改。
2)数据的存储安全性,这方面需要保证系统中的信息均具有冗余备份,对于关键的数据信息还需要具有在线备份和离线备份两种数据备份形式。
对于数据的内容安全性,主要通过导出数据压缩加密存储,场景编辑需特殊授权等机制来实现。对于数据的存储安全性,主要通过双机热备、分布式数据存储、定时数据备份等机制来实现。
网络安全体现在网络服务的防范上,包括防止DOS攻击、防止注入攻击、防止钓鱼侵入、防止未授权访问等。对于网络安全要求,主要通过防火墙应用、系统入侵检测、系统隔离设计等手段来满足。虽然本系统支持多种不同的部署方式,包括公有云,私有云和本地化部署,但在不同的部署环境下,上述的安全性保障需求是一致的。
在公有云上部署时,可以充分依靠云服务商提供的网络安全机制,从而避免系统受恶意攻击。由于本系统的特殊性(对图形处理软-硬件的高性能,高弹性需求),需要在公有云中申请客制化的软硬件服务。
在私有云或者是本地化部署时,则需要考虑的安全需求包括:物理设备安全性,网络通信安全,网络病毒木马防御,安全更新系统和权限口令安全规范等建设需求,这些主要通过对物理设备所处环境的合理规划,网络通信设备和服务器的软硬件的版本控制,软硬件防火墙的部署,软硬件加密设备的使用和网络终端和服务器的病毒木马防御软件的使用来保证。