首页> 中国专利> 一种三维大场景中BIM模型的可视化实现方法

一种三维大场景中BIM模型的可视化实现方法

摘要

本发明公开了一种三维大场景中BIM模型的可视化实现方法,涉及建筑信息模型可视化领域,包括如下步骤:首先,根据每个BIM模型包含的所有构件模型的范围大小,建立三维空间划分格网;然后,对每个格网块中的构件模型进行组织,组合生成单个格网块的精细模型;利用得到的精细模型,根据纹理使用情况,重组生成形状和外观一致的简化模型;最后,根据选择的显示模式以及索引号,在三维大场景中对BIM模型进行加载展示精细模型或简化模型。本发明在保障BIM模型应用的基础上,利用空间格网思想,对每个BIM模型的所有构件按三维空间格网进行划分,合并格网内的构件,减少索引的模型数量,提高BIM模型加载效率。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-05

    授权

    授权

  • 2017-05-24

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20161219

    实质审查的生效

  • 2017-04-26

    公开

    公开

说明书

技术领域

本发明涉及建筑信息模型可视化领域,特别是涉及一种三维大场景中BIM模型的可视化实现方法。

背景技术

对于一个BIM模型(Building Information Modeling,建筑信息模型),例如一栋建筑BIM来说,包括了大量的构件模型。构件模型包含了组成建筑物的所有实体,包括土建类的窗、结构柱、楼板、楼梯、门等设施,以及机电类的各类排水、供水、供电、消防管道及设施等等。通常一栋建筑BIM的构件模型数量可能与整个城区的建筑物数量相当,通常能达到几十万、几百万乃至千万个。

在一个城市级的三维虚拟场景中同时展示多个BIM模型时,若将每个BIM构件为一个索引最小单元,会产生由于构件模型数据量海量导致的空间索引效率低的问题,从而导致加载卡顿、运行效率低、浏览体验差的问题。与此同时,在开展BIM相关应用时,又需要对每个建筑构件进行查询、设置选中状态、分析与管理等,因此建筑构件需要是单独的个体。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种三维大场景中BIM模型的可视化实现方法,旨在解决现有技术三维构建模型索引效率低,加载易卡顿,运行效率低、浏览体验差的问题。

为实现上述目的,本发明提供了一种三维大场景中BIM模型的可视化实现方法,包括如下步骤:

S1、根据每个BIM模型包含的所有构件模型的范围大小,建立三维空间划分格网,并确定每个所述构件模型所在的格网块的索引号;

S2、对每个格网块中的所有构件模型进行组织,组合生成单个所述格网块的精细模型;

S3、利用得到的所述精细模型,根据纹理使用情况,重组生成形状和外观一致的简化模型;

S4、根据选择的显示模式以及所述索引号,在三维大场景中对BIM模型进行加载展示精细模型或简化模型。

建筑构件包含了众多建筑零件,通常一栋建筑BIM的构件模型数量可能与整个城区的建筑物数量相当,通常能达到几十万、几百万乃至千万个。在本发明的技术方案中,从模型优化和组织的角度,提出了一种三维大场景中BIM模型的可视化实现方法,利用该方法,可以在保障BIM模型应用的基础上,提高三维BIM模型的加载和展示效率,实现模型数据索引量少,索引效率高,运行加载不卡顿、浏览体验好的效果。利用空间格网思想,对每个BIM模型的所有构件按三维空间格网进行划分,合并格网内的构件,减少空间索引的模型数量,提高BIM模型加载效率;同时利用格网内部模型组织方式,又能支撑每个构件的查询、设置选中状态、变色、挂接属性等分析应用,最后,进一步生成外观一致,模型结构简单的BIM简化模型,从而实现城市级的三维大场景中的多个BIM模型同时加载展示、以及开展BIM相关应用。

同时,在该技术方案中,生成精细模型和简化模型两种模型,BIM精细模型和简化模型都是格网块模型,模型个数与格网划分个数相关,空间索引速度快,加载和展示效率高于未进行格网块合并前的模型;同时,由于简化模型结构更简单,包含节点更少,因此简化模型的加载绘制效率高于精细模型。在该技术方案中,通过实际需要确定加载精细模型或者简化模型,提高系统加载速度。此外,由于纹理总数量有限,可以很简便将精细模型转化为简化模型,执行效率快。

进一步而言,所述步骤S1包括:

S11、设定坐标原点、X、Y、Z轴方向,确定各轴的格网尺寸,建立三维空间划分格网;所述格网尺寸包括x,y,z三个方向,分别为gridSizeX、gridSizeY、gridSizeZ;

S12、求解每个所述构件模型的中心点mCenter(mCX,mCY,mCZ),所述中心点mCenter满足:其中,xi,yi,zi为所述构件模型包含的顶点的x,y,z分量,n为所述构件模型的顶点数,n>0;

S13、求解每个所述构件模型的索引号mIdx(xIndex,yIndex,zIndex),所述索引号mIdx满足:(xIndex,yIndex,zIndex)=([x/gridSizeX],[y/gridSizeY],[z/gridSizeZ]);其中,“[x]”表示取整;

S14、为每个所述构件模型的名称增加格网前缀,存储该模型的格网信息;每个格网的最终名称BlockID满足:BlockID=xIndex_yIndex_zIndex@_ID,其中ID为原始的构件三维模型的ID字符串。

在该技术方案中,通过设定格网尺寸对三维空间划分格网,提高索引速度。通过在构建模型的名称增加格网前缀,便于构件模型的索引,提高索引速度。

进一步而言,所述步骤S1还包括:将所述BIM模型所包含的所有所述构件模型按类别分类,所述类别包括楼层或构件类型;并对每一个所述类别分别进行格网划分。

在该技术方案中,对所有构件模型按类别分类,便于后期管理以及索引。

在一具体实施例中,所述步骤S2包括:

S21、设定所述精细模型的组织形式,所述组织形式自上而下,依次包括根节点、块空间变化节点和叶节点;所述根节点为所述BIM模型的根节点;所述块空间变换节点,为每个所述格网块的组节点,用于存储格网块的空间变换矩阵M0;所述叶空间变换节点,用于存储每个所述构件模型的空间变换矩阵M1;所述叶节点,用于存储每个所述构件模型渲染状态、显隐状态、颜色、顶点、法线、纹理坐标、或使用纹理的信息。

S22、利用格网块中心点Center(centerX,centerY,centerZ),得到格网中心矩阵M0;

所述中心点Center(centerX,centerY,centerZ)计算公式如下:

所述

S23、对叶节点的顶点坐标进行修正,将叶节点的中心修正到(0,0,0)位置,并将偏移量和M0的差值记录在调整矩阵M1,所述叶节点中心即为所述构件模型的中心点mCenter(mCX,mCY,mCZ);

所述

S24、遍历每个所述网格的每个所述构件模型,得到所有格网块的所述精细模型。

在该技术方案中,设定根节点、块空间变化节点和叶节点,便于精细模型在分析模式下的修改,包括移动、旋转、渲染、设置纹理、颜色等修改。在该技术方案中,设置调整矩阵M1的目的是当对构件模型进行空间变换时,直接修改调整矩阵M1或格网中心矩阵M0即可;同时通过修正,可避免在场景加载过程中,模型顶点为大数带来的面筛选或裁减的不准确,引发的闪烁、精度丢失等问题。

进一步而言,所述步骤S3包括:

S31、遍历每个所述格网块中的所述精细模型,并获取所述精细模型的纹理,将所述精细模型的绘制单元转换成三角形绘制方式;

S32、遍历所述格网块中的所有叶节点,按照每个所述叶节点的绘制单元,根据其使用的纹理进行归类,得到绘制单元个数与纹理数量一致的简化模型。

S33、处理每个所述格网块,输出每个所述格网块的简化模型,与所述精细模型一起,组成两级LOD模型。

在该技术方案中,格网块简化模型是在格网块精细模型生成的基础上,将格网块内的叶节点,按照叶节点中几何绘制单元所使用的纹理,对绘制单元进行合并,合并后格网块精细模型被重新组织,原来的叶节点被重组,简化了模型的组织复杂度,减少了绘制单元。重组后,并不修改任意几何形状和纹理使用信息,因此,保持了BIM模型的外观。

进一步而言,所述步骤S4包括:

S41、采用用户选择的显示模式;若所述显示模式为加载展示模式,则执行步骤S42;若所述显示模式为分析模式,则执行步骤S43;

S42、加载引擎根据三维大场景的显示区域,获得所述显示区域的所有所述BIM模型的所述索引号,并提取相应的简化模型并进行显示;

S43、加载引擎启动LOD切换,将视点内的所述BIM模型切换成所述精细模型,并根据坐标检索到视点内的构件模型所在的格网块,遍历视点内的所述格网块节点,获取到对应的构件模型的叶节点,得到所述叶节点的ID;通过修改所述叶节点的渲染状态,实现所述构件模型的选中状态,变色、透明、显隐操作;通过修改调整矩阵M1,实现构件的移动,旋转操作。

由于BIM精细模型和简化模型都是格网块模型,模型个数与格网划分个数相关,空间索引速度快,加载和展示效率高于未进行格网块合并前的模型,又由于简化模型结构更简单,包含节点更少,因此简化模型的加载绘制效率高于精细模型。在该技术方案中,根据实际需求,选择精细模型或者简化模型进行显示,提高加载运行速度和展示效率。

本发明的有益效果是:本发明是从模型优化和组织的角度,提出了一种三维大场景中BIM模型的可视化实现方法,利用该方法,可以在保障BIM模型应用的基础上,提高三维BIM模型的加载和展示效率。利用空间格网思想,对每个BIM模型的所有构件按三维空间格网进行划分,“合并”格网内的构件,减少空间索引的模型数量,提高BIM模型加载效率;同时利用格网内部模型组织方式,又能支撑每个构件的查询、设置选中状态、变色、挂接属性等分析应用,最后,进一步生成外观一致,模型结构简单的BIM简化模型,从而实现城市级的三维大场景中的多个BIM模型同时加载展示、以及开展BIM相关应用。

附图说明

图1是本发明一具体实施方式的流程示意图;

图2是本发明一具体实施方式的精细模型的组织形式;

图3是本发明一具体实施方式的简化模型的组织形式。

具体实施方式

下面结合附图和实施例对本发明作进一步说明:

如图1所示,本发明第一实施例中,提供了一种三维大场景中BIM模型的可视化实现方法,包括如下步骤:

S1、根据每个BIM模型包含的所有构件模型的范围大小,建立三维空间划分格网,并确定每个所述构件模型所在的格网块的索引号;

S2、对每个格网块中的所有构件模型进行组织,组合生成单个所述格网块的精细模型;

S3、利用得到的所述精细模型,根据纹理使用情况,重组生成形状和外观一致的简化模型;

S4、根据选择的显示模式以及所述索引号,在三维大场景中对BIM模型进行加载展示精细模型或简化模型。

值得一提的是,对于一个BIM模型,例如一栋建筑BIM来说,包括了大量的构件模型。构件指的是用来组成建筑物的所有实体,包括土建类的窗、结构柱、楼板、楼梯、门等设施,以及机电类的各类排水、供水、供电、消防管道及设施等等,构件三维模型为利用三维建模手段,得到的构件三维模型。由于构件模型数量多,我们难以对其进行一一检索,而本实施例采用先将三维模型格网划分,获得索引号,然后再对需要显示的构件进行索引显示,有效提高了BIM模型加载的加载速度。

在本实施例中,所述步骤S1包括:

S11、设定坐标原点、X、Y、Z轴方向,确定各轴的格网尺寸,建立三维空间划分格网;所述格网尺寸包括x,y,z三个方向,分别为gridSizeX、gridSizeY、gridSizeZ;

S12、求解每个所述构件模型的中心点mCenter(mCX,mCY,mCZ),所述中心点mCenter满足:其中,xi,yi,zi为所述构件模型包含的顶点的x,y,z分量,n为所述构件模型的顶点数,n>0;

S13、求解每个所述构件模型的索引号mIdx(xIndex,yIndex,zIndex),所述索引号mIdx满足:(xIndex,yIndex,zIndex)=([x/gridSizeX],[y/gridSizeY],[z/gridSizeZ]);其中,“[x]”表示取整。

S14、为每个所述构件模型的名称增加格网前缀,存储该模型的格网信息;每个格网的最终名称BlockID满足:BlockID=xIndex_yIndex_zIndex@_ID,其中ID为原始的构件三维模型的ID字符串。

值得一提的是,由于构件模型数量众多,有必要对其按分类进行划分。类别可按楼层或构件类型进行分类,也可以不进行分类,分类的目的便于后期管理。

优选地,在本实施例中,所述步骤S1还包括:将所述BIM模型所包含的所有所述构件模型按类别分类,所述类别包括楼层或构件类型;并对每一个所述类别分别进行格网划分。

在本实施例的步骤2中,是通过对每个格网块内的模型进行组织,生成该格网块模型。所生成的格网块模型具有“整体”和“部分”特征,“整体”特征指的是,在模型加载或渲染时,将一个格网块作为单个模型,与三维场景中的其他普通三维建筑模型(只有表皮)作同类模型处理,作为空间索引树中的叶节点,从而迅速降低三维场景中的模型个数,提高空间索引速度。“部分”特征指的是,通过格网块内部组织方式,在进行BIM模型应用时,先访问到每个格网块,然后深入到格网块内部,进行单个构件的查询与操作。

在本实施例中,所述步骤S2包括:

S21、设定所述精细模型的组织形式,如图2所示,所述组织形式自上而下,依次包括根节点、块空间变化节点和叶节点;所述根节点为所述BIM模型(如一栋建筑物)的根节点;所述块空间变换节点,为每个所述格网块的组节点,用于存储格网块的空间变换矩阵M0;所述叶空间变换节点,用于存储每个所述构件模型的空间变换矩阵M1;所述叶节点,用于存储每个所述构件模型渲染状态、显隐状态、颜色、顶点、法线、纹理坐标、或使用纹理的信息。

S22、利用格网块中心点Center(centerX,centerY,centerZ),得到格网中心矩阵M0;

所述中心点Center(centerX,centerY,centerZ)坐标的计算公式如下:

所述

S23、对叶节点的顶点坐标进行修正,将叶节点的中心修正到(0,0,0)位置,并将偏移量和M0的差值记录在调整矩阵M1,所述叶节点中心即为所述构件模型的中心点mCenter(mCX,mCY,mCZ);

所述

值得一提的是,叶节点中心修正的目的是当对构件模型进行空间变换时,直接修改调整矩阵M1或格网中心矩阵M0即可;同时通过修正,可避免在场景加载过程中,模型顶点为大数带来的面筛选或裁减的不准确,引发的闪烁、精度丢失等问题。

S24、遍历每个所述网格的每个所述构件模型,得到所有格网块的所述精细模型。值得一提的是,该精细模型可以保存成一个文件,直接自身或者其它系统调用,提高精细模型的使用效率。

值得一提的是,在BIM模型中,几何绘制单元是三维渲染器绘制模型的最小单元,包括点,线段,三角形,四边形,多变形等模型绘制形式。一个绘制单元使用同样的纹理。

在本实施例中,格网块简化模型是在格网块精细模型生成的基础上,将格网块内的叶节点,按照叶节点中几何绘制单元所使用的纹理,对绘制单元进行合并,合并后格网块精细模型被重新组织,原来的叶节点被重组,如图3所示。根据统计,由于整个BIM所使用的纹理数据仅有几十种,一个格网块仅包含几种纹理,因此这种组合方式,简化了模型的组织复杂度,减少了绘制单元。重组后,并不修改任意几何形状和纹理使用信息,因此,保持了BIM模型的外观。

在本实施例中,所述步骤S3包括:

S31、遍历每个所述格网块中的所述精细模型,并获取所述精细模型的纹理,将所述精细模型的绘制单元转换成三角形绘制方式;值得一提的是,转换为三角形绘制方式,可以有效提高模型兼容性,并且简化模型,提高程序加载速度。

S32、遍历所述格网块中的所有叶节点,按照每个所述叶节点的绘制单元,根据其使用的纹理进行归类,得到绘制单元个数与纹理数量一致的简化模型。

S33、处理每个所述格网块,输出每个所述格网块的简化模型,与所述精细模型一起,组成两级LOD模型。

采用两级LOED模型策略,可以根据实际需求,显示简化模型或者精细模型,提高加载速度。

值得一提的是,由于BIM精细模型和简化模型都是格网块模型,模型个数与格网划分个数相关,空间索引速度快,加载和展示效率高于格网未进行分块合并前的模型,又由于简化模型结构更简单,包含节点更少,因此加载绘制效率高于精细模型。对于BIM模型的加载展示及管理划分成两种模式,一是加载展示模式,另一种是分析模式。加载展示模型用于模型的浏览,使用简化模型进行;分析模式用于模型的查询、分析、运用管理,使用精细模型。

在本实施例中,所述步骤S4包括:

S41、采用用户选择的显示模式;若所述显示模式为加载展示模式,则执行步骤S42;若所述显示模式为分析模式,则执行步骤S43;

S42、加载引擎根据三维大场景的显示区域,获得所述显示区域的所有所述BIM模型的所述索引号,并提取相应的简化模型并进行显示;值得一提的是,在加载展示模式下,加载引擎将模型与其他普通三维模型(如建筑表面三维模型,仅含表皮)同样处理,仅加载简化模型,简化模型的外观与精细模型外观完全一致,因此满足BIM模型浏览的需求。

S43、加载引擎启动LOD切换,将视点内的所述BIM模型切换成所述精细模型,并根据坐标检索到视点内的构件模型所在的格网块,遍历视点内的所述格网块节点,获取到对应的构件模型的叶节点,得到所述叶节点的ID;通过修改所述叶节点的渲染状态,实现所述构件模型的选中状态,变色、透明、显隐操作;通过修改调整矩阵M1,实现构件的移动,旋转操作。

通过以上方式,实现了在三维大场景中BIM模型的加载展示、以及分析应用。

综上,本发明是从模型优化和组织的角度,提出了一种三维大场景中BIM模型的可视化实现方法,利用该方法,可以在保障BIM模型应用的基础上,提高三维BIM模型的加载和展示效率。利用空间格网思想,对每个BIM模型的所有构件按三维空间格网进行划分,“合并”格网内的构件,减少空间索引的模型数量,提高BIM模型加载效率;同时利用格网内部模型组织方式,又能支撑每个构件的查询、设置选中状态、变色、挂接属性等分析应用,最后,进一步生成外观一致,模型结构简单的BIM简化模型,从而实现城市级的三维大场景中的多个BIM模型同时加载展示、以及开展BIM相关应用。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号