CN112035433B - 将bim模型转为支持大体量分级加载gis模型的方法 - Google Patents

将bim模型转为支持大体量分级加载gis模型的方法 Download PDF

Info

Publication number
CN112035433B
CN112035433B CN202010807810.3A CN202010807810A CN112035433B CN 112035433 B CN112035433 B CN 112035433B CN 202010807810 A CN202010807810 A CN 202010807810A CN 112035433 B CN112035433 B CN 112035433B
Authority
CN
China
Prior art keywords
bim
geometric
scene
data
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010807810.3A
Other languages
English (en)
Other versions
CN112035433A (zh
Inventor
张华�
季锦章
张大镇
徐晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Design Group Co Ltd
Original Assignee
China Design Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Design Group Co Ltd filed Critical China Design Group Co Ltd
Priority to CN202010807810.3A priority Critical patent/CN112035433B/zh
Publication of CN112035433A publication Critical patent/CN112035433A/zh
Application granted granted Critical
Publication of CN112035433B publication Critical patent/CN112035433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种将BIM模型转为支持大体量分级加载GIS模型的方法,包括构建BIM模型的数据库表;构造三维地球场景结构,解析构件信息;对三维地球场景分组;构造子场景空间层级结构,对数据进行筛选、简化和合并;将BIM模型转换为B3DM规格,每一个B3DM文件为一个瓦片;按照八叉树构建瓦片集合的树状空间结构。本发明采用BIM设计软件二次开发的方式直接提取模型构件信息,防止信息丢失;采用OGC社区标准的3dtiles格式作为GIS模型格式,通过HLOD技术,支持大体量模型的分级加载,实现了从BIM模型到HLOD分级加载GIS模型的自动转换,且具有转换速度更快、准确率更高等优点,便于实际推广和应用。

Description

将BIM模型转为支持大体量分级加载GIS模型的方法
技术领域
本发明属于地理空间信息***技术领域,特别涉及一种将BIM模型转为支持大体量分级加载GIS模型的方法。
背景技术
随着计算机技术、网络技术的发展,建筑信息模型(Building InformationModeling,BIM)与地理信息***(Geographic Information System,GIS)在Web端的集成已成为各界关注的技术重点。从两者所含信息来看,GIS侧重于大尺度宏观环境,BIM侧重于建筑物内部微观信息,两者存在互补关系。
目前行业对BIM+GIS研究的主要方向是将IFC数据集成到CityGML中,这种方法会存在如下一些问题:1、IFC、GityGML是面向数据存储和共享的格式,在可视化时需要即时翻译成图形显卡可以渲染的数据格式,大模型存在加载时间过长、***崩溃等问题。2、通过从Revit等BIM设计软件中导出IFC格式文件的方法,目前存在几何信息丢失、语义信息丢失等问题。
发明内容
本发明的目的在于针对上述现有技术存在的问题,提供一种将BIM模型转为支持大体量分级加载GIS模型的方法,该方法能防止信息丢失、支持大体量模型的分级加载等等。
实现本发明目的的技术解决方案为:一种将BIM模型转为支持大体量分级加载GIS模型的方法,所述方法包括以下步骤:
步骤1,构建BIM模型的数据库表;
步骤2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤3,对三维地球场景进行分组,划分为一个个子场景;
步骤4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
进一步地,步骤1所述构建BIM模型的数据库表,具体包括:
步骤1-1,通过BIM设计软件二次开发,从中导出BIM模型数据,并定义六个空表,分别用于存储BIM模型场景树、BIM模型文件、BIM构件、BIM几何体、材质贴图以及BIM属性;
步骤1-2,解析BIM模型构件的每个几何面的材质信息,包括:光照参数信息、纹理参数信息以及材质信息,其中纹理参数信息包括纹理贴图文件;并对材质信息建立字典以缓存复用,同时将纹理贴图文件存储至材质贴图表;
步骤1-3,解析BIM模型构件的每个几何面三角网信息,包括:获取顶点,并添加至几何体三角网的顶点数组;获取顶点法线,并添加至几何体三角网的法线数组;获取纹理坐标,并添加至几何体三角网的纹理坐标数组;获取三角面,并添加顶点索引至几何体三角网的顶点索引数组;之后扩展法向量:每个三角面对应一个法向量或者整个几何面对应一个法向量;
步骤1-4,构建几何体对象:遍历一个几何体的所有几何面,统计几何体数据,并将数据按照国际标准gltf的数据规范存储至BIM几何体表中;
步骤1-5,解析BIM模型构件的属性信息,并将属性名称通过字典表存储至BIM属性表,属性值存储至BIM构件表,两者之间通过属性ID进行关联;
步骤1-6,构建BIM构件结构树,其根节点为BIM文档模型,之后依次为标高、类别、构件,将BIM构件结构树存储至BIM模型场景树表中;
步骤1-7,将BIM构件存储至BIM构件表,将BIM模型文档信息存储至BIM模型文件表中;所述BIM构件为若干几何体的整体组合。
进一步地,步骤2所述构造三维地球场景结构,从数据库表中解析构件信息,具体包括:
步骤2-1,分批次加载处理:通过BIM构件表获取几何体的数据量大小,按预设的单批次数据量大小加载几何体到内存中进行处理;
步骤2-2,在内存中构造三维地球场景结构,包括场景参数、1个或多个BIM构件,BIM构件包括属性集合、几何体三角网集合,三角网包括顶点、法向量、纹理坐标、顶点索引和材质;其中场景参数包括场景偏移矩阵、分组方式以及分组大小阈值;
步骤2-3,三角网解析:从BIM几何体表中读取gltf数据进行解析,在此过程中,若BIM构件中存在矩阵,需对顶点、法向量数据进行矩阵变化;所述矩阵为非单位矩阵。
进一步地,步骤3所述对三维地球场景进行分组,划分为一个个子场景,具体包括:
步骤3-1,构建1个父场景:遍历三维地球场景中的所有三角网,添加到该父场景中;分别计算每个三角网的最大几何误差和最小几何误差,其中最小几何误差取值为三角形的最小尺寸和(三角形纹理贴图像素坐标尺寸*贴图几何误差比率)两者中的最小值,最大几何误差为包围盒半径;统计整个父场景的数据量大小、包围盒、最大几何误差和最小几何误差;
步骤3-2,父场景分块分组处理:若父场景中的数据量小于预先设置的切片文件最大值,则不分割;若只有1个三角网,或者分块粒度是“对象”且父场景中所有三角网都属于1个几何体对象,或者分块粒度是“网络”且父场景中只有1个材质,均不再分块;否则执行下一步;
步骤3-3,按材质分割子场景:统计父场景中每个使用到的材质的相关数据量,根据该数据量的大小,将父场景均分成2个子场景,并统计更新2个子场景的数据量大小、包围盒、最大几何误差和最小几何误差;所述材质的相关数据量包括材质本身的数据量和引用该材质的所有网格的几何数据量。
进一步地,所述步骤3-3可以替换为:
按空间分割子场景:根据八叉树结构,通过父场景的包围盒将空间一分为八,同时将父场景中的网格按照空间关系归属到8个子场景空间中,并对8个子场景空间进行数据更新,统计每个子场景的数据量大小、包围盒、最大几何误差和最小几何误差。
进一步地,步骤4所述构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并,具体包括:
步骤4-1,构造子场景空间层级结构,即HLOD:计算每个分组即子场景的最小几何误差,该误差为该分组中所有三角网最小几何误差中的最小值;计算每个分组即子场景的最大几何误差,该误差为该分组中所有三角网最大几何误差中的最大值;之后通过几何误差递减系数,在最大和最小几何误差之间插值,获得每个LOD级别的几何误差;
步骤4-2,某个几何误差级别下三角网的筛选:若当前的几何误差大于三角面的包围盒半径,该三角面被筛出,即三角面不可见;否则,添加三角面的顶点数据和索引数据到新的简化的三角网数组;
步骤4-3,某个几何误差级别下三角网的简化:若当前的几何误差小于三角面的最小几何误差或者三角形数量小于预设阈值,则不再简化;否则采用二次边折叠抽取的算法对三角网进行简化;
步骤4-4,某个几何误差级别下三角网的打包:根据当前几何误差下纹理缩放比率,对简化后的纹理贴图进行合并;去掉相同的材质,并打包材质;对引用相同材质的几何体的顶点、法向量、纹理坐标、索引数据进行合并。
进一步地,步骤5所述将数据处理后的BIM模型转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile,具体包括:
步骤5-1,模型坐标+模型原点在某个空间参考坐标系下的位置=在该空间参考坐标系下的坐标P;
步骤5-2,利用地理投影变换,将坐标P变换为经纬度坐标LBH即地球大地坐标系中的坐标;
步骤5-3,利用cesium的笛卡尔坐标定义,将LBH转为笛卡尔坐标G;
步骤5-4,求取当前分组里的笛卡尔坐标中心点C;
步骤5-5,计算B3DM里实际gltf内存储顶点坐标p,依据公式为p=G–C;
步骤5-6,利用当前分组里的笛卡尔坐标中心点C计算当前tile中的绝对矩阵M,依据公式为p*M=G;
步骤5-7,计算当前tile中需要存储的转换矩阵T,依据公式为:p*(当前tile的T)*(父tile的T)*…*(根tile的T)=G。
进一步地,步骤6所述按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型,具体包括:
步骤6-1,扩展所有瓦片tile的包围盒,获得包含所有tile内容的包围盒,并设定为树根节点的包围盒;
步骤6-2,将所有tile添加到树根节点,若tile包围盒半径大于树根节点包围盒半径的1/2,则其落在树根节点中;否则按照tile包围盒的中心点位置在空间上落到树根节点的八个一级子节点之一;
步骤6-3,针对步骤6-2所落到的子节点,按照步骤6-2的方式进一步判断是落在本节点内,还是落到本节点的某个子节点;重复步骤6-2至6-3,直至遍历完所有的tile。
一种将BIM模型转换为支持大体量分级加载GIS模型的***,所述***包括:
第一单元,用于构建BIM模型的数据库表;
第二单元,用于构造三维地球场景结构,从数据库表中解析构件信息;
第三单元,用于对三维地球场景进行分组,划分为一个个子场景;
第四单元,用于构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
第五单元,用于将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
第六单元,用于按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,构建BIM模型的数据库表;
步骤2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤3,对三维地球场景进行分组,划分为一个个子场景;
步骤4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,构建BIM模型的数据库表;
步骤2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤3,对三维地球场景进行分组,划分为一个个子场景;
步骤4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
本发明与现有技术相比,其显著优点为:1)采用BIM设计软件二次开发的方式直接提取BIM模型构件信息,解决了BIM模型在转换过程中几何信息丢失、语义信息丢失等问题;2)采用OGC社区标准的3dtiles格式作为GIS标准化模型格式,通过HLOD技术,支持大体量模型的分级加载,解决了BIM大模型存在加载时间过长、***崩溃等问题;3)转换方法具有转换速度更快、转换准确率更高的优点,便于实际推广和应用。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中本发明将BIM模型转为支持大体量分级加载GIS模型的方法的流程图。
图2为一个实施例中BIM模型转换结果在浏览器里的显示(没有叠加GIS图层数据)示意图。
图3为一个实施例中BIM模型转换结果在浏览器里的显示(叠加GIS遥感影像地图)示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在一个实施例中,结合图1,提供了一种将BIM模型转换为支持大体量分级加载GIS标准化模型的方法,所述方法包括以下步骤:
步骤S1,构建BIM模型的数据库表;
步骤S2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤S3,对三维地球场景进行分组,划分为一个个子场景;
步骤S4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤S5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤S6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
进一步地,在其中一个实施例中,步骤S1所述构建BIM模型的数据库表,具体包括:
步骤S1-1,通过BIM设计软件二次开发,从中导出BIM模型数据,并定义六个空表,分别用于存储BIM模型场景树、BIM模型文件、BIM构件、BIM几何体、材质贴图以及BIM属性;
这里优选地,BIM设计软件采用Revit。通过Revit SDK API对Revit三维模型进行数据导出,将BIM模型构件完整提取到SQLite中间数据库文件。由于Revit的二次开发官方提供的SDK为.NET框架语言,而在生成3DTiles数据的过程中需要用到大量C++的开源计算库,所以存在开发语言之间的跨越问题,这里用文件数据库作为中间过渡方式,选用了比较轻量化的SQLite数据库。
步骤S1-2,解析BIM模型构件的每个几何面的材质信息,包括:光照参数信息、纹理参数信息以及材质信息,其中纹理参数信息包括纹理贴图文件;并对材质信息建立字典以缓存复用,同时将纹理贴图文件存储至材质贴图表;
这里,光照参数信息包括光泽度Glossiness、平滑度Smoothness、反光度Shininess等;纹理参数信息还包括纹理缩放、纹理偏移等;材质信息包括材质外观显示颜色等。
步骤S1-3,解析BIM模型构件的每个几何面三角网信息,包括:获取顶点,并添加至几何体三角网的顶点数组;获取顶点法线,并添加至几何体三角网的法线数组;获取纹理坐标,并添加至几何体三角网的纹理坐标数组;获取三角面,并添加顶点索引至几何体三角网的顶点索引数组;之后扩展法向量:每个三角面对应一个法向量或者整个几何面对应一个法向量;
这里需要说明的是,每个构件包括1个或者多个几何体,每个几何体包含多个几何面。
步骤S1-4,构建几何体对象:遍历一个几何体的所有几何面,统计几何体数据,并将数据按照国际标准gltf的数据规范存储至BIM几何体表中;
这里,gltf中存储的顶点位置是相对于几何体包围盒中心的偏移距离。
步骤S1-5,解析BIM模型构件的属性信息,并将属性名称通过字典表存储至BIM属性表,属性值存储至BIM构件表,两者之间通过属性ID进行关联;
这里,属性信息包括基本属性和其他属性,其中基本属性包括族类别、族、族类型信息,其他属性包括面积、体积,顶部偏移、底部偏移等。
步骤S1-6,构建BIM构件结构树,其根节点为BIM文档模型,之后依次为标高、类别、构件,将BIM构件结构树存储至BIM模型场景树表中;
步骤S1-7,将BIM构件存储至BIM构件表,将BIM模型文档信息存储至BIM模型文件表中(BIM模型有外部链接的,会存储多个文档);所述BIM构件为若干几何体的整体组合。
这里,一般情况下,BIM构件仅有1个几何体。
进一步地,在其中一个实施例中,步骤S2所述构造三维地球场景结构,从数据库表中解析构件信息,具体包括:
步骤S2-1,分批次加载处理:通过BIM构件表获取几何体的数据量大小,按预设的单批次数据量大小加载几何体到内存中进行处理;
这里优选地,所述预设的单批次数据量大小为500M。
步骤S2-2,在内存中构造三维地球场景结构,包括场景参数、1个或多个BIM构件,BIM构件包括属性集合、几何体三角网集合,三角网包括顶点、法向量、纹理坐标、顶点索引和材质(包含纹理贴图);其中场景参数包括场景偏移矩阵、分组方式以及分组大小阈值等等;
步骤S2-3,三角网解析:从BIM几何体表中读取gltf数据进行解析,在此过程中,若BIM构件中存在矩阵,需对顶点、法向量数据进行矩阵变化;所述矩阵为非单位矩阵。这里,矩阵变化是指将顶点、法向量数据存储为矩阵形式。
进一步地,在其中一个实施例中,步骤S3所述对三维地球场景进行分组,划分为一个个子场景,具体包括:
步骤S3-1,构建1个父场景:遍历三维地球场景中的所有三角网,添加到该父场景中;分别计算每个三角网的最大几何误差和最小几何误差,其中最小几何误差取值为三角形的最小尺寸和(三角形纹理贴图像素坐标尺寸*贴图几何误差比率)两者中的最小值,最大几何误差为包围盒半径;统计整个父场景的数据量大小、包围盒、最大几何误差和最小几何误差;
步骤S3-2,父场景分块分组处理:若父场景中的数据量小于预先设置的切片文件最大值,则不分割;若只有1个三角网,或者分块粒度是“对象”且父场景中所有三角网都属于1个几何体对象,或者分块粒度是“网络”且父场景中只有1个材质,均不再分块;否则执行下一步;
这里优选地,分组阈值默认是2MB,数据量包含纹理。
这里,分组阈值定义了最大单个b3dm的大小;如果太大,则请求慢,容易失败,如果太小则请求太多;内网使用一般2MB即可;如果外网可以考虑降低此阈值。
步骤S3-3,按材质分割子场景:统计父场景中每个使用到的材质的相关数据量,根据该数据量的大小,将父场景均分成2个子场景,并统计更新2个子场景的数据量大小、包围盒、最大几何误差和最小几何误差;所述材质的相关数据量包括材质本身的数据量和引用该材质的所有网格的几何数据量。
这里,所述步骤S3-3可以替换为:
按空间分割子场景:根据八叉树结构,通过父场景的包围盒将空间一分为八,同时将父场景中的网格按照空间关系归属到8个子场景空间中,并对8个子场景空间进行数据更新,统计每个子场景的数据量大小、包围盒、最大几何误差和最小几何误差。
进一步地,在其中一个实施例中,步骤S4所述构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并,具体包括:
步骤S4-1,构造子场景空间层级结构,即HLOD:计算每个分组即子场景的最小几何误差,该误差为该分组中所有三角网最小几何误差中的最小值;计算每个分组即子场景的最大几何误差,该误差为该分组中所有三角网最大几何误差中的最大值;之后通过几何误差递减系数,在最大和最小几何误差之间插值,获得每个LOD级别的几何误差;
这里优选地,几何误差递减系数为0.1。
步骤S4-2,某个几何误差级别下三角网的筛选:若当前的几何误差大于三角面的包围盒半径,该三角面被筛出,即三角面不可见;否则,添加三角面的顶点数据和索引数据到新的简化的三角网数组;
步骤S4-3,某个几何误差级别下三角网的简化:若当前的几何误差小于三角面的最小几何误差或者三角形数量小于预设阈值,则不再简化;否则采用二次边折叠抽取的算法对三角网进行简化;
这里优选地,预设阈值为100。
步骤S4-4,某个几何误差级别下三角网的打包:根据当前几何误差下纹理缩放比率(较大的几何误差下,纹理都很小),对简化后的纹理贴图进行合并;去掉相同的材质(颜色相同、纹理相同),并打包材质;对引用相同材质的几何体的顶点、法向量、纹理坐标、索引数据进行合并。
这里,步骤S4-2至步骤S4-4可以不按上述顺序执行,也可以同步执行。
进一步地,在其中一个实施例中,步骤S5所述将数据处理后的BIM模型转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile(按照国际标准gltf规范填充顶点、批次、法向量、颜色、纹理、索引、材质等数据,对三角网顶点数据采用***的Draco压缩算法,对纹理数据采用crn压缩,结合FeatureTable、BatchTable,输出单个B3DM文件,作为一个瓦片tile),具体包括:
步骤S5-1,模型坐标+模型原点在某个空间参考坐标系下的位置=在该空间参考坐标系下的坐标P;
步骤S5-2,利用地理投影变换,将坐标P变换为经纬度坐标LBH即地球大地坐标系中的坐标;
步骤S5-3,利用cesium的笛卡尔坐标定义,将LBH转为笛卡尔坐标G;
步骤S5-4,求取当前分组里的笛卡尔坐标中心点C;
步骤S5-5,计算B3DM里实际gltf内存储顶点坐标p,依据公式为p=G–C;
步骤5-6,利用当前分组里的笛卡尔坐标中心点C计算当前tile中的绝对矩阵M,依据公式为p*M=G;
步骤S5-7,计算当前tile中需要存储的转换矩阵T,当前tile的M=当前tile的T*父tile的M,而父tile的M=父tile的T*父tile的M,因此递推可得计算出当前tile的T所依据公式为:p*(当前tile的T)*(父tile的T)*…*(根节点tile的T)=G。
进一步地,在其中一个实施例中,步骤S6所述按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型,具体包括:
步骤S6-1,扩展所有瓦片tile的包围盒,获得包含所有tile内容的包围盒,并设定为树根节点的包围盒;
步骤S6-2,将所有tile添加到树根节点,若tile包围盒半径大于树根节点包围盒半径的1/2,则其落在树根节点中可以认为没有某个子节点可以容纳全部内容了);否则按照tile包围盒的中心点位置在空间上落到树根节点的八个一级子节点之一;
步骤S6-3,针对步骤S6-2所落到的子节点,按照步骤S6-2的方式进一步判断是落在本节点内,还是落到本节点的某个子节点;重复步骤6-2至6-3,直至遍历完所有的tile。
在一个实施例中,提供了一种将BIM模型转换为支持大体量分级加载GIS模型的***,所述***包括:
第一单元,用于构建BIM模型的数据库表;
第二单元,用于构造三维地球场景结构,从数据库表中解析构件信息;
第三单元,用于对三维地球场景进行分组,划分为一个个子场景;
第四单元,用于构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
第五单元,用于将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
第六单元,用于按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
关于将BIM模型转换为支持大体量分级加载GIS模型的***的具体限定可以参见上文中对于将BIM模型转为支持大体量分级加载GIS模型的方法的限定,在此不再赘述。上述将BIM模型转换为支持大体量分级加载GIS模型的***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤S1,构建BIM模型的数据库表;
步骤S2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤S3,对三维地球场景进行分组,划分为一个个子场景;
步骤S4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤S5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤S6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
关于每一步的具体限定可以参见上文中对于将BIM模型转换为支持大体量分级加载GIS标准化模型的方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤S1,构建BIM模型的数据库表;
步骤S2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤S3,对三维地球场景进行分组,划分为一个个子场景;
步骤S4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤S5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤S6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型。
关于每一步的具体限定可以参见上文中对于将BIM模型转换为支持大体量分级加载GIS标准化模型的方法的限定,在此不再赘述。
BIM模型转换结果在浏览器里的显示(没有叠加GIS图层数据)见图2。BIM模型转换结果在浏览器里的显示(叠加GIS遥感影像地图)见图3。
本发明采用BIM设计软件二次开发的方式直接提取模型构件信息,防止信息丢失;采用OGC社区标准的3dtiles格式作为GIS模型格式,通过HLOD技术,支持大体量模型的分级加载,实现了从BIM模型到HLOD分级加载GIS模型的自动转换,且具有转换速度更快、准确率更高等优点,便于实际推广和应用。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,所述方法包括以下步骤:
步骤1,构建BIM模型的数据库表;
步骤2,构造三维地球场景结构,从数据库表中解析构件信息;
步骤3,对三维地球场景进行分组,划分为一个个子场景;
步骤4,构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并;
步骤5,将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile;
步骤6,按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型;
步骤1所述构建BIM模型的数据库表,具体包括:
步骤1-1,通过BIM设计软件二次开发,从中导出BIM模型数据,并定义六个空表,分别用于存储BIM模型场景树、BIM模型文件、BIM构件、BIM几何体、材质贴图以及BIM属性;
步骤1-2,解析BIM模型构件的每个几何面的材质信息,包括:光照参数信息、纹理参数信息以及材质信息,其中纹理参数信息包括纹理贴图文件;并对材质信息建立字典以缓存复用,同时将纹理贴图文件存储至材质贴图表;
步骤1-3,解析BIM模型构件的每个几何面三角网信息,包括:获取顶点,并添加至几何体三角网的顶点数组;获取顶点法线,并添加至几何体三角网的法线数组;获取纹理坐标,并添加至几何体三角网的纹理坐标数组;获取三角面,并添加顶点索引至几何体三角网的顶点索引数组;之后扩展法向量:每个三角面对应一个法向量或者整个几何面对应一个法向量;
步骤1-4,构建几何体对象:遍历一个几何体的所有几何面,统计几何体数据,并将数据按照国际标准gltf的数据规范存储至BIM几何体表中;
步骤1-5,解析BIM模型构件的属性信息,并将属性名称通过字典表存储至BIM属性表,属性值存储至BIM构件表,两者之间通过属性ID进行关联;
步骤1-6,构建BIM构件结构树,其根节点为BIM文档模型,之后依次为标高、类别、构件,将BIM构件结构树存储至BIM模型场景树表中;
步骤1-7,将BIM构件存储至BIM构件表,将BIM模型文档信息存储至BIM模型文件表中;所述BIM构件为若干几何体的整体组合;
步骤2所述构造三维地球场景结构,从数据库表中解析构件信息,具体包括:
步骤2-1,分批次加载处理:通过BIM构件表获取几何体的数据量大小,按预设的单批次数据量大小加载几何体到内存中进行处理;
步骤2-2,在内存中构造三维地球场景结构,包括场景参数、1个或多个BIM构件,BIM构件包括属性集合、几何体三角网集合,三角网包括顶点、法向量、纹理坐标、顶点索引和材质;其中场景参数包括场景偏移矩阵、分组方式以及分组大小阈值;
步骤2-3,三角网解析:从BIM几何体表中读取gltf数据进行解析,在此过程中,若BIM构件中存在矩阵,需对顶点、法向量数据进行矩阵变化;所述矩阵为非单位矩阵。
2.根据权利要求1所述的将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,步骤3所述对三维地球场景进行分组,划分为一个个子场景,具体包括:
步骤3-1,构建1个父场景:遍历三维地球场景中的所有三角网,添加到该父场景中;分别计算每个三角网的最大几何误差和最小几何误差,其中最小几何误差取值为三角形的最小尺寸和(三角形纹理贴图像素坐标尺寸*贴图几何误差比率)两者中的最小值,最大几何误差为包围盒半径;统计整个父场景的数据量大小、包围盒、最大几何误差和最小几何误差;
步骤3-2,父场景分块分组处理:若父场景中的数据量小于预先设置的切片文件最大值,则不分割;若只有1个三角网,或者分块粒度是“对象”且父场景中所有三角网都属于1个几何体对象,或者分块粒度是“网络”且父场景中只有1个材质,均不再分块;否则执行下一步;
步骤3-3,按材质分割子场景:统计父场景中每个使用到的材质的相关数据量,根据该数据量的大小,将父场景均分成2个子场景,并统计更新2个子场景的数据量大小、包围盒、最大几何误差和最小几何误差;所述材质的相关数据量包括材质本身的数据量和引用该材质的所有网格的几何数据量。
3.根据权利要求2所述的将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,所述步骤3-3可以替换为:
按空间分割子场景:根据八叉树结构,通过父场景的包围盒将空间一分为八,同时将父场景中的网格按照空间关系归属到8个子场景空间中,并对8个子场景空间进行数据更新,统计每个子场景的数据量大小、包围盒、最大几何误差和最小几何误差。
4.根据权利要求1所述的将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,步骤4所述构造子场景空间层级结构,即HLOD,并根据每个级别的几何误差对数据进行筛选、简化和合并,具体包括:
步骤4-1,构造子场景空间层级结构,即HLOD:计算每个分组即子场景的最小几何误差,该误差为该分组中所有三角网最小几何误差中的最小值;计算每个分组即子场景的最大几何误差,该误差为该分组中所有三角网最大几何误差中的最大值;之后通过几何误差递减系数,在最大和最小几何误差之间插值,获得每个LOD级别的几何误差;
步骤4-2,某个几何误差级别下三角网的筛选:若当前的几何误差大于三角面的包围盒半径,该三角面被筛出,即三角面不可见;否则,添加三角面的顶点数据和索引数据到新的简化的三角网数组;
步骤4-3,某个几何误差级别下三角网的简化:若当前的几何误差小于三角面的最小几何误差或者三角形数量小于预设阈值,则不再简化;否则采用二次边折叠抽取的算法对三角网进行简化;
步骤4-4,某个几何误差级别下三角网的打包:根据当前几何误差下纹理缩放比率,对简化后的纹理贴图进行合并;去掉相同的材质,并打包材质;对引用相同材质的几何体的顶点、法向量、纹理坐标、索引数据进行合并。
5.根据权利要求1所述的将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,步骤5所述将数据处理后的BIM模型坐标转换为B3DM内置坐标规格,每一分组数据对应一个B3DM文件,每一个B3DM文件作为一个瓦片tile,具体包括:
步骤5-1,模型坐标+模型原点在某个空间参考坐标系下的位置=在该空间参考坐标系下的坐标P;
步骤5-2,利用地理投影变换,将坐标P变换为经纬度坐标LBH即地球大地坐标系中的坐标;
步骤5-3,利用cesium的笛卡尔坐标定义,将LBH转为笛卡尔坐标G;
步骤5-4,求取当前分组里的笛卡尔坐标中心点C;
步骤5-5,计算B3DM里实际gltf内存储顶点坐标p,依据公式为p=G–C;
步骤5-6,利用当前分组里的笛卡尔坐标中心点C计算当前tile中的绝对矩阵M,依据公式为p*M=G;
步骤5-7,计算当前tile中需要存储的转换矩阵T,依据公式为:p*(当前tile的T)*(父tile的T)*…*(根tile的T)=G。
6.根据权利要求1所述的将BIM模型转为支持大体量分级加载GIS模型的方法,其特征在于,步骤6所述按照八叉树构建瓦片tile集合的树状空间结构,形成支持大体量分级加载GIS模型,具体包括:
步骤6-1,扩展所有瓦片tile的包围盒,获得包含所有tile内容的包围盒,并设定为树根节点的包围盒;
步骤6-2,将所有tile添加到树根节点,若tile包围盒半径大于树根节点包围盒半径的1/2,则其落在树根节点中;否则按照tile包围盒的中心点位置在空间上落到树根节点的八个一级子节点之一;
步骤6-3,针对步骤6-2所落到的子节点,按照步骤6-2的方式进一步判断是落在本节点内,还是落到本节点的某个子节点;重复步骤6-2至6-3,直至遍历完所有的tile。
CN202010807810.3A 2020-08-12 2020-08-12 将bim模型转为支持大体量分级加载gis模型的方法 Active CN112035433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010807810.3A CN112035433B (zh) 2020-08-12 2020-08-12 将bim模型转为支持大体量分级加载gis模型的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010807810.3A CN112035433B (zh) 2020-08-12 2020-08-12 将bim模型转为支持大体量分级加载gis模型的方法

