一种城市级BIM模型加载方法与流程
未命名
10-21
阅读:96
评论:0
一种城市级bim模型加载方法
技术领域
1.本发明涉及数据加载技术领域,特别涉及一种城市级bim模型加载方法。
背景技术:
2.对于以往的大规模场景数据,以场景或者项目来划分的方式组织,往往会面临着传输量大,用户等待时间长,模型渲染帧数低等问题。
3.因此,有必要提供一种城市级bim模型加载方法,对各项目进行划分,实现分批次逐渐传输加载,从而减少场景载入时间。
技术实现要素:
4.本发明的目的在于提供一种城市级bim模型加载方法,对各项目进行划分,实现分批次逐渐传输加载,从而减少场景载入时间。
5.为了解决现有技术中存在的问题,本发明提供了一种城市级bim模型加载方法,包括以下步骤:
6.将平面空间按照四叉树的方式划分,得到多层级的四叉树;
7.将三维空间按照八叉树的方式划分,得到多层级的八叉树;
8.将各项目按照场景归类;
9.各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,根据已有设计将各场景内的各项目分布于所属八叉树的不同位置;
10.各项目具备各自bim模型,将bim模型及其内部的模块插入到对应层级的八叉树;
11.按照层级对四叉树和八叉树进行分割,并对各层级的四叉树分别设置视角权限,对各层级的八叉树分别设置参数权限;
12.根据用户需求获取视角权限和八叉树请求参数,并根据视角权限和八叉树请求参数呈现bim模型示意图。
13.可选的,在所述城市级bim模型加载方法中,得到多层级的四叉树,方式如下:
14.将平面空间按照四叉树的方式划分,得到第一层四叉树,并根据实际需求在第一层四叉树各节点所覆盖范围内继续按照四叉树的方式递归划分,依次得到第二层四叉树、第三层四叉树、
…
、第n层四叉树,n为四叉树总层数。
15.可选的,在所述城市级bim模型加载方法中,得到多层级的八叉树,方式如下:
16.将三维空间按照八叉树的方式划分,得到第一层八叉树,并根据实际需求在第一层八叉树各节点所覆盖范围内继续按照八叉树的方式递归划分,依次得到第二层八叉树、第三层八叉树、
…
、第m层八叉树,m为八叉树总层数。
17.可选的,在所述城市级bim模型加载方法中,各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,方式如下:
18.根据各场景所占平面大小匹配对应层级的四叉树;
19.根据各场景所占空间大小匹配对应层级的八叉树;
20.各bim模型及其内部的模块根据所占空间大小匹配对应层级的八叉树,并将bim模型及其内部的模块插入到对应层级的八叉树。
21.可选的,在所述城市级bim模型加载方法中,
22.第一层四叉树根据方向划分;
23.第二层四叉树根据城市的行政区划分;
24.第三层四叉树根据街道划分。
25.可选的,在所述城市级bim模型加载方法中,用户根据需求在终端选择视角权限和八叉树请求参数。
26.可选的,在所述城市级bim模型加载方法中,
27.若当前视角权限加载到第一层四叉树,且第一层四叉树中视角权限为bim模型概况,则展示当前视野范围内第一层四叉树内所有项目的bim模型概况;
28.若移动视角,使当前视角权限加载到第四层四叉树,且第四层四叉树中视角权限为平面细节,则展示当前视野范围内bim模型的平面细节。
29.可选的,在所述城市级bim模型加载方法中,
30.若八叉树请求参数为p,则加载p个层级的八叉树进行展示,p为自然数。
31.可选的,在所述城市级bim模型加载方法中,若加载的p个层级的八叉树不满足需求,则八叉树请求参数改为p+q,则继续加载q个层级的八叉树进行展示,q为自然数,直至满足用户需求。
32.在本发明所提供的城市级bim模型加载方法中,通过借助四叉树和八叉树特性完成了多个bim模型的融合。并且,本发明采用按需加载的方式,会随着视角的变化而分批次的请求场景的数据集,每个批次请求的数据集体量小,因而可以很快的显示场景中的bim模型,减少了等待时间,提高了用户体验。
附图说明
33.图1为本发明实施例提供的模型位置展示的示意图;
34.图2为本发明实施例提供的四叉树形成的示意图;
35.图3为本发明实施例提供的八叉树分割的示意图;
36.图4为本发明实施例提供的项目加载示意图;
37.图5为本发明实施例提供的视角变化时项目加载示意图;
38.图6为本发明实施例提供的各场景模型数据组织实现示意图;
39.图7为本发明实施例提供的第一层八叉树示意图;
40.图8为本发明实施例提供的第二层八叉树示意图;
41.图9为本发明实施例提供的第p层八叉树示意图。
具体实施方式
42.下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
43.在下文中,如果本文所述的方法包括一系列步骤,本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
44.对于以往的大规模场景数据,以场景或者项目来划分的方式组织,往往会面临着传输量大,用户等待时间长,模型渲染帧数低等问题。
45.为了解决现有技术中存在的问题,本发明提供了一种城市级bim模型加载方法,包括以下步骤:
46.将平面空间按照四叉树的方式划分,得到多层级的四叉树;
47.将三维空间按照八叉树的方式划分,得到多层级的八叉树;
48.将各项目按照场景归类;
49.各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,根据已有设计将各场景内的各项目分布于所属八叉树的不同位置;
50.各项目具备各自bim模型,将bim模型及其内部的模块插入到对应层级的八叉树;
51.按照层级对四叉树和八叉树进行分割,并对各层级的四叉树分别设置视角权限,对各层级的八叉树分别设置参数权限;
52.根据用户需求获取视角权限和八叉树请求参数,并根据视角权限和八叉树请求参数呈现bim模型示意图。
53.cim是智慧城市建设的数字化模型,需要大量的bim模型作为支撑,不同场景的bim模型融入到同一cim引擎中,规划和组织这些bim数据成为了重要一环,本发明借助四叉树和八叉树特性完成了多个bim模型的融合。并且,本发明采用按需加载的方式,会随着视角的变化而分批次的请求场景的数据集,每个批次请求的数据集体量小,因而可以很快的显示场景中的bim模型,减少了等待时间,提高了用户体验。
54.进一步的,如图1和2所示,得到多层级的四叉树,方式如下:
55.将平面空间按照四叉树的方式划分,得到第一层四叉树,并根据实际需求在第一层四叉树各节点所覆盖范围内继续按照四叉树的方式递归划分,依次得到第二层四叉树、第三层四叉树、
…
、第n层四叉树,n为四叉树总层数。
56.在一个实施例中,如图6所示,首先把整个地球划分为两个网格,作为第0层级;然后再对两个初始网格,通过四叉树的方式递归划分,每次划分对应到不同的层级。每个网格都有行列号和层级数据,并且每个网格都关联一个矩形对象,有east、west、south、north四个方向的经纬度数据,代表该网格的边界。
57.进一步的,需要融合城市级多场景bim模型数据时,首先提供每个场景的经纬度数据和场景模型包围盒的数据,通过和上面已经划分好的网格进行匹配,匹配成功,某个场景即可定位在其中一个网格中。以此类推,每个场景都落在一个固定层级的网格中。通过上面的数据组织,城市级的多个场景便融合在同一个城市的超大场景中。
58.在一个实施例中,也可以是:第一层四叉树根据方向划分;第二层四叉树根据城市的行政区划分;第三层四叉树根据街道划分。
59.本发明通过在服务器端,根据项目在地球上的地理位置(项目经纬度),以及项目空间包围盒的大小,使用四叉树结构来记录项目的平面分布信息。用户端在展示时,根据需
求可以快速查找需要加载的项目。如图2所示,当用户处于地球北半球时,只需要加载北半球的项目a、b,南半球的项目c则不需要加载,从而避免了不必要的项目请求,提升了加载效率。
60.并且,由于使用四叉树来管理项目的平面分布信息,对地理位置接近的项目使用同一个场景归类,减少了场景的个数,有效减少了加载各场景时的数据量。如下图1所示,项目a、b分布在同一个四叉树网格中,地理位置接近,因而对这两个项目进行场景归类,使用同一个场景表示。项目a、b使用场景1来组织其中的bim模型,项目c则单独使用场景2来组织其中的bim模型。
61.本发明采用四叉树作为平面索引的实现方法,把不同场景在平面分布上进行分层级定位,有利于前端引擎在展示bim模型的数据时可通过层级决定是否加载某模型,剔除不必要的场景加载,提高加载效率。
62.各场景已经根据平面分布信息定位并划分到不同的网格中,但往往单个场景的bim模型数据量也是可观的,解决如何组织单个场景的bim模型数据是非常必要的,本发明采用八叉树的空间划分特性对单场景的bim模型进行组织划分,并分层级动态请求bim模型数据。进一步的,划分多层级的八叉树的方式如下:将三维空间按照八叉树的方式划分,得到第一层八叉树,并根据实际需求在第一层八叉树各节点所覆盖范围内继续按照八叉树的方式递归划分,依次得到第二层八叉树、第三层八叉树、
…
、第m层八叉树,m为八叉树总层数。
63.具体的,各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,根据已有设计将各场景内的各项目分布于所属八叉树的不同位置,进一步的,匹配方式如下:根据各场景所占平面大小匹配对应层级的四叉树;根据各场景所占空间大小匹配对应层级的八叉树;各bim模型及其内部的模块根据所占空间大小匹配对应层级的八叉树,并将bim模型及其内部的模块插入到对应层级的八叉树。
64.进一步的,继续参考图6,单个场景的bim模型数据量往往也是比较大的,如果对整个场景请求数据,会造成数据请求的拥堵情况。本发明借助八叉树的特性,把某个场景的模型模块进行切分。首先把八叉树的中心点设置在场景的原点,场景中的每个模型模块通过自身的包围盒和中心点分别与八叉树的节点进行匹配,匹配成功,即该模型的模块被包含在该节点中;如果不匹配会继续找到节点的子节点继续匹配,直到匹配成功,场景中的所有模块匹配结束后,所有模块都会被划分在八叉树节点中。可以理解为,根据模块的体积大小划分多个体积区间,不同体积区间的模块对应不同层级的八叉树。
65.可选的,在所述城市级bim模型加载方法中,如图3所示,按照层级对四叉树和八叉树进行分割,并对各层级的四叉树分别设置视角权限,对各层级的八叉树分别设置参数权限。
66.可选的,在所述城市级bim模型加载方法中,用户根据需求在终端选择视角权限和八叉树请求参数。
67.可选的,在所述城市级bim模型加载方法中,根据用户端视角所处的位置得到视角权限,选择匹配层级的四叉树网格,加载网格中项目所对应的场景。
68.若当前视角权限加载到第一层四叉树,且第一层四叉树中视角权限为bim模型概况,则展示当前视野范围内第一层四叉树内所有项目的bim模型概况;再例如,图4所示的用
户端视角,此时只会请求项目a、b的场景,项目c的场景不会被请求。
69.若移动视角,使当前视角权限加载到第四层四叉树,且第四层四叉树中视角权限为平面细节,则展示当前视野范围内bim模型的平面细节。
70.在一个实施例中,根据用户端视角所处的位置,请求加载场景的不同部分。如图5所示的子树1,当视角离场景树较远时,会先加载场景数据的一部分(第二层四叉树)。当用户端视角移动,如图5所示,从视角1移动到视角2,此时离场景又近了一步,因而进一步请求相关的场景数据,如图子树2,是由于视角的拉近而增量请求的场景数据(第四层四叉树)。因此,随着视角在场景树中的移动,场景数据会分批次地动态请求,直至整个场景的结构被完善。视角没有遍历到的部分,场景数据不会被请求。
71.可选的,在所述城市级bim模型加载方法中,若八叉树请求参数为p,则加载p个层级的八叉树进行展示,p为自然数。若加载的p个层级的八叉树不满足需求,则八叉树请求参数改为p+q,则继续加载q个层级的八叉树进行展示,q为自然数,直至满足用户需求。
72.在一个实施例中,前端引擎可以流畅的调用bim模型数据,八叉树被分为多个层级,后台可以设置八叉树请求参数,前端引擎请求数据(视角推进)以选择后台的八叉树请求参数。假设该八叉树请求参数为3,表示每次请求bim模型时,只取该八叉树上的三个层级节点上的模型数据,这样可以灵活配置每次请求的数据量,使每次请求数据量保证在合理的数值,不会导致请求堵塞,提升了前端引擎请求数据的速度及效率,进而提高模型展示的速度。
73.本发明从实际场景加载过程中,选取了八叉树场景中的几个层级来进行说明。如图7所示,由于视角离场景中心较远,此时只需要请求加载八叉树场景的根节点中的内容,展示第一层八叉树的情况。推进视角后,如图8所示,请求加载第二层八叉树中的某些节点内容。以次类推,随着视角的不断推进,不断改变八叉树请求参数,如图9所示,可以请求加载第p层八叉树。
74.综上,在本发明所提供的城市级bim模型加载方法中,通过采用四叉树和八叉树对项目进行划分,并按照层级对四叉树和八叉树进行分割,从而针对传输进行优化。因而,整个场景的数据均会在视角权限选择的变化下,分批次逐渐传输加载,从而减少了场景载入时间。
75.上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
技术特征:
1.一种城市级bim模型加载方法,其特征在于,包括以下步骤:将平面空间按照四叉树的方式划分,得到多层级的四叉树;将三维空间按照八叉树的方式划分,得到多层级的八叉树;将各项目按照场景归类;各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,根据已有设计将各场景内的各项目分布于所属八叉树的不同位置;各项目具备各自bim模型,将bim模型及其内部的模块插入到对应层级的八叉树;按照层级对四叉树和八叉树进行分割,并对各层级的四叉树分别设置视角权限,对各层级的八叉树分别设置参数权限;根据用户需求获取视角权限和八叉树请求参数,并根据视角权限和八叉树请求参数呈现bim模型示意图。2.如权利要求1所述的城市级bim模型加载方法,其特征在于,得到多层级的四叉树,方式如下:将平面空间按照四叉树的方式划分,得到第一层四叉树,并根据实际需求在第一层四叉树各节点所覆盖范围内继续按照四叉树的方式递归划分,依次得到第二层四叉树、第三层四叉树、
…
、第n层四叉树,n为四叉树总层数。3.如权利要求1所述的城市级bim模型加载方法,其特征在于,得到多层级的八叉树,方式如下:将三维空间按照八叉树的方式划分,得到第一层八叉树,并根据实际需求在第一层八叉树各节点所覆盖范围内继续按照八叉树的方式递归划分,依次得到第二层八叉树、第三层八叉树、
…
、第m层八叉树,m为八叉树总层数。4.如权利要求2或3所述的城市级bim模型加载方法,其特征在于,各场景先匹配对应层级的四叉树,在匹配成功对应层级的四叉树的基础上,各场景再匹配对应层级的八叉树,方式如下:根据各场景所占平面大小匹配对应层级的四叉树;根据各场景所占空间大小匹配对应层级的八叉树;各bim模型及其内部的模块根据所占空间大小匹配对应层级的八叉树,并将bim模型及其内部的模块插入到对应层级的八叉树。5.如权利要求4所述的城市级bim模型加载方法,其特征在于,第一层四叉树根据方向划分;第二层四叉树根据城市的行政区划分;第三层四叉树根据街道划分。6.如权利要求4所述的城市级bim模型加载方法,其特征在于,用户根据需求在终端选择视角权限和八叉树请求参数。7.如权利要求6所述的城市级bim模型加载方法,其特征在于,若当前视角权限加载到第一层四叉树,且第一层四叉树中视角权限为bim模型概况,则展示当前视野范围内第一层四叉树内所有项目的bim模型概况;若移动视角,使当前视角权限加载到第四层四叉树,且第四层四叉树中视角权限为平
面细节,则展示当前视野范围内bim模型的平面细节。8.如权利要求6所述的城市级bim模型加载方法,其特征在于,若八叉树请求参数为p,则加载p个层级的八叉树进行展示,p为自然数。9.如权利要求8所述的城市级bim模型加载方法,其特征在于,若加载的p个层级的八叉树不满足需求,则八叉树请求参数改为p+q,则继续加载q个层级的八叉树进行展示,q为自然数,直至满足用户需求。
技术总结
本发明涉及一种城市级BIM模型加载方法,包括以下步骤:将平面空间按照四叉树的方式划分;将三维空间按照八叉树的方式划分;将各项目按照场景归类;各场景先匹配对应层级的四叉树,再匹配对应层级的八叉树,根据已有设计将各场景内的各项目分布于所属八叉树的不同位置;各项目具备各自BIM模型,将BIM模型及其内部的模块插入到对应层级的八叉树;按照层级对四叉树和八叉树进行分割,并对各层级的四叉树分别设置视角权限,对各层级的八叉树分别设置参数权限;根据用户需求获取视角权限和八叉树请求参数,并根据视角权限和八叉树请求参数呈现BIM模型示意图。本发明通过对各项目进行划分,实现分批次逐渐传输加载,从而减少模型示意图载入时间。意图载入时间。意图载入时间。
技术研发人员:茆伟清 周哲峰 胡海斌 谢娇 刘学 许铮铭 吕曦 刘海刚 姚嘉伟 余朝阳 朱俊
受保护的技术使用者:上海城建信息科技有限公司
技术研发日:2023.07.18
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:水体溶解氧预测方法 下一篇:一种潜油永磁同步电机分段斜极转子结构