System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及电子信息,尤其涉及一种ifc文件压缩方法、装置、电子设备及存储介质。
技术介绍
1、ifc数据交换标准是一个完全公开,不受限制的数据交互格式。该标准广泛应用于能源、交通、水利、建筑、管道及消防等领域。尤其对于交通领域来讲,它更是提供了一个统一的数据交换标准,为许多涉及大量的建筑信息模型(building information modeling,bim)数据的交通工程项目中数据之间高效、准确的交换提供了便利,为交通领域实现信息化和智能化提供了技术基础。
2、ifc文件数据量庞大,为了方便管理和读取,目前的方案主要有两种,分别是基于文件和基于数据库的管理。基于文件系统的管理方案,单个模型文件大小基本都超过了1gb,数据读取效率低下,三维可视化速度更是缓慢。基于数据库的管理方案,是通过模式映射在各种类型的数据库中创建对应的表结构来存储ifc数据,但目前已有的模式映射方法所提供的数据模型的访问性能依旧不能够满足要求。
3、目前,有四种压缩ifc文件的方法如下:(1)使用纯文本压缩工具直接压缩ifc文件,buildingsmart官方提供了扩展名为.ifczip的文件格式ifc-zip,以减小ifc文件的大小。其ifc-zip文件的大小实际为其原始ifc文件大小的20%左右。此方式不考虑ifc的内容,冗余实例仍旧保留,仅适用于存储或者网络传输的场景;(2)从原始完整的ifc文件中提取部分模型或信息,在建筑项目的各个生命周期内,不同的参与方在不同阶段会添加模型信息,这可能会导致ifc文件过大。对于这种
4、现有的ifc文件压缩算法的压缩率低,从而导致ifc文件占用率高和数据访问效率低,以及部分压缩算法执行后存在信息丢失的情况。
技术实现思路
1、有鉴于此,有必要提供一种ifc文件压缩方法、装置、电子设备及存储介质,用以解决现有ifc文件占用率高和数据访问效率低的问题。
2、为了解决上述问题,本专利技术提供一种ifc文件压缩方法,包括:
3、基于原始ifc-spf文件,构建ifc实例引用网络图;
4、对所述实例引用网络图进行迭代简化,得到简化后的实例引用网络图;
5、对所述简化的实例引用网络图中的实例类型进行识别,将所述原始ifc-spf文件转换为ifc-hdf文件。
6、在一种可能的实现方式中,所述基于原始ifc-spf文件,构建ifc实例引用网络图,包括:
7、基于所述原始ifc-spf文件的版本,获取对应版本的ifc_schema定义;
8、基于实例标识符定位实例数据,获取所述实例数据对应的ifc实体的类型标识;
9、基于所述类型标识在所述ifc_schema定义中获取对应的类型定义;
10、基于所述类型定义,构建实例对象;
11、基于所述实例对象,构建所述ifc实例引用网络图。
12、在一种可能的实现方式中,所述基于所述实例对象,构建所述ifc实例引用网络图,包括:
13、基于所述实例对象的类型定义,定位所述实例对象的属性偏移量;
14、基于所述属性偏移量,确定所述实例对象的实例属性;
15、基于所述实例属性,在两个实例对象之间建立正向引用关系或反向引用关系;
16、基于所述正向引用关系或反向引用关系,构建所述ifc实例引用网络图。
17、在一种可能的实现方式中,所述对所述实例引用网络图进行迭代简化,得到简化后的实例引用网络图,包括:
18、遍历所述实例引用网络图,构建非冗余实例对象集合;
19、基于所述非冗余实例对象集合,得到所述简化后的实例引用网络图。
20、在一种可能的实现方式中,所述遍历所述实例引用网络图,构建非冗余实例对象集合,包括:
21、基于每个实例对象对应的哈希值,确定实例属性和实例类型相同的第一冗余实例对象;
22、从所述实例引用网络图的末端开始迭代,确定逻辑相等的第二冗余实例对象;
23、基于所述第一冗余实例对象和所述第二冗余实例对象,确定所述非冗余实例对象集合。
24、在一种可能的实现方式中,所述对所述简化的实例引用网络图中的实例类型进行识别,将所述原始ifc-spf文件转换为ifc-hdf文件,包括:
25、基于所述简化的实例引用网络图,确定实例对象的实例类型;
26、基于所述实例类型,创建对应的hdf复合类型;
27、基于所述hdf复合类型,创建对应的组和数据集;
28、遍历所述数据集,得到所述ifc-hdf文件。
29、在一种可能的实现方式中,所述遍历所述数据集,得到所述ifc-hdf文件,包括:
30、获取所述数据集对应的实例类型、hdf5复合类型和实例对象列表;
31、获取所述实例对象列表中未访问的实例对象;
32、基于所述未访问的实例对象的属性定义和hdf5复合类型定义,将所述未访问的实例对象的实例属性写入缓冲区;
33、将所述缓冲区的数据写入创建的hdf5文件中,得到所述ifc-hdf文件。
34、本专利技术还提供一种ifc文件压缩装置,包括:
35、构建模块,用于基于原始ifc-spf文件,构建ifc实例引用网络图;
36、简化模块,用于对所述实例引用网络图进行迭代简化,得到简化后的实例引用网络图;
37、转换模块,用于对所述简化的实例引用网络图中的实例类型进行识别,将所述原始ifc-spf文件转换为ifc-hdf文件。
38、另一方面,本专利技术还提供一种电子设备,包括存储器和处理器,其中,
39、所述存储器,用于存储程序;
40、所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述任意实现方式中所述的ifc文件压缩方法。
41、另一方面,本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实现方式中所述的ifc文件压缩方法。
42、本专利技术的有益效果是:本专利技术提供的ifc文件压缩方法,通过根本文档来自技高网...
【技术保护点】
1.一种IFC文件压缩方法,其特征在于,包括:
2.根据权利要求1所述的IFC文件压缩方法,其特征在于,所述基于原始IFC-SPF文件,构建IFC实例引用网络图,包括:
3.根据权利要求2所述的IFC文件压缩方法,其特征在于,所述基于所述实例对象,构建所述IFC实例引用网络图,包括:
4.根据权利要求1所述的IFC文件压缩方法,其特征在于,所述对所述实例引用网络图进行迭代简化,得到简化后的实例引用网络图,包括:
5.根据权利要求4所述的IFC文件压缩方法,其特征在于,所述遍历所述实例引用网络图,构建非冗余实例对象集合,包括:
6.根据权利要求1所述的IFC文件压缩方法,其特征在于,所述对所述简化的实例引用网络图中的实例类型进行识别,将所述原始IFC-SPF文件转换为IFC-HDF文件,包括:
7.根据权利要求6所述的IFC文件压缩方法,其特征在于,所述遍历所述数据集,得到所述IFC-HDF文件,包括:
8.一种IFC文件压缩装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的IFC文件压缩方法。
...【技术特征摘要】
1.一种ifc文件压缩方法,其特征在于,包括:
2.根据权利要求1所述的ifc文件压缩方法,其特征在于,所述基于原始ifc-spf文件,构建ifc实例引用网络图,包括:
3.根据权利要求2所述的ifc文件压缩方法,其特征在于,所述基于所述实例对象,构建所述ifc实例引用网络图,包括:
4.根据权利要求1所述的ifc文件压缩方法,其特征在于,所述对所述实例引用网络图进行迭代简化,得到简化后的实例引用网络图,包括:
5.根据权利要求4所述的ifc文件压缩方法,其特征在于,所述遍历所述实例引用网络图,构建非冗余实例对象集合,包括:
<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。