Publications (2)

Publication Number Publication Date
CN112035433A CN112035433A (zh) 2020-12-04
CN112035433B true CN112035433B (zh) 2024-03-26

Family

ID=73578637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010807810.3A Active CN112035433B (zh) 2020-08-12 2020-08-12 将bim模型转为支持大体量分级加载gis模型的方法

Country Status (1)

Country Link
CN (1) CN112035433B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112802134A (zh) * 2021-01-11 2021-05-14 南京征帆信息科技有限公司 一种三维模型的编码方法、装置和终端
CN112989458B (zh) * 2021-02-22 2022-09-06 中铁二院工程集团有限责任公司 一种BIM模型到3DTiles文件的转换方法
CN113255051B (zh) * 2021-07-07 2021-09-14 天津市天房科技发展股份有限公司 大体量bim模型轻量化的方法及装置
CN113656359A (zh) * 2021-08-03 2021-11-16 煤炭科学研究总院 三维模型的轻量化方法、装置、计算机设备及存储介质
CN113658327A (zh) * 2021-08-10 2021-11-16 煤炭科学研究总院 煤矿三维模型数据的轻量化方法和装置
CN114065354B (zh) * 2021-11-22 2022-06-17 浙江高信技术股份有限公司 一种基于bim和gis的融合***
CN113934684B (zh) * 2021-12-16 2022-04-29 四川省交通勘察设计研究院有限公司 一种数据格式自动转换方法、装置、电子设备及存储介质
CN116975479A (zh) * 2022-04-21 2023-10-31 北京京东振世信息技术有限公司 三维地图数据加载和发送方法、装置、电子设备和介质
CN115481336A (zh) * 2022-08-18 2022-12-16 湖北省交通规划设计院股份有限公司 基于云端共享的交通三维实景设计方案展示方法和***
CN115880103B (zh) * 2023-02-21 2023-05-23 山东铁路投资控股集团有限公司 一种铁路工程进度可视化管理方法、装置、设备及介质
CN116880924A (zh) * 2023-07-21 2023-10-13 以见科技(上海)有限公司 数据加载方法、***和电子设备
CN117115379A (zh) * 2023-10-24 2023-11-24 深圳市易图资讯股份有限公司 一种基于SZ-IFC到3D Tiles的转换方法
CN117216861B (zh) * 2023-11-07 2024-02-13 成都建工第三建筑工程有限公司 一种基于bim的建筑工程应用方法、电子设备及可读介质
CN118070403A (zh) * 2024-04-17 2024-05-24 四川省建筑设计研究院有限公司 基于bim自动生成灯回路影响区域空间的方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465481B1 (ko) * 2013-12-23 2014-12-10 한국건설기술연구원 Bim 데이터 포맷변환을 위한 bim데이터 처리 시스템
CN105701295A (zh) * 2016-01-14 2016-06-22 昆明安泰得软件股份有限公司 Bim模型与三维地理信息***快速集成展现的方法
KR101996177B1 (ko) * 2018-07-09 2019-07-03 서울시립대학교 산학협력단 Bim/gis 통합 정보 제공 방법 및 장치, 그리고 이를 이용하는 시스템
CN110807835A (zh) * 2019-10-25 2020-02-18 南京工业大学 一种建筑物bim模型和实景三维模型的融合方法
CN111339599A (zh) * 2020-03-02 2020-06-26 中铁工程设计咨询集团有限公司 一种bim模型到gis模型的转换方法
CN111340927A (zh) * 2020-03-25 2020-06-26 上海城建信息科技有限公司 基于WebGL的大规模供水管网渲染方法
CN111368363A (zh) * 2020-03-11 2020-07-03 福建积微科技有限公司 基于3DTiles输变电GIM模型轻量化显示的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831307B (zh) * 2012-05-31 2013-11-13 山东电力集团公司青岛供电公司 基于三维gis技术的电网可视化***及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465481B1 (ko) * 2013-12-23 2014-12-10 한국건설기술연구원 Bim 데이터 포맷변환을 위한 bim데이터 처리 시스템
CN105701295A (zh) * 2016-01-14 2016-06-22 昆明安泰得软件股份有限公司 Bim模型与三维地理信息***快速集成展现的方法
KR101996177B1 (ko) * 2018-07-09 2019-07-03 서울시립대학교 산학협력단 Bim/gis 통합 정보 제공 방법 및 장치, 그리고 이를 이용하는 시스템
CN110807835A (zh) * 2019-10-25 2020-02-18 南京工业大学 一种建筑物bim模型和实景三维模型的融合方法
CN111339599A (zh) * 2020-03-02 2020-06-26 中铁工程设计咨询集团有限公司 一种bim模型到gis模型的转换方法
CN111368363A (zh) * 2020-03-11 2020-07-03 福建积微科技有限公司 基于3DTiles输变电GIM模型轻量化显示的方法
CN111340927A (zh) * 2020-03-25 2020-06-26 上海城建信息科技有限公司 基于WebGL的大规模供水管网渲染方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"BIM+"模式融合建筑业"智造"研究;张大镇,季锦章,黄晓冬;土木建筑工程信息技术;20170815;第09卷(第04期);全文 *
Combining IFC and 3D tiles to create 3D visualization for building information modeling;Zhao Xu等;Automation in Construction;20191120;全文 *
基于BIM+GIS的智慧管廊监测管控运维一体化平台建设;纪蓉等;江苏建筑;20180430(第02期);全文 *
浅析基于3DTiles的BIM模型网络共享方案;王占军等;科学技术创新;20200315(第08期);全文 *

