大体量BIM模型数据处理及加载方法和设备与流程

专利2022-06-29  56


本发明属于bim数据处理技术领域,特别涉及一种bim数据的处理方法及设备、系统。



背景技术:

随着人类科技的进步,gis平台从二维转向三维成为发展的一个方向,三维gis平台可加载多源异构数据,其中包括高程、影像、精确模型、bim模型等海量数据。bim模型数据的体量大、结构复杂,小范围内模型数据体量庞大等特点,造成gis平台在加载bim模型数据的时候出现缓慢、视图卡顿的现象,让三维gis场景提供高效数据加载成为必然。

为了提高三维场景加载及渲染性能,在bim数据生产过程中采用分片方式对数据进行处理,可以有效的缓解内存压力,并实现动态加载及卸载方法。解决三维场景浏览卡顿,对于人机交互体验有着重要意义。

目前三维gis平台加载bim模型数据存在的问题:

小范围大体量模型加载:若单模型逐个加载,由于数量多,模型材质复用性低,导致系统内存增大、浏览出现卡顿现象。若整体加载,等待模型显示的时间过长,影响用户体验,且无法做到局部模型卸载,使场景内存难以管理。

bim模型数据制作及处理过程复杂,单个模型导出加载到三维平台时,涉及到坐标转换及投影转换的问题,会出现不同程度的误差,导致模型加载到三维场景中位置发生偏差及定位不准等问题。



技术实现要素:

为了解决上述现有技术所存在的不足,本发明提供了一种bim数据的处理方法,有效提升三维场景的浏览速度、缓解内存压力、提高渲染效率。

同时,本发明提供了上述bim数据的处理方法的bim数据的处理设备和系统。

本发明所采用的技术方案是:

一种大体量bim模型数据的处理及加载方法,其包括以下步骤:

(1)将bim模型导入3dmax,导出bim模型中的单体模型的位置信息,导出格式为json文件;

(2)将3dmax导入的场景模型用网格法分组,导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(3)导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模;

(4)用3dmax自动减面功能对组模型进行轻量化处理,或手动删除组模型中轮廓以外的其他细节模型;

(5)导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模;

(6)使用模型图层制作工具对(2)的组模型的位置信息及包围盒半径、(3)分组后的组模型、(5)轻量化处理后的组模型添加组模型的显示范围和基点,将其与步骤(1)的单体模型的位置信息另存为三维平台可识别的模型图层文件,建立索引;

(7)将步骤(6)的模型图层文件加载到三维平台,读取模型图层文件,获取每个组模型在三维平台的位置信息及包围盒信息,根据当前场景相机位置,判断组模型是否和相机视域范围相交,对相交的组模型根据相机到组模型中心点距离由近到远排序后添加到渲染队列,三维平台根据渲染队列顺序进行渲染,当相机离开该视域范围,视域范围内的模型将会停止渲染,完成大体量bim模型数据的处理及加载。

进一步限定,所述步骤(6)的模型图层文件格式为wfs服务。

进一步限定,所述步骤(1)具体为:

(1.1)利用revit软件制作bim模型,导出工程为fbx;

(1.2)用3dmax导入fbx工程文件;

(1.3)建立工具1:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮1,在按钮1的点击事件中使用max脚本接口geometryasarray获取所有的模型,遍历模型集合,获取到单体模型的名称及位置信息,选择保存路径写入到json文件中,;

(1.4)利用工具1读取3dmax中的单体模型的位置信息,导出格式为json文件。

进一步限定,所述步骤(2)具体为:

(2.1)建立工具2:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮2,在按钮2的点击事件中使用max脚本接口geometryasarray获取所有模型,根据模型集合获取最小外接矩形的最大最小坐标,根据得出的最大最小坐标网格化处理该矩形,将模型按照网格进行分组;

(2.2)建立工具3:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮3,在按钮3的点击事件中使用max脚本接口geometryasarray获取所有组节点;

(2.3)利用工具2将3dmax导入的场景模型分组;

(2.4)利用工具3导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件。

进一步限定,所述步骤(3)具体为:

(3.1)建立工具4:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮4,在按钮4的点击事件中使用max脚本接口geometryasarray获取所有与步骤(2.2)一致的组节点,判断组节点集合不为空,弹出选择文件夹路径对话框,选择路径;遍历所有组模型,清空当前被选中的模型,选择当前遍历下的子模型,,根据选择的文件夹路径加组模型名称导出该组模型;

(3.2)利用工具4导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模。

进一步限定,所述步骤(5)具体为:利用工具4导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模。

一种大体量bim模型数据的处理及加载设备,其包括:

模型数据导入模块:用于将bim模型导入3dmax;

数据导出模块:用于在3dmax中导出bim模型中的单体模型的位置信息;

模型数据分组模块:用于将3dmax导入的场景模型用网格法分组;

模型数据导出模块:用于将分组后的模型按照组形式导出,形成精模;

模型数据轻量化模块:用于将分组后的模型,按照组形式轻量化处理,形成简模;

模型图层制作模块:用于对数据导出模块导出的组模型的位置信息及包围盒半径、模型数据导出模块导出的分组后的精模、模型数据轻量化模块轻量化处理后的简模分别添加组模型的显示范围和基点,与单体模型的位置信息共同另存为三维平台可识别的模型图层文件,并建立索引。

一种bim模型数据处理设备,其包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于运行存储器所存储的计算机指令,实现上述的大体量bim模型数据的处理及加载方法。

本发明公开了一种大体量bim模型数据的处理及加载方法及设备,其主要是针对bim模型小范围内数据体量庞大的问题,利用revit创建模型后导入3dmax,在max中提供了模型按照空间位置自动分组的方法,bim模型加载采用就近加载的原理,能快速显示距当前视角最近的场景模型,当模型数量达到某一上线的时候,能自动根据加载的情况进行卸载,本发明方法对于加载大量bim模型、速度慢、视图卡顿的现象提供了快速解决的办法,对于提升三维场景的浏览速度、缓解内存压力、提高渲染效率、人机交互的体验有着重要的意义。

附图说明

图1为大体量bim模型数据的处理及加载方法流程图。

图2为图1中bim数据导出示意图。

图3为精模现实效果。

图4为三维平台加载的模型图层文件。

具体实施方式

现结合附图和实施例对本发明的技术方案进行进一步说明。

现以利用revit创建bim模型,并在3dmax中处理为例进行说明。

实施例1

参见图1,本实施例的大体量bim模型数据处理及加载方法可以由以下步骤实现:

(1)将bim模型导入3dmax,导出bim模型中的单体模型的位置信息,导出格式为json文件;具体为:

(1.1)利用revit软件制作bim模型,参见图1,图1为bim数据导出,导出工程为fbx;

(1.2)用3dmax导入fbx工程文件;

(1.3)建立工具1:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮1(buttonbtnexportcoord″导出模型坐标″),在按钮1的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有的模型,遍历模型集合,获取到单个模型的名称(name)及位置信息(pos),选择保存路径写入到json文件中;

(1.4)利用工具1读取3dmax中的单体模型的位置信息,导出格式为json文件。

(2)将3dmax导入的场景模型用网格法分组,导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(2.1)建立工具2:工具2的创建过程同1.3中工具1的创建,

工具2实现为:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮2(buttonbtnexportcoord″导出模型坐标″),在按钮2的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口获取所有模型(geometryasarray),根据模型集合获取最小外接矩形最大最小坐标(根据单个模型的坐标位置pos计算得出),根据得出的最大最小坐标网格化该矩形,将模型按照网格进行分组(grouptmparr(tmparr为模型数组))。

(2.2)创建工具3:工具3的创建过程同1.3中工具1的创建,

在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮3(buttonbtnexportcoord″导出模型坐标″),在按钮3的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有组节点(forginhelperswhereisgroupheadgcollectg);

(2.3)利用工具2将3dmax导入的场景模型分组;

(2.4)利用工具3导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(3)导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模;参见图3,从图3可知,组模型呈现的精细化。

(3.1)建立工具4:创建按钮同1.3中工具1。

在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮4(buttonbtnexportcoord″导出模型坐标″),在按钮4的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有组节点(与步骤(2.2)中工具3获取组节点方法一致),遍历所有组模型(fori=1togrpsdo),清空所有选择的模型然后选中该组模型(clearselection();selectmodel),根据选择的文件路径加组模型名称导出(exportfilegeopath#nopromptselectedonly:true)。

(3.2)利用工具4导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模。

(4)用3dmax自动减面功能对组模型进行轻量化处理,删除模型中轮廓以外的其他细节模型;

(5)导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模;于精模相比简模只呈现轮廓线。

(6)使用模型图层制作工具对(2)的组模型的位置信息及包围盒半径、(3)分组后的组模型、(5)轻量化处理后的组模型添加组模型的显示范围和基点,将其与步骤(1)的单体模型的位置信息另存为三维平台可识别的模型图层文件(sml),建立索引;

(7)将步骤(6)的模型图层文件(shapefile)加载到skylineterraexlorer三维平台,shapefile文件中字段包含模型名称、模型路径、最大显示距离、最小显示距离等参数;配置建模的最大最小显示范围为200-20000m,精模显示范围为0-200m,参见图4,读取模型图层文件,获取每个组模型在三维平台的位置信息及包围盒信息,再根据当前场景相机位置,判断组模型是否和相机视域范围相交,对相交的组模型根据相机到组模型中心点距离由近到远排序后添加到渲染队列,三维平台根据渲染队列顺序进行渲染,当相机离开该视域范围,视域范围内的模型将会停止渲染,完成大体量bim模型数据的快速处理及加载,提升三维场景的浏览速度并缓解内存压力,提高渲染效率、人机交互体验感。

实现上述的大体量bim模型数据处理及加载方法可以通过下述大体量bim模型数据处理及加载设备来实现,该大体量bim模型数据处理及加载设备具体包括:

模型数据导入模块:用于将bim模型导入3dmax;

数据导出模块:用于在3dmax中导出bim模型中的单体模型的位置信息,文件中包含每个模型相对原点位置的x、y、z坐标值;

模型数据分组模块:用于将3dmax导入的场景模型用网格法分组,组名称默认命名为group001、group002......、group00n;

模型数据导出模块:用于将分组后的模型按照组形式导出,形成精模;

模型数据轻量化模块:用于将分组后的模型,按照组形式轻量化处理,形成简模;

模型图层制作模块:用于对数据导出模块导出的组模型的位置信息及包围盒半径、模型数据导出模块导出的分组后的精模、模型数据轻量化模块轻量化处理后的简模分别添加组模型的显示范围和基点,与单体模型的位置信息共同另存为三维平台可识别的模型图层文件,并建立索引。

上述的大体量bim模型数据处理及加载方法还可以应用在bim模型数据处理设备中,该设备包括包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于运行存储器所存储的计算机指令,实现上述的大体量bim模型数据的处理及加载方法,该处理器可以是中央处理单元,或者其他处理器,能够独立执行完成或者软硬件结合的形式执行完成前述的大体量bim模型数据处理及加载方法即可。

实施例2

本实施例的大体量bim模型数据处理及加载方法可以由以下步骤实现:

(1)将bim模型导入3dmax,导出bim模型中的单体模型的位置信息,导出格式为json文件;具体为:

(1.1)利用revit软件制作bim模型,

(1.2)用3dmax导入fbx工程文件;

(1.3)建立工具1:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮1(buttonbtnexportcoord″导出模型坐标″),在按钮1的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有的模型,遍历模型集合,获取到单个模型的名称(name)及位置信息(pos),选择保存路径写入到json文件中;

(1.4)利用工具1读取3dmax中的单体模型的位置信息,导出格式为json文件。

(2)将3dmax导入的场景模型用网格法分组,导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(2.1)建立工具2:工具2的创建过程同1.3中工具1的创建,

工具2实现为:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮2(buttonbtnexportcoord″导出模型坐标″),在按钮2的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口获取所有模型(geometryasarray),根据模型集合获取最小外接矩形最大最小坐标(根据单个模型的坐标位置pos计算得出),根据得出的最大最小坐标网格化该矩形,将模型按照网格进行分组(grouptmparr(tmparr为模型数组))。

(2.2)创建工具3:工具3的创建过程同1.3中工具1的创建,

在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮3(buttonbtnexportcoord″导出模型坐标″),在按钮3的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有组节点(forginhelperswhereisgroupheadgcollectg);

(2.3)利用工具2将3dmax导入的场景模型分组;

(2.4)利用工具3导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(3)导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模。

(3.1)建立工具4:创建按钮同1.3中工具1。

在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮4(buttonbtnexportcoord″导出模型坐标″),在按钮4的点击事件(onbtnexportcoordpresseddo)中使用max脚本接口geometryasarray获取所有组节点(与步骤(2.2)中工具3获取组节点方法一致),遍历所有组模型(fori=1togrpsdo),清空所有选择的模型然后选中该组模型(clearselection();selectmodel),根据选择的文件路径加组模型名称导出(exportfilegeopath#nopromptselectedonly:true)。

(3.2)利用工具4导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模。

(4)手动删除组模型中轮廓以外的其他细节模型;

(5)导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模;于精模相比简模只呈现轮廓线。

(6)使用模型图层制作工具对(2)的组模型的位置信息及包围盒半径、(3)分组后的组模型、(5)轻量化处理后的组模型添加组模型的显示范围和基点,将其与步骤(1)的单体模型的位置信息另存为三维平台可识别的模型图层文件(sml),建立索引;

(7)将步骤(6)的模型图层文件(shapefile)加载到skylineterraexlorer三维平台,shapefile文件中字段包含模型名称、模型路径、最大显示距离、最小显示距离等参数;配置建模的最大最小显示范围为200-20000m,精模显示范围为0-200m,读取模型图层文件,获取每个组模型在三维平台的位置信息及包围盒信息,再根据当前场景相机位置,判断组模型是否和相机视域范围相交,对相交的组模型根据相机到组模型中心点距离由近到远排序后添加到渲染队列,三维平台根据渲染队列顺序进行渲染,当相机离开该视域范围,视域范围内的模型将会停止渲染,完成大体量bim模型数据的快速处理及加载。

上述实施例中的bim创建可以用用其他的bim创建软件来实现,同理,skyiineterraexlorer三维平台也可以用其他的三维平台来替换,不仅限于上述的revit软件和skylineterraexlorer三维平台。


技术特征:

1.一种大体量bim模型数据的处理及加载方法,其特征在于,包括以下步骤:

(1)将bim模型导入3dmax,导出bim模型中的单体模型的位置信息,导出格式为json文件;

(2)将3dmax导入的场景模型用网格法分组,导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件;

(3)导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模;

(4)用3dmax自动减面功能对组模型进行轻量化处理,或手动删除组模型中轮廓以外的其他细节模型;

(5)导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模;

(6)使用模型图层制作工具对(2)的组模型的位置信息及包围盒半径、(3)分组后的组模型、(5)轻量化处理后的组模型添加组模型的显示范围和基点,将其与步骤(1)的单体模型的位置信息另存为三维平台可识别的模型图层文件,建立索引;

(7)将步骤(6)的模型图层文件加载到三维平台,读取模型图层文件,获取每个组模型在三维平台的位置信息及包围盒信息,根据当前场景相机位置,判断组模型是否和相机视域范围相交,对相交的组模型根据相机到组模型中心点距离由近到远排序后添加到渲染队列,三维平台根据渲染队列顺序进行渲染,当相机离开该视域范围,视域范围内的模型将会停止渲染,完成大体量bim模型数据的处理及加载。

2.根据权利要求1所述的大体量bim模型数据的处理及加载方法,其特征在于,所述步骤(6)的模型图层文件格式为wfs服务。

3.根据权利要求1所述的大体量bim模型数据的处理及加载方法,其特征在于,所述步骤(1)具体为:

(1.1)利用revit软件制作bim模型,导出工程为fbx;

(1.2)用3dmax导入fbx工程文件;

(1.3)建立工具1:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮1,在按钮1的点击事件中使用max脚本接口geometryasarray获取所有的模型,遍历模型集合,获取到单体模型的名称及位置信息,选择保存路径写入到json文件中;

(1.4)利用工具1读取3dmax中的单体模型的位置信息,导出格式为json文件。

4.根据权利要求1所述的大体量bim模型数据的处理及加载方法,其特征在于,所述步骤(2)具体为:

(2.1)建立工具2:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮2,在按钮2的点击事件中使用max脚本接口geometryasarray获取所有模型,根据模型集合获取最小外接矩形的最大最小坐标,根据得出的最大最小坐标网格化处理该矩形,将模型按照网格进行分组;

(2.2)建立工具3:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮3,在按钮3的点击事件中使用max脚本接口geometryasarray获取所有组节点;

(2.3)利用工具2将3dmax导入的场景模型分组;

(2.4)利用工具3导出分组后的组模型的位置信息及包围盒半径,导出格式为json文件。

5.根据权利要求1所述的大体量bim模型数据的处理及加载方法,其特征在于,所述步骤(3)具体为:

(3.1)建立工具4:在3dmax中使用maxscript菜单中的newscript功能创建新脚本,使用max脚本语言新建按钮4,在按钮4的点击事件中使用max脚本接口geometryasarray获取所有与步骤(2.2)一致的组节点,判断组节点集合不为空,弹出选择文件夹路径对话框,选择路径;遍历所有组模型,清空当前被选中的模型,选择当前遍历下的子模型,根据选择的文件夹路径加组模型名称导出该组模型;

(3.2)利用工具4导出步骤(2)分组后的组模型,导出的格式为osgb,标记为精模。

6.根据权利要求5所述的大体量bim模型数据的处理及加载方法,其特征在于,所述步骤(5)具体为:利用工具4导出步骤(4)处理后的组模型,导出的格式为osgb,标记为简模。

7.一种大体量bim模型数据的处理及加载设备,其特征在于,包括:

模型数据导入模块:用于将bim模型导入3dmax;

数据导出模块:用于在3dmax中导出bim模型中的单体模型的位置信息;

模型数据分组模块:用于将3dmax导入的场景模型用网格法分组;

模型数据导出模块:用于将分组后的模型按照组形式导出,形成精模;

模型数据轻量化模块:用于将分组后的模型,按照组形式轻量化处理,形成简模;

模型图层制作模块:用于对数据导出模块导出的组模型的位置信息及包围盒半径、模型数据导出模块导出的分组后的精模、模型数据轻量化模块轻量化处理后的简模分别添加组模型的显示范围和基点,与单体模型的位置信息共同另存为三维平台可识别的模型图层文件,并建立索引。

8.一种bim模型数据处理设备,其特征在于包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于运行存储器所存储的计算机指令,实现权利要求1~6任一项所述的大体量bim模型数据的处理及加载方法。

技术总结
本发明提出了大体量BIM模型数据处理及加载方法和设备,属于BIM数据处理技术领域,其包括模型数据导入模块;数据导出模块;模型数据分组模块;模型数据导出模块;模型数据轻量化模块;模型图层制作模块。本发明的BIM模型加载采用就近加载的原理,能快速显示距当前视角最近的场景模型,当模型数量达到某一上线的时候,能自动根据加载的情况进行卸载。

技术研发人员:麻卓;任健强;肖彦科;杨森;常鹏;李攀;马伟超
受保护的技术使用者:陕西心像信息科技有限公司
技术研发日:2020.01.13
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21318.html

最新回复(0)