基于3DTiles输变电GIM模型轻量化显示的方法与流程

文档序号:21364528发布日期:2020-07-04 04:39阅读:2412来源:国知局
基于3DTiles输变电GIM模型轻量化显示的方法与流程

技术领域:

本发明属于输变电技术领域,尤其涉及一种基于3dtiles输变电gim模型轻量化显示的方法。



背景技术:

bim(buildinginformationmodeling)技术作为建筑信息领域的一项信息技术,由于具有数字化、可视化、信息化以及可模拟和集成化等优势,其在建筑行业的设计领域、施工领域和运营维护领域等全生命周期中得到广泛的应用和发展,成为建筑行业的新趋势。

近些年,变电站工程领域通过借鉴建筑行业bim技术所开发的传统bim应用取得了出色的成就。但是,随着三维可视化、web技术的发展,建筑行业基于对bim轻量化技术的深入研究,研发了一些出色的新兴bim应用,满足了人们对建筑模型轻量化展示及查看的需求。而变电站工程领域在bim轻量化的技术研究与应用开发还不够全面与成熟。gim文件作为电力设计院数字移交的必要文件,其在输变电项目整个生命周期中扮演着非常重要的角色。一方面,变电站项目的gim模型存储着项目的所有信息,因此gim文件可以作为输变电领域bim应用的源格式文件。另一方面,输电项目涉及到gis(地理信息系统),其gim模型存储有与gis相关的数据信息,因此gim文件也可以作为输变电领域gis应用的源格式文件。综上所述,gim模型文件适合作为输变电领域bim+gis应用的源格式文件,而现在还未有在web上轻量化显示gim模型的相关研究。

在输变电领域中,用于变电站项目的bim应用采用的源格式文件常见的有rvt、dwg等,用于输电线项目的gis应用采用的源格式文件一般为平台自定义的格式,由于变电站项目与输电线项目性质不同,现在还未有平台应用可以同时适用于这两种项目。

gim文件可以存储变电站项目所需的bim数据,也可以存储输电线项目所需的gis数据,因此将其作为应用的源格式文件,可以解决输变电领域平台应用无法同时适用于变电站项目和输电线项目的问题,而这种方案的最主要的问题是如何在web端轻量化显示gim模型,本发明方法将解决这一问题。



技术实现要素:

针对上述问题,本发明要解决的技术问题是提供一种基于3dtiles输变电gim模型轻量化显示的方法,包括以下步骤:

(1)解析cbm、dev、phm文件,获得场景数据:通过文件解析器逐级解析gim模型中的cbm、dev、phm文件,得到场景结构数据;

(2)转换mod,stl模型:通过模型构造器完成mod,stl模型至obj文件的转换工作;

(3)解析fam属性文件:通过文件解析器解析gim模型中的fam文件,完成模型的属性信息填充工作;

(4)分解ifc模型:通过ifc相关开源库将gim模型中的ifc文件分解为多个obj模型文件,并且保存对应的实体属性;

(5)生成lod:通过lod技术生成多个细节层次的obj模型;

(6)生成轻量化数据:利用obj相关工具将步骤(5)生成的obj模型转换为gltf文件,利用gltf文件及生成的属性数据构建存储模型信息的b3dm文件,将场景数据按分片结构划分,创建tileset数据结构;

(7)发布数据服务:将步骤(6)创建的tileset数据结构通过服务器发布。

优选的,所述步骤(1)中文件解析器包括ini解析器和xml解析器。

优选的,所述步骤(2)中转换mod,stl模型,是通过解析mod文件获得模型信息,包括模型类型、模型形状和模型尺寸,通过开源图形库完成基础模型、布尔模型的构建以及多个模型的合并,借助开源图形库将构建完成的mod模型导出为obj模型文件以及将stl模型转换为obj模型文件。

优选的,所述开源图形库为openmesh和cgal两个图形库。

优选的,所述步骤(4)中ifc相关开源库为ifc++开源库。

优选的,所述步骤(5)中lod技术采用三角网格算法方案。

优选的,所述步骤(6)中obj相关工具为obj2gltf工具。

优选的,所述步骤(7)中访问发布的数据服务,结合cesiumjs库与webgl技术便可以在web端显示gim模型。

本发明有益效果:本发明的一种基于3dtiles输变电gim模型轻量化显示的方法,采用文件数据缓存机制解决重复解析文件与重复构造模型的问题,现在输变电领域已有的bim应用或者gis应用采用的源格式文件都不是gim文件,而gim文件即可以存储变电站项目的bim数据,也可以存储输电线项目的gis数据,因此将其作为源格式文件的平台应用能同时适用变电站项目与输电线项目。现在还未有在web端轻量化显示gim模型的技术,本发明能够实现在web端上轻量化显示gim模型,解决了将gim文件作为输变电领域bim+gis应用源格式文件的主要问题,为开发输变电领域bim+gis平台提供了可能性。

附图说明:

图1为本发明的方法流程图;

图2为缓存机制用于文件解析时的流程图;

图3为缓存机制用于模型构造时的流程图;

图4为步骤一的一种实施流程图;

图5为步骤二的一种实施流程图;

图6为步骤二的模型构造器代替方案的一种实施流程图。

具体实施方式:

为使本发明的目的、技术方案和优点更加清楚明了,下面通过具体实施例及附图来描述本发明。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

如图1-6所示,本实施例的一种基于3dtiles输变电gim模型轻量化显示的方法,包括以下步骤:

(1)步骤一、解析cbm、dev、phm文件,获得场景数据:

通过文件解析器逐级解析gim模型中的cbm、dev、phm文件,得到场景结构数据。文件解析器的技术实现方案为:

1.参照《输变电工程三维设计模型交互规范》设计cbm、dev、phm、fam、mod文件解析完成后输出的数据结构。标准文件《输变电工程三维设计模型交互规范》定义了以上5种文件的文件结构,下面简单介绍:

1)cbm:工程模型文件;通过“=”符号描述键值对;通过“basefamily”关键字描述工程模型关联的fam属性文件;通过“subsystems”关键字描述子级系统的cbm文件;通过“ifc”关键字描述ifc文件。

2)dev:物理模型文件;通过“=”符号描述键值对;通过“subdevice”关键字描述物理模型引用的dev文件;通过“solidmodel”关键描述物理模型引用的phm文件;通过“transformmatrix”关键字描述引用的其他模型在此模型中的空间变换矩阵。

3)phm:组合模型文件;通过“=”符号描述键值对;通过“solidmoel”关键字描述组合模型引用的mod文件以及stl文件;通过“transformmatrix”关键字描述引用的其他模型在此模型中的空间变换矩阵。

4)mod:几何模型文件;.xml格式文件;通过“entity”关键字描述实体内容。

5)fam:属性文件;通过“=”符号描述键值对;通过“[设计参数]”关键字描述设计参数的属性内容。

2.由《输变电工程三维设计模型交互规范》得知cbm、dev、phm、fam文件格式类似于.ini格式,mod文件格式为.xml格式。本发明中的文件解析器共包括:ini解析器和xml解析器。

3.根据文件类型调用对应的文件解析器,完成文件解析。

针对cbm、dev、phm、fam文件,调用ini文件解析器,针对mod文件,调用xml文件解析器,完成模型数据解析,并结构化到内存。由于同一个文件可能会被引用多次,实际模型中文件数量级别可以达到数十万,而且会出现一些dev文件生成的obj模型实际是一样的情况,因此需要针对重复解析文件及重复构造模型的问题,设计文件数据缓存机制来提高程序效率。

1)为了解决重复解析文件的问题,需要构造字典容器存放已解析文件的数据对象,该字典容器的键为文件名,值为解析得到的数据对象,文件数据缓存机制用于解析文件时的流程图见图2,流程为:

①传入文件;

②根据文件名遍历字典容器;

③如果找到相同文件名,则取出该文件名的数据对象,传出;如果未找到相同文件名,则解析该文件,将传入文件的文件名和解析得到的数据对象存入字典容器中,并且将数据对象传出。

2)为了解决重复构造模型的问题,需要构造字典容器存放已构造模型的模型文件,该字典对象的键为数据对象,值为构造后的模型文件,文件数据缓存机制用于构造模型时的流程图见图3,流程为:

①传入数据对象;

②根据数据对象遍历字典容器;

③如果找到相同数据对象,则取出该数据对象的模型,传出;如果未找到相同数据对象,则根据该数据对象构造模型,将传入的数据对象和构造得到的模型存入字典容器,并且将模型传出。

(2)步骤二、转换mod,stl模型:

通过模型构造器完成mod,stl模型至obj文件的转换工作。模型构造器的技术实现方案为:

1.解析mod文件获得模型信息,包括模型类型(基础模型/布尔模型)、模型形状(长方体、球...)、模型尺寸(长宽高、球半径...)。

2.通过开源图形库完成基础模型、布尔模型的构建以及多个模型的合并。本发明方法的一种具体实施中采用了openmesh、cgal两个图形库完成以上操作。

3.借助开源图形库将构建完成的mod模型导出为obj模型文件以及将stl模型转换为obj模型文件。本发明方法的一种具体实施中采用了openmesh开源库将模型导出为obj文件,采用了osg开源库将stl模型转换为obj模型文件。

(3)步骤三、解析fam属性文件:

通过文件解析器解析gim模型中的fam文件,完成模型的属性信息填充工作。

(4)步骤四、分解ifc模型:

通过ifc相关开源库将gim模型中的ifc文件分解为多个obj模型文件,并且保存对应的实体属性。ifc格式是国际协同工作联盟为建筑行业bim发布的一种建筑产品文件格式,其作为行业标准格式,可以直接使用现成的程序库完成ifc模型的解析与转化工作。本发明方法的一种具体实施中采用了ifc++开源库。

(5)步骤五、生成lod:

通过lod技术生成多个细节层次的obj模型。lod(levelsofdetail),意为多细节层次。lod技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数与细节度,从而获得高效率的渲染运算。现在业内已经有了成熟的lod技术实现方案,本发明方法的一种具体实施中采用三角网格算法方案。

(6)步骤六、生成轻量化数据:

1.利用obj相关工具将前面步骤生成的obj模型转换为gltf文件。本发明的一种实施中采用obj2gltf工具进行转换工作。

2.利用gltf文件及前面步骤生成的属性数据构建存储模型信息的b3dm文件。

3.将场景按分片结构划分,创建tileset数据结构。

(7)步骤七、发布数据服务:

将步骤六创建的tileset数据通过服务器发布。完成此步骤后,访问发布的服务,结合cesiumjs库与webgl技术便可以在web端显示gim模型。

具体地,如图6,步骤二中模型构造器适用于任意项目,如果输变电项目是基于revit平台进行设计的,则模型构造器的技术方案可以替换为:

1)解析mod文件,获得模型信息,包括模型类型(简单模型/布尔模型)、模型形状(长方体、球...)、模型尺寸(长宽高、球半径...)。

2)通过revit导入对应的族实例,设置其尺寸,然后获得该模型的三角面片数据。

3.借助osg库将第二步获得的三角面片数据构建成实体模型,导出obj文件;借助osg库将stl文件导出为obj文件。

本发明提出的一种基于3dtiles输变电gim模型轻量化显示的方法,解决了将gim文件作为输变电领域bim+gis应用源格式文件的主要问题,为开发输变电领域bim+gis平台提供了可能性。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1