Also Published As

Publication number Publication date
CN112035433A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN112035433B (zh) 将bim模型转为支持大体量分级加载gis模型的方法
US11302072B2 (en) System for constructing urban design digital sand table
Van Oosterom Variable-scale topological data structures suitable for progressive data transfer: The GAP-face tree and GAP-edge forest
CN108664619B (zh) 一种类瓦片技术的海量线划地形图本原存储与调度方法
US6684219B1 (en) Method and apparatus for building and maintaining an object-oriented geospatial database
Raper et al. Design models and functionality in GIS
CN113066157B (zh) 基于cim平台的数据分级请求渲染方法及***
van Oosterom Spatial access methods
CN108681595B (zh) 地理pdf地图混合平面坐标***模型及其构建方法
Van Oosterom The reactive-tree: A storage structure for a seamless, scaleless geographic database
CN112184908A (zh) 基于Cesium实现倾斜摄影模型的3D Tiles格式模型包围盒数据生成方法
van Oosterom et al. Data structures for continuous generalisation: tGAP and SSC
CN114820975B (zh) 基于全要素参数符号化的三维场景仿真重构***及方法
CN117523151A (zh) 一种三维模型FBX格式转换为3D Tiles格式的方法
CN113157988B (zh) 由ofd格式文件表示地理信息的方法和装置
Yang et al. A hybrid spatial index for massive point cloud data management and visualization
Corral et al. Algorithms for joining R-trees and linear region quadtrees
Agugiaro et al. 7.2 3D GIS for cultural heritage sites: The queryarch3d prototype
Giordano et al. A conceptual model of GIS-based spatial analysis
van Oosterom A storage structure for a multi-scale database: The reactive-tree
CN114218215B (zh) 一种大规模gis数据的优化渲染方法
CN112446959B (zh) 一种倾斜摄影模型优化方法
van Oostrum Geometric algorithms for geographic information systems
Skogan Managing resolution in multi-resolution databases.
Löffler An interactive optimization framework for point feature label placement

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant