本发明涉及一种bim模型轻量化方法,该技术方法适用于建筑、水电、水利、矿山、交通等行业的bim模型应用领域。
背景技术:
1、bim(建筑信息模型)技术在建筑、工程和施工(aec)行业中起着至关重要的作用,它通过创建和使用数字信息模型来支持建筑物、基础设施和城市的设计、建造和运营。然而,bim模型通常包含大量的几何和非几何数据,这导致模型文件体积庞大,给数据的存储、传输和处理带来了挑战。尤其是在需要在不同平台间进行数据交换、在网络环境下进行实时协作,或是在资源受限的终端设备上进行模型浏览和操作时,这些问题变得更加突出。
2、bim模型轻量化主要是为了解决bim模型在存储、传输和渲染过程中遇到的挑战。bim(building information modeling,建筑信息模型)作为一种集成工程项目全生命周期信息的三维模型,其精细度的提升往往伴随着数据量的大幅增加。这导致了模型在处理和使用时面临诸多问题,如加载速度慢、渲染效率低、占用大量系统资源等,这些问题限制了bim技术在实际应用中的效能。
3、为了克服这些挑战,bim模型轻量化技术应运而生。轻量化技术旨在减少模型的存储空间需求,优化数据的传输效率,并提升模型在终端设备上的渲染和显示性能。这包括对模型数据进行高效的压缩、采用流式传输技术、以及开发适应不同显示需求的渲染策略。通过这些技术,可以在保持模型精度和完整性的同时,实现模型的快速加载和流畅交互,极大地扩展了bim技术的应用范围和灵活性。
4、此外,随着bim技术在工程项目管理中的深入应用,更复杂的应用场景、更庞大的bim模型数据以及更多的业务场景交互操作对于能够支持大体量模型轻量化处理的技术需求不断增长。这不仅涉及到模型的存储和传输,还包括模型的渲染、显示优化以及用户交互等多个方面。如何在支持大体量模型处理效率的同时,保持模型精度和完整性,是当前bim模型轻量化技术的研究方向,也对于推动建筑行业信息化、数字化转型具有重要意义。
技术实现思路
1、为了克服上述现有技术的不足,使bim模型轻量化技术在支持大体量模型处理效率的同时,保持模型精度和完整性,本发明提供了一种bim模型轻量化方法。本发明采用以下技术方案。
2、一种bim模型轻量化方法,包括以下步骤:
3、步骤s1,几何提取与变换:通过指定的bim模型转换插件,将待轻量化的bim模型转换为osgb数据格式,提取整个模型元素的几何信息和属性信息,并对提取的几何信息进行坐标系转换;
4、步骤s2,顶点重映射:将bim模型中的几何信息从仅采用顶点表示的方式转换为采用顶点+索引的形式,具体方法为创建索引数组、初始化有效索引变量值、构建哈希表以及迭代处理重复顶点;
5、步骤s3,空间划分:按照空间八叉树算法将模型范围内的元素进行空间划分,得到空间分层信息,具体为创建模型范围内根节点立方体、构建根节点立方体编号和索引、划分更深层次的空间立方体、根据每个立方体中几何节点阈值递归处理每一个空间立方体、得到按照空间八叉树算法构建的空间分层信息。
6、步骤s4,几何简化:从构建的空间八叉树最小单元开始,逐层采用二次误差度量算法(qem)缩减模型几何元素的顶点数量;
7、步骤s5,瓦片化输出:按照空间分层信息遍历模型元素,输出3d tiles数据格式的轻量化文件。
8、进一步地,步骤s1中,待轻量化的bim模型转包括dgn、rvt、ifc、stp、fbx格式的三维模型数据,所述提取整个模型元素的几何信息和属性信息,包括顶点、索引、法向、颜色、uv坐标以及材质信息。
9、进一步地,步骤s1中,提取模型元素的几何信息和属性信息的方法包括以下步骤:
10、步骤s101,初始化矩阵栈:在处理模型元素之前,初始化一个空的矩阵栈,并将单位矩阵(identity matrix)压入栈中,以便在后续的几何变换中使用;
11、步骤s102,递归处理节点:对模型的每个节点进行递归处理,包括组节点(groupnode)、几何节点(geode node)以及变换矩阵节点(matrixtransform node),对于每个组节点,首先处理其子节点,再将当前变换矩阵与子节点变换矩阵相乘,并将结果压入矩阵栈;
12、步骤s103,对几何节点矩阵变换:对每个几何节点提取其几何信息,包括顶点和法向量,并应用当前矩阵栈中的矩阵对这些几何信息进行变换;
13、步骤s104,坐标系转换:将变换后的几何信息中的每一个顶点从原始坐标系转换为wgs84坐标系。坐标系转换的方法使用开源的地理空间坐标转换库proj.4,它提供了丰富的地图投影转换功能,被广泛应用于gis(地理信息系统)领域。
14、进一步地,步骤s2包括以下步骤:
15、步骤s201,创建索引数组:如果模型没有索引则建立一个空的索引数组(orgindex),数组大小为模型的顶点数量,赋初始值为0,1,2,3,4...,直到模型顶点数量减一;
16、步骤s202,初始化有效索引变量值:建立一个目标索引数组(dstindex),其长度等于模型元素的顶点索引数量,数组中每一个元素的初始值赋为-1,同时创建下一个有效索引值nextindex,并将其初始值设为0,表示下一个有效索引值;
17、步骤s203,构建哈希表:建立一个哈希数组,数组大小大于或等于模型顶点数组的数量,数组内所有元素初始值赋为-1,同时,定义一个循环使用的变量i,从0开始循环遍历至原模型顶点索引的最大值,每次循环中,取当前索引值index=orgindex[i],以及当前顶点值vertex=verties[index];
18、步骤s204,迭代处理重复顶点:对当前顶点值取一个哈希数,并在哈希数组中查找该哈希对应的项entry,如果entry值为-1,则表示新的索引,将该entry的值赋为index,目标索引设置为index,同时nextindex加1;如果entry值不为-1,则表示已有相同的索引,目标索引设置为entry值;然后,将目标索引数组大小设置为nextindex,重复步骤s203,直到遍历完所有顶点;该过程即实现通过计算顶点hash值的方法来判断顶点值是否相等,对于hash值相同的顶点索引进行合并,达到充分减少了模型的索引数量的目的;
19、步骤s205,更新目标索引数组:将目标索引赋值给模型的所有顶点。
20、进一步地,步骤s3包括以下步骤:
21、步骤s301,创建根节点立方体:根据整个模型的包围盒,选择长、宽、高三个值中最大值,构建一个包含所有模型元素的立方体,作为第0层(即顶层)根节点,编号为0,并初始化其索引;
22、步骤s302,划分更深层次的空间立方体:对第0层立方体根据空间八叉树算法进行八等分操作,得到8个小立方体,并分别编号为0,1,2,3,4,5,6,7,表示第1层的8个小立方体;
23、步骤s303,递归处理每个空间立方体:遍历每一个geode的包围盒的中心点,判断其落在哪个小立方体内,据每个立方体中geode数量的阈值,继续根据空间八叉树算法递归处理更深层次的空间划分,直至达到预定的层数n或满足每个立方体中的geode数量阈值;
24、步骤s304,得到空间分层信息:记录每一层每个几何节点(geode)所属于的小立方体的编号和索引信息,最终构建出按照空间八叉树算法的空间分层信息。
25、进一步地,步骤s4包括以下步骤:
26、步骤s401,计算每个顶点的q矩阵:对模型中每个顶点计算其q矩阵,即该顶点v相邻的所有三角面的kp之和;
27、步骤s402,预处理所有的合法点对:预处理出所有的合法点对,即可以进行收缩操作且不会引起几何拓扑结构错误的顶点对,求得收缩后的点坐标与对应的误差度量,放入一个优先队列(堆)中;
28、步骤s403,选择点对进行收缩操作:从构建的空间八叉树最小单元开始,逐层迭代,对于每次迭代,选择堆顶的点对(v1,v2)进行弹栈,网格上进行收缩操作;
29、步骤s404,更新优先队列中的点对:更新堆中所有涉及v1,v2的点对,具体步骤为:计算更新后的顶点的q矩阵为q1+q2,将所有(v1,u),(v2,u)点对修改为并更新其误差代价和最优点。
30、进一步地,步骤s5包括以下步骤:
31、步骤s501,分析模型数据:对模型数据进行分析,获取每个小立方体中的geode数量及其属性信息;
32、步骤s502,数据合并:按照特定合并规则合并经过步骤s1至s4处理的顶点及索引数据,并根据合并后的顶点数生成批次号;
33、步骤s503,创建输出文件:创建b3dm文件和包含模型的元数据和几何数据描述的描述性json文件,然后,对几何数据和纹理图片进行压缩,减小文件大小;
34、步骤s505,创建tileset.json文件:根据3d tiles规范创建表示根节点层所在位置及包围盒的tileset.json文件。
35、本发明的有益效果是:本发明通过以上步骤形成的完整bim模型轻量化流程,在提高模型处理效率、优化数据存储和传输、保持模型精度和完整性等方面具有明显优势,能够满足现代建筑信息模型技术对于高效率和高性能的需求。
1.一种bim模型轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s1中,待轻量化的bim模型转包括dgn、rvt、ifc、stp、fbx格式的三维模型数据,所述提取整个模型元素的几何信息和属性信息,包括顶点、索引、法向、颜色、uv坐标以及材质信息。
3.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s1中,提取模型元素的几何信息和属性信息的方法包括以下步骤:
4.根据权利要求3所述的所述步骤s1所述的bim模型轻量化方法,其特征在于,步骤s102中:
5.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s2包括以下步骤:
6.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s3包括以下步骤:
7.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s4包括以下步骤:
8.根据权利要求1所述的一种bim模型轻量化方法,其特征在于,步骤s5包括以下步骤: