在离线状态下BIM+GIS 系统数据传递方法及应用实践
2021-03-23冉光炯
王 健 冉光炯* 白 皓 张 果
(1、四川高速公路建设开发集团有限公司,四川 成都610047 2、四川省公路规划勘察设计研究院有限公司,四川 成都610041)
目前BIM+GIS 系统已经广泛应用于基础设施建设的各个领域,在各个行业均开始构建各种各样的项目管理系统,当前的BIM+GIS 管理系统对网络有极大的依赖,在市政等网络条件好的项目地通常易于满足,而在荒无人烟的公路、水利等项目地通常网络较差,尤其是公路工点可能会穿越无网络信号区,或者人为的无网络信号区(如隧道施工)。
以公路工程施工工序报检为例,现场工序检查结果采集完成后,需要上传到系统,由监理进行抽检等流程处理后进入下一道工序。而无网络信号区域无法顺利地完成上述工作,因此,考虑到无网络信号区域,构建离线状态下BIM+GIS 管理系统及实现数据传递研究的必要性凸显。
本文以公路工程工序报检案例为例,介绍如何解决BIM+GIS 系统APP 端在离线状态工作并解决流程数据传递问题,从而提高BIM+GIS 系统的可用性。
1 离线数据存储结构
1.1 数据存储容器
施工现场到BIM+GIS 系统的数据传递基础是基础数据存储。SQLite 作为一款轻型数据库,实现了自给自足的、无服务器的、零配置的、事务性的SQL 数据库引擎,是遵守ACID 的关系型数据库管理系统,它包含在一个相对小的C 库中。它是D.RichardHipp 建立的公有领域项目,设计目标是嵌入式的,由于它的资源占用率非常低,在嵌入式设备中,可能只需要几百K的内存,目前已经有很多嵌入式产品使用了它。综合考虑以上因素,SQLite 是满足当前需求的极佳选择。
1.2 数据类型
实现系统内的数据传递,即施工自检填报的数据流向监理的客户端。必须规定一种统一的数据类型,在数据接收方接收到数据之后才能用统一解析方式来解析拿到的数据。
JSON 作为一种流行的数据传输类型,有轻量、解析速度快、存储数据体积小等特点,且各个平台语言都支持JSON 交互、JSON 解析和存储。因为JSON 解析方便,常用于接口交互、前后端交互,以及配置文件。而XML、PList(XML 的一种)等格式,需要定义各种Dom 节点。此外JSON 的生态相对完善,有简单且效率高的解析工具,对获取到的JSON 数据进行解析也非常便捷。
对比各种数据类型后,本文采用JSON 作为离线状态下数据传递的类型,JSON 格式数据如图1 所示。
图1 JSON 格式数据
1.3 数据结构
由于BIM+GIS 系统内的数据传递必须囊括所有必需信息,且由于检查项的不确定性,造成信息的结构并不完全固定,缺少任意部分信息都会导致传递的数据无法使用,故在确定JSON数据类型的基础上,还需确定具体的数据结构。
在工序检查填报中,有效数据有:标段、分部分项ID、工序ID、检查项、施工单位、施工日期、检查日期、填报人信息等,因此本文规定工序检查业务场景下传递的数据必须包含以上数据内容才是有效数据,如图2 所示。
图2 工序检查填报数据结构示例
2 数据离线采集与传递
数据离线采集及传递的基础思路是将数据离线到本地,依靠本地数据完成数据填报并缓存,待有网络的情况下自动上传数据;在整个流程中,完成离线状态下的端对端数据传递,实现流程确认。基本流程如图3 所示。
图3 填报流程框架图
2.1 基础数据离线
数据离线采集的基础是基础数据离线,工序报检对施工分部分项数据库、报检项及相关配置、施工单位、施工人员信息均有依赖,因此,系统离线工作前,首先应将基础数据进行离线存储于本地备用。启动前的数据离线如图4 所示。
2.2 现场数据采集
系统运行时,当检测到网络断开后将自动进入离线模式。离线模式下,系统填报所依赖的基础数据均不再从远程服务器区域获取,而改从成本地数据库提取。用户根据在线状态的使用习惯,完成所有信息的填报并提交。用户提交后,与在线不同的是,数据并未向远程服务器上传,而是加密后存储到本地服务器(图5),通过加密防止了数据被篡改的可能,同时离线记录进入离线记录表,APP 端检测到网络后,可以自动提交。
图5 离线填报结果示例
2.3 离线流程数据传递
现场数据采集完成并提交后,完成了数据采集,只待网络通畅即可自动上传,但施工现场的复杂程度却往往远甚于此。在无网络区域(如隧道中),完成了施工报检后,监理需要对报检信息进行确认及抽检,如何实现离线流程数据传递又成为一个新的问题。本文所涉的APP 端,在施工报检完成后,将填报的有效信息组织成一个JSON 对象,使用二维码生成算法,生成包含自检结果数据的二维码(图6),监理使用APP 的扫码功能,通过二维码解析算法得到JSON 数据,然后将JSON 数据还原得到工序检查结果的源数据,实现数据流动,再进行流程确认及抽检,完成相应工作后,与施工报检相似,提交后进行加密的离线存储,待网络恢复后,自动将确认信息及抽检信息上传到服务器。通过二维码(图6)作为信息载体,在脱离远程服务器的环境下,实现了两个APP 端的点对点数据传递,解决了离线状态下离线流程数据传递。
图6 工序检查数据示例及对应二维码
3 应用分析
本文提出的方法有如下优点:
3.1 实现了离线状态下施工现场到BIM 系统的数据传递。由于公路工程施工的环境存在没有网络信号的情况,如果检查的工序比较多,延后填报可能会导致无法准确有效地填报检查结果。本方法的提出实现了在无网络的情况及时填报正确检查结果的功能,提高工序检查及填报的效率。
3.2 实现离线状态下系统内填报的数据传递,完成离线状态下的监理抽检。离线时施工自检与监理抽检无法及时响应,这导致填报流程会卡在施工自检环节。本方法的提出,解决了此问题,使得施工自检之后,在离线条件下使用二维码进行施工自检结果的数据传递,监理拿到自检结果直接离线填报二次检查结果,推进工序检查流程,提高工序检查时效性及效率。
3.3 传递包含传递标段、分部分项、工序、检查项、施工单位、施工时间、接收人、填报人、填报时间、填报地点、检查日期、现场描述等多种有效信息在内的工序填报所需的所有数据,能精确描述工序检查结果,完全还原数据内容,有效提高离线情况下数据流动的正确性。
3.4 使用JSON 解析器能够迅速解析从二维码扫描出来的数据,还原出源数据的数据结构,快速接入到业务逻辑中,实现端对端的数据流动的无缝连接,解析效率高。
4 结论
本文详细介绍了在公路工程领域离线状态下BIM+GIS 系统中数据传递方法的应用实践,介绍了数据传递过程中使用的数据存储与数据结构,详细阐述了在离线状态下数据采集及端到端数据的传递方法。根据项目的实践经验,基于此技术手段已取得不错效果,在一定程度上满足了公路工程施工中离线状态下的BIM+GIS 系统的数据传递需求。但在数据量大小及效率上依然存在改进空间,还需进一步研究数据传递算法,精简数据结构,使其满足各种条件下的离线数据传递。