CN116934964A - 一种ifc格式数据的轻量化转换方法及装置 - Google Patents
一种ifc格式数据的轻量化转换方法及装置 Download PDFInfo
- Publication number
- CN116934964A CN116934964A CN202310834222.2A CN202310834222A CN116934964A CN 116934964 A CN116934964 A CN 116934964A CN 202310834222 A CN202310834222 A CN 202310834222A CN 116934964 A CN116934964 A CN 116934964A
- Authority
- CN
- China
- Prior art keywords
- data
- format
- ifc
- lightweight
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000000007 visual effect Effects 0.000 claims abstract description 25
- 239000000463 material Substances 0.000 claims description 56
- 238000003491 array Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 230000000694 effects Effects 0.000 abstract description 4
- 230000006978 adaptation Effects 0.000 abstract description 3
- 238000000605 extraction Methods 0.000 description 12
- 238000012800 visualization Methods 0.000 description 12
- 238000009877 rendering Methods 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 238000011068 loading method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000013585 weight reducing agent Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种IFC格式数据的轻量化转换方法、装置、电子设备及计算机可读存储介质,所述方法包括:在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。本发明可以在获取IFC格式的BIM模型数据后,对BIM模型数据依次进行轻量化处理和格式转换处理,最后采用处理后的数据进行可视化展示,实现IFC模型在云端平台的可视化适配,同时减少传输和解析处理的数据量的效果,进而提升传输效率和处理效率。
Description
技术领域
本发明涉及云端平台数据处理的技术领域,尤其涉及一种IFC格式数据的轻量化转换方法及装置。
背景技术
IFC格式是一种用于构建建筑信息模型的开放标准格式。IFC格式的数据(例如,建筑信息模型BIM)可以用于描述建筑物的几何形状,空间关系,材料和构件,以及建筑物的功能和表现,一般只能被桌面端的BIM专业软件解析和应用。
云端平台是指运行在网页端、支持常见三维模型格式解析和可视化的云端平台,通常支持网页端的obj、stl、glTF等格式模型的解析和三维可视化,但是无法解析和可视化IFC格式的BIM模型,常见的云端平台有三和BIM基础平台、广联达的BIMFACE等。
IFC格式的数据文件中既包含有大量跨领域、跨专业的数据,也包含建筑的几何数据和非几何数据,这些数据可以被BIM专业软件解析识别,以提取建筑的几何数据,再将几何进行可视化展示,供用户查看。但是,IFC格式数据只能使用桌面端的BIM专业软件读取识别,而常规的云端平台只能识别常见的三维模型数据格式,如obj、stl、glTF等,无法直接解析和可视化IFC数据,因此云端平台对IFC格式的BIM模型的兼容性问题亟待解决;同时,IFC格式的数据因包许多非可视化必须的冗余数据,数据文件所占的存储空间较大,如果将IFC格式的数据直接用于可视化,将导致解析过程中会包含许多非必要解析的数据,例如人员、任务、进度信息等,并且由于IFC格式文件体积较大,传输与解析的耗时将大幅增加,导致加载速率慢,处理效率低,影响用户体验。
发明内容
本发明提出一种IFC格式数据的轻量化转换方法及装置,所述方法可以在获取IFC格式的BIM模型数据后,对BIM模型数据依次进行轻量化处理和格式转换处理,实现减少传输和解析处理的数据量效果,进而提升传输效率和处理效率,并将IFC格式文件转换成glTF格式的三维模型,实现云端平台对IFC格式模型的兼容。
本发明实施例的第一方面提供了一种IFC格式数据的轻量化转换方法,所述方法包括:
在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;
将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
在第一方面的一种可能的实现方式中,所述对所述BIM模型数据进行轻量化处理得到轻量化数据,包括:
从所述BIM模型数据中提取关于模型构件实体类的实体数据,并遍历所述实体数据内每个模型构件实体类得到构件信息;
当确定所述构件信息可解析且所述构件信息在对应数组未重复,则根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据。
在第一方面的一种可能的实现方式中,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为材质类的所述构件信息,得到材质特征信息;
采用所述材质特征信息生成IFC材质信息索引列表;
根据所述IFC材质信息索引列表从所述BIM模型数据提取材质数据并导入对应的暂存数组,得到轻量化数据。
在第一方面的一种可能的实现方式中,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
将模型构件实体类为几何类的所述构件信息写入预设的字节数组中,并获取所述预设的字节数组的长度;
从所述预设的字节数组中提取面与顶点数据,并根据所述面与顶点数据计算面与顶点参数,所述面与顶点参数包括面与顶点的最大值、面与顶点的最小值和顶点的offset偏移值;
将所述字节数组长度和面与顶点参数导入所述构件信息对应的暂存数组内,得到轻量化数据。
在第一方面的一种可能的实现方式中,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为属性类的所述构件信息,得到属性特征信息,所述属性特征信息包括:简单属性信息和复杂属性信息;
通过所述属性特征信息的属性集名称从所述BIM模型数据中获取对应的属性参数,并将所述属性值与所述构件信息建立关联;
所述属性参数导入所述构件信息对应的暂存数组内得到轻量化数据。
在第一方面的一种可能的实现方式中,所述简化格式为glTF格式,所述将所述轻量化数据转换为简化格式的转换数据,包括:
根据glTF格式的数据结构框架创建定义参数,每个所述定义参数对应一种模型构件实体类;
从所述暂存数组中提取每个模型构件实体类对应的轻量化数据;
将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据。
在第一方面的一种可能的实现方式中,在所述将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据的步骤后,所述方法还包括:
从所述BIM模型数据中提取关于实体构件的点和面字节数组并转换为BIN格式的资源文件,并将glTF格式的文件和所述资源文件合并为GLB格式的文件,采用所述GLB格式的文件进行可视化展示。
本发明实施例的第二方面提供了一种IFC格式数据的轻量化转换装置,所述装置包括:
轻量化处理模块,用于在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;
格式转换模块,用于将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
相比于现有技术,本发明实施例提供的一种IFC格式数据的轻量化转换方法及装置,其有益效果在于:本发明可以在获取IFC格式的BIM模型数据后,对BIM模型数据依次进行轻量化处理和格式转换处理,最后采用处理后的数据进行可视化展示,实现IFC模型在云端平台的可视化适配,同时实现减少传输和解析处理的数据量的效果,进而提升传输效率和处理效率。
附图说明
图1是本发明一实施例提供的一种IFC格式数据的轻量化转换方法的流程示意图;
图2是本发明一实施例提供的数据轻量化处理的操作流程图;
图3是本发明一实施例提供的glTF格式的数据结构框架图;
图4是本发明一实施例提供的格式转换的操作流程图;
图5是本发明一实施例提供的三维可视化的操作流程图;
图6是本发明一实施例提供的一种IFC格式数据的轻量化转换方法的操作流程图;
图7是本发明一实施例提供的一种IFC格式数据的轻量化转换装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述问题,下面将通过以下具体的实施例对本申请实施例提供的一种IFC格式数据的轻量化转换方法进行详细介绍和说明。
参照图1,示出了本发明一实施例提供的一种IFC格式数据的轻量化转换方法的流程示意图。
在一实施例中,所述方法适用于云端平台,该云端平台兼容常见的三维模型格式(如obj、stl、glTF等),并支持模型的三维可视化。
在一实施例中,云端平台具备网页端的图形渲染能力,以及常见三维格式模型的解析能力,此类平台大多可以解析glTF并进行三维可视化,但通常不能解析和可视化IFC格式模型。本发明的云端平台是采用ThreeJS为底层框架的三维图形引擎,支持的三维模型格式为glTF/GLB。本发明的IFC格式数据的轻量化转换方法可以使云端平台解析和可视化IFC格式数据模型,基本原理即为将IFC格式数据轻量化转换为glTF/GLB格式数据。
其中,作为示例的,所述IFC格式数据的轻量化转换方法,可以包括:
S11、在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据。
在一实施例中,用户可以在云端平台上传IFC格式的BIM模型数据。具体地,用户在利用BIM专业建模软件构建BIM模型后,可以通过BIM专业建模软件导出IFC格式的BIM模型,并上传到云端平台上进行处理。
通常,一些专业软件如Revit、Bently、Catia等都可以导出IFC格式的BIM模型。
在获取IFC格式的BIM模型数据后,对BIM模型数据进行轻量化处理得到轻量化数据。该轻量化处理可以是数据提取处理,从BIM模型数据中提取一些可视化所需要的数据,剔除BIM模型数据所包含的许多与三维可视化展示不相关数据(例如,大量跨领域、跨专业的数据等),从而大大减少后续传输的数据量,也可以减少可视化处理时解析所处理的耗时,进而能提升处理的效率。
参照图2,示出了本发明一实施例提供的数据轻量化处理的操作流程图。
由于BIM模型数据包含了不同模型构件的数据,为了针对每一种模型构件的数据进行轻量化处理,在一可选的实施例中,步骤S11可以包括以下子步骤:
S111、从所述BIM模型数据中提取关于模型构件实体类的实体数据,并遍历所述实体数据内每个模型构件实体类得到构件信息。
在一实施例中,可以先初始化BIM模型数据中部分固定的模型参数。该方法需要首先初始化部分glTF开源库所需固定模型必要参数(如Asset、Scene)。其中,部分固定的模型参数可以是固定模型必要参数,譬如model.asset=Asset(version='2.0')、model.scene=0等基本不变的参数。
接着,可以获取BIM模型数据内模型所有构件实体类,得到实体数据。
在具体实现时,可以使用Python语言开源的IfcOpenShell库,利用ifc_file.by_type方法来获取BIM模型数据的相应构件实体类。
在一实施例中,所述实体数据包含的模型构件实体类可以包括三类对象,分别为:材质类(IfcMaterial)、几何类(IfcProduct)和属性类(IfcProperty)。提取实体数据的操作方式如下:例如,提取几何类(IfcProduct),可以利用ifc_file.by_type('IfcProduct')方法获取空间元素和物理构造元素。其中,空间元素包括IfcSite、IfcBuilding、IfcBuildingStorey、IfcSpace等;物理构造元素包括IfcWall、IfcBeam、IfcDoor、IfcWindow、IfcStair等。
由于每个模型构件实体类均包含多种元素和数据,可以对其进行遍历,得到每个模型构件实体类对应的构件信息,以实现IFC构件的实体类数据的轻量化提取。
具体地,可以先对模型构件实体类包含的数据进行解析,在解析过程中,需要通过递归遍历IFC文件的各个实体对象。譬如,针对几何类(IfcProduct)这一对象的空间元素IfcBuilding的提取,IfcBuilding内部有verts顶点信息、faces面信息等,后续提取的几何信息就是这些内容。需要说明的是,遍历的是对每个模型构件实体类的对象内部的每个元素,从而提取得到相应的构件信息。
S112、当确定所述构件信息可解析且所述构件信息在对应数组未重复,则根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据。
为保证轻量化,在本实施例中,可以确定每个模型构件实体类的构件信息是否可以解析,若可以解析,可以将每个加载完毕的构件信息及其子类的元素等数据导入数组,并检测当前遍历子类是否在其当前数组有重复。
因为在遍历时,可能会有子类也包含子集的情况,因此需要使用递归方法重复调用遍历该子类的子类。当确定构件信息可以解析同时构件信息及其子类的元素或子集均在其对应数组内未重复,则确定遍历完毕,可以根据构件信息所包含的各个元素在BIM模型数据中提取相应的数据并导入暂存数组,从而得到轻量化数据。
参照图2,示出了本发明一实施例提供的数据轻量化处理的操作流程图。在一实施例中,模型构件实体类包括:材质类(IfcMaterial)、几何类(IfcProduct)和属性类(IfcProperty)。
其中,作为示例的,对于材质类(IfcMaterial)数据的轻量化提取的操作可以包括以下子步骤:
S21、解析模型构件实体类为材质类的所述构件信息,得到材质特征信息。
S22、采用所述材质特征信息生成IFC材质信息索引列表。
S23、根据所述IFC材质信息索引列表从所述BIM模型数据提取材质数据并导入对应的暂存数组,得到轻量化数据。
具体地,为了提取材质类(IfcMaterial)的轻量化数据,需要获取当前IFC格式的BIM模型文件(后续简称IFC文件)中所有材质信息的索引列表,可以使用ifc_file.by_type方法获取当前IFC格式的BIM模型文件中所有材质信息的索引列表,该方法为Ifcopenshell对IFC文件的解析方法,具体使用命令ifc_file.by_type('IfcMaterial')。此方式可以是本领域提取IFC文件的常规手段。
该方法可以遍历IFC文件中的所有IfcMaterial对象,并返回一个包含这些对象的列表。接着,从列表中提取出每个材质对象的索引,并将其存储在一个索引列表中,该索引列表即glTF文件数据结构中的materials节点,以键名如name、pbrMetallicRoughness的字典数组的形式保存。
在提取几何类的构件信息时,云端平台可以使用获取的材质索引号来查找materials节点对应当前构件的材质信息。云端平台可以将当前构件的材质信息记录为其材质样式。这样,在后续的操作中,就可以根据构件的材质样式来对其进行相应的处理。
其中,作为示例的,对于几何类(IfcProduct)数据的轻量化提取的操作可以包括以下子步骤:
S31、将模型构件实体类为几何类的所述构件信息写入预设的字节数组中,并获取所述预设的字节数组的长度。
S32、从所述预设的字节数组中提取面与顶点数据,并根据所述面与顶点数据计算面与顶点参数,所述面与顶点参数包括面与顶点的最大值、面与顶点的最小值和顶点的offset偏移值。
S33、将所述字节数组长度和面与顶点参数导入所述构件信息对应的暂存数组内,得到轻量化数据。
具体地,为了提取几何类的轻量化数据,需要生成IFC格式的BIM模型文件(后续简称IFC文件)中构件的三角面网格数据,可以使用IfcOpenShell库中的geom.create_shape方法。具体可以通过调用该方法遍历IFC文件中的所有IfcProduct对象初步提取的几何数据。由于不同构件的几何信息可能是由多个子类组成的,需要对每个子类分别调用geom.create_shape方法,提取相关构件顶点和三角面信息,并计算三角面与顶点的最大值与最小值,生成当前点的offset偏移值及字节数组大小长度。这些参数是glTF数据结构中model类内部Accessor所需的参数,用于描述模型的几何信息。同时,还需要提取对应的材质索引编号,需要将编号与材质信息列表一一对应获取当前构件材质信息。
需要说明的是,虽然在先步骤已提取了材质信息,但提取的材质信息为当前构件的全部材质信息,与模型任意单个几何材质并未建立联系;此处获取单个几何信息包括对应材质编号,利用该编号可与在先步骤已提取了的当前构件的全部材质信息建立与当前单个几何信息的联系。
具体地,可以在glTF数据结构的Mesh节点下的primitives键值设置其attributes属性(内部键名如TEXCOORD_0,设置纹理坐标)、material属性(直接设置属性值,即材质信息索引号))。
为了实现这一点,在之前的步骤已经使用ifc_file.by_type方法获取了IFC文件中所有材质信息的索引列表。也可以使用这个索引列表来查找当前构件的材质信息,并记录为当前构件的材质样式。这些材质信息是glTF数据结构中Mesh类内部material所需的参数,用于描述模型的材质信息。
其中,作为示例的,对于属性类(IfcProperty)数据的轻量化提取的操作可以包括以下子步骤:
S41、解析模型构件实体类为属性类的所述构件信息,得到属性特征信息,所述属性特征信息包括:简单属性信息和复杂属性信息。
S42、通过所述属性特征信息的属性集名称从所述BIM模型数据中获取对应的属性参数,并将所述属性值与所述构件信息建立关联。
S43、所述属性参数导入所述构件信息对应的暂存数组内得到轻量化数据。
具体地,为了提取属性数据的轻量化数据。需要提取IFC文件中的属性信息,需要使用命令ifc_file.by_type('IfcProduct'),并遍历IfcProductIFC文件内部的每个元素以获取ifc文件中的所有实体。利用ifc_entity.is_a()命令判断实体是否为指定类型的构件类,可以筛选出如IfcRailing、IfcSpace、IfcStairFlight、IfcWall等的构件类,并将符合条件的实体筛选出来。
接着再次对筛选出的每个构件类使用ifc_file.by_type命令,将返回值赋值为elements。遍历elements内部的每个元素,利用ifc_entity.get_info()得到该构件类的每个实体构件id的各种属性根据属性集名称和属性类型来查找对应的属性值。
其中,获取属性集名称和属性类型的方式如下:具体可以使用命令ifc_file.by_type('IfcProduct'),遍历内部的每个元素,利用is_a()命令筛选出如IfcRailing、IfcSpace、IfcStairFlight、IfcWall等的构件类,再次对每个构件类使用ifc_file.by_type命令,将返回值赋值为elements。遍历elements内部的每个元素,利用get_info()得到该构件类的每个构件id的各种属性信息,这里获得的是简单属性信息。随后检查elements是否有IsDefinedBy属性,如有则遍历每个IsDefinedBy属性。检查是否是IfcRelDefinesByProperties或IfcRelDefinesByType实例,若不是则获取RelatingType属性,检查是否是IfcTypeObject实例,若是则获取HasPropertySets属性,并遍历每个IfcPropertySet实例,遍历其中的IfcPropertySingleValue,获取Name和NominalValue属性,即这里获取了该构件的复杂属性。在前面检查是否是IfcRelDefinesByProperties或IfcRelDefinesByType实例,若是则获取RelatingPropertyDefinition属性,获取HasProperties属性,最终以相同的步骤获取Name和NominalValue属性,这里同样也获取了该构件的复杂属性。执行完以上遍历,获得IFC文件内所有属性信息后最后,程序将这些属性信息与相应的构件建立联系,并将其按构件类赋值记录为glTF数据结构中Nodenodes节点Extras类相应的构件。
在本实施例中,在执行上述的轻量化操作后,可以得到所需的各种轻量化参数。为了分别存储不同类的轻量化数据,可以使用键名如name、mesh、extras等的字典数组作为预设的暂存数组,然后以字典数组的形式保存(例如,name作为构件属性名、mesh定位对应构件、extras保存更多属性信息)。这些属性信息可以方便后续的处理和应用。
最后,可以对以上相关信息存入数组,在后续遍历完成后返回数组作为IFC数据轻量化提取结果。
S12、将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
在完成轻量化提取后,为了方便后续传输以及简化后续解析操作的程序,可以对当前IFC格式的轻量化数据进行格式转换,形成转换数据。该简化格式可以是glTF格式或GLB格式,具体可以根据实际需要进行调整。
参照图3-4,分别示出了本发明一实施例提供的glTF格式的数据结构框架图和本发明一实施例提供的格式转换的操作流程图。
在其中一种的实施例中,所述简化格式为glTF格式,在获得IFC数据轻量化提取结果后,需要将轻量化提取结果填充为glTF文件。为了实现IFC数据轻量化提取结果填充到glTF文件中,以使轻量化数据转换为glTF格式的转换数据,其中,作为示例的,步骤S13可以包括以下子步骤:
S131、根据glTF格式的数据结构框架创建定义参数,每个所述定义参数对应一种模型构件实体类。
S122、从所述暂存数组中提取每个模型构件实体类对应的轻量化数据。
S123、将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据。
如图3所示,glTF数据结构包括Asset(包含glTF文件的版本信息、生成工具和其他元数据)、Scene(包含一个或多个节点Node,定义了场景中的层次结构)、Node(表示场景中的一个物体,可以包含几何、材质、相机、灯光等组件,也可以包含其他节点,形成层次结构)、Mesh(表示一个几何体,由一个或多个Primitive组成)、Primitive(表示一个几何体的单个图元,可以是三角形、线段或点等,包含顶点、法线、纹理坐标等数据)、Material(表示一个材质,包含着色器、纹理、颜色等属性)、Texture(表示纹理图像,可以是2D或3D的)、Animation(表示动画,包含关键帧、插值方式、动画目标等信息)等。
glTF的数据结构相对简单,易于处理和传输,是一种非常方便的3D数据交换格式。
具体地,本发明的格式转换操作具体如下:
第一、从IFC格式的轻量化数据中取出对应数据。具体可以由程序根据当前构件数据,从IFC数据轻量化提取结果中取出对应存储数据。
第二、动态创建glTF参数。根据IFC文件结构,创建对应glTF参数,下面是这些参数的具体设置方法:
创建材质参数。创建Mesh参数,可以使用material、texture、image等对应值来填充。这些参数可以描述模型的颜色、纹理等视觉效果。
创建几何参数。创建Accessor,使用BufferView、byteOffset、componentType、count、min、max等对应值来填充。Accessor可以描述模型的顶点数据、法线数据等几何信息。接下来需要创建BufferView,使用byteLength、target等对应值来填充。BufferView可以描述模型的数据存储方式、数据类型等信息。最后,在Mesh参数内部使用Primitive对应值来填充。Primitive可以描述模型的绘制方式、顶点索引等信息。
创建属性参数。除了材质和几何参数外,还需要设置属性参数。可以使用Extras参数来导入模型的其他属性值。Extras可以存储模型的建筑数字化信息,方便后续管理和使用。
第三、写出资源文件。程序利用字节数组vertex_bytearray,使用FileResource方法将资源文件写出,生成vertices.bin文件,该文件包含了glTF文件的所有详细数据,从而得到glTF格式的文件得到转换数据。
在一实施例中,为了进一步减少后续格式处理的步骤,可以将IFC格式的轻量化数据进行格式转换,得到GLB格式的数据或文件。其中,作为示例的,其中,作为示例的,步骤S13可以包括以下子步骤:
S124、从所述BIM模型数据中提取关于实体构件的点和面字节数组并转换为BIN格式的资源文件,并将glTF格式的文件和所述资源文件合并为GLB格式的文件,采用所述GLB格式的文件进行可视化展示。
在转换成资源文件的步骤中,云端平台可以利用字节数组vertex_bytearray,使用FileResource方法将资源文件写出,生成vertices.bin文件,该文件包含了glTF文件的所有详细数据,从而得到glTF格式的文件得到转换数据。
需要说明的是,BIN文件和glTF文件是放在一起的,前者为数据文件,后者为结构文件;两者一起导入云端平台方可成功加载模型。
GLB文件则是将BIN文件与glTF文件合并生成的二进制文件,是一个完整的模型文件;这一个单独导入云端平台即可成功加载模型。
在一实施例中,可以在步骤S123的基础上,再执行步骤S124。
具体地,将glTF文件与配置文件BIN合并输出的二进制文件,体积更小,更契合计算机底层解析要求,因此可以方便地用于云端平台传输模型。
在完成glTF文件的数据处理后,可以使用glTF.export方法分别导出glTF格式的文件和GLB格式的文件。
在一实施例中,三维可视化展示的操作可以采用glTF格式的转换数据或GLB格式的转换数据进行三维可视化展示的处理,具体采用哪一种格式可以根据实际需要选择。
参照图5,示出了本发明一实施例提供的三维可视化的操作流程图。
具体地,可以将服务端填充后生成的glTF文件或GLB文件传输至云端平台。用户通过客户端网络加载后,对应glTF模型文件将由云端平台的三维图形引擎解析渲染,最终实现IFC格式的BIM模型在云端平台的在线可视化浏览。
参照图6,示出了本发明一实施例提供的一种IFC格式数据的轻量化转换方法的操作流程图。
具体地,IFC格式数据的轻量化转换方法可以包括以下操作步骤:
第一步、上传IFC格式BIM模型。
第二步、IFC格式数据轻量化提取。
第三步、提取数据填充为glTF文件。
第四步、三维可视化渲染。
本发明可以解决常见云端平台无法解析和可视化IFC格式BIM模型的问题。通过将IFC转换为glTF格式模型,常见云端平台可以通过解析转换后的glTF模型实现IFC格式BIM模型在网页端的三维可视化,解决了兼容性问题。
本发明可以减小三维模型大小。针对IFC格式文件体积较大问题,本专利对IFC模型进行轻量化处理,并填充到glTF文件内,有效优化了三维模型体积大的问题。
本发明可以提高三维模型渲染效率。针对IFC格式进行可视化渲染需另外转编译,降低了云端平台渲染三维模型的效率的问题,本专利通过将IFC转换为glTF格式,不仅解决了三维模型体积大的问题,还可以更有效地提高云端平台渲染三维模型的效率。glTF格式是一种更适合三维模型可视化展示的规范格式,可视化渲染不需要另外编译,原生支持显示渲染。
本发明可以提高云端平台加载速度。通过将IFC转换为glTF格式,可以更有效地存储和传输3D模型。云端平台主要通过网络进行传输,模型大小对云端平台下载数据有较大影响,渲染效率对云端平台加载速度有较大影响。本专利通过将IFC格式轻量化处理后转换为glTF格式,优化了三维模型大小及渲染效率,提高了云端平台的加载速度。
在本实施例中,本发明实施例提供了一种IFC格式数据的轻量化转换方法,其有益效果在于:本发明可以在获取IFC格式的BIM模型数据后,对BIM模型数据依次进行轻量化处理和格式转换处理,最后采用处理后的数据进行可视化展示,实现IFC模型在云端平台的可视化适配,同时可减少传输和解析处理的数据量的效果,进而提升传输效率和处理效率。
本发明实施例还提供了一种IFC格式数据的轻量化转换装置,参见图7,示出了本发明一实施例提供的一种IFC格式数据的轻量化转换装置的结构示意图。
其中,作为示例的,所述IFC格式数据的轻量化转换装置可以包括:
轻量化处理模块701,用于在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;
格式转换模块702,用于将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
可选地,所述对所述BIM模型数据进行轻量化处理得到轻量化数据,包括:
从所述BIM模型数据中提取关于模型构件实体类的实体数据,并遍历所述实体数据内每个模型构件实体类得到构件信息;
当确定所述构件信息可解析且所述构件信息在对应数组未重复,则根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据。
可选地,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为材质类的所述构件信息,得到材质特征信息;
采用所述材质特征信息生成IFC材质信息索引列表;
根据所述IFC材质信息索引列表从所述BIM模型数据提取材质数据并导入对应的暂存数组,得到轻量化数据。
可选地,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
将模型构件实体类为几何类的所述构件信息写入预设的字节数组中,并获取所述预设的字节数组的长度;
从所述预设的字节数组中提取面与顶点数据,并根据所述面与顶点数据计算面与顶点参数,所述面与顶点参数包括面与顶点的最大值、面与顶点的最小值和顶点的offset偏移值;
将所述字节数组长度和面与顶点参数导入所述构件信息对应的暂存数组内,得到轻量化数据。
可选地,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为属性类的所述构件信息,得到属性特征信息,所述属性特征信息包括:简单属性信息和复杂属性信息;
通过所述属性特征信息的属性集名称从所述BIM模型数据中获取对应的属性参数,并将所述属性值与所述构件信息建立关联;
所述属性参数导入所述构件信息对应的暂存数组内得到轻量化数据。
可选地,所述简化格式为glTF格式,所述将所述轻量化数据转换为简化格式的转换数据,包括:
根据glTF格式的数据结构框架创建定义参数,每个所述定义参数对应一种模型构件实体类;
从所述暂存数组中提取每个模型构件实体类对应的轻量化数据;
将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据。
可选地,在所述将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据的步骤后,所述方法还包括:
从所述BIM模型数据中提取关于实体构件的点和面字节数组并转换为BIN格式的资源文件,并将glTF格式的文件和所述资源文件合并为GLB格式的文件,采用所述GLB格式的文件进行可视化展示。
所属技术领域的技术人员可以清楚地了解到,为方便的描述和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步的,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的IFC格式数据的轻量化转换方法。
进一步的,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如上述实施例所述的IFC格式数据的轻量化转换方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种IFC格式数据的轻量化转换方法,其特征在于,所述方法包括:
在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;
将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
2.根据权利要求1所述的IFC格式数据的轻量化转换方法,其特征在于,所述对所述BIM模型数据进行轻量化处理得到轻量化数据,包括:
从所述BIM模型数据中提取关于模型构件实体类的实体数据,并遍历所述实体数据内每个模型构件实体类得到构件信息;
当确定所述构件信息可解析且所述构件信息在对应数组未重复,则根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据。
3.根据权利要求2所述的IFC格式数据的轻量化转换方法,其特征在于,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为材质类的所述构件信息,得到材质特征信息;
采用所述材质特征信息生成IFC材质信息索引列表;
根据所述IFC材质信息索引列表从所述BIM模型数据提取材质数据并导入对应的暂存数组,得到轻量化数据。
4.根据权利要求2所述的IFC格式数据的轻量化转换方法,其特征在于,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
将模型构件实体类为几何类的所述构件信息写入预设的字节数组中,并获取所述预设的字节数组的长度;
从所述预设的字节数组中提取面与顶点数据,并根据所述面与顶点数据计算面与顶点参数,所述面与顶点参数包括面与顶点的最大值、面与顶点的最小值和顶点的offset偏移值;
将所述字节数组长度和面与顶点参数导入所述构件信息对应的暂存数组内,得到轻量化数据。
5.根据权利要求2所述的IFC格式数据的轻量化转换方法,其特征在于,所述根据所述构件信息从所述BIM模型数据中提取数据并导入暂存数组,得到轻量化数据,包括:
解析模型构件实体类为属性类的所述构件信息,得到属性特征信息,所述属性特征信息包括:简单属性信息和复杂属性信息;
通过所述属性特征信息的属性集名称从所述BIM模型数据中获取对应的属性参数,并将所述属性值与所述构件信息建立关联;
所述属性参数导入所述构件信息对应的暂存数组内得到轻量化数据。
6.根据权利要求2所述的IFC格式数据的轻量化转换方法,其特征在于,所述简化格式为glTF格式,所述将所述轻量化数据转换为简化格式的转换数据,包括:
根据glTF格式的数据结构框架创建定义参数,每个所述定义参数对应一种模型构件实体类;
从所述暂存数组中提取每个模型构件实体类对应的轻量化数据;
将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据。
7.根据权利要求6所述的IFC格式数据的轻量化转换方法,其特征在于,在所述将所述轻量化数据的数值添加至对应的定义参数并导出为glTF格式的文件得到转换数据的步骤后,所述方法还包括:
从所述BIM模型数据中提取关于实体构件的点和面字节数组并转换为BIN格式的资源文件,并将glTF格式的文件和所述资源文件合并为GLB格式的文件,采用所述GLB格式的文件进行可视化展示。
8.一种IFC格式数据的轻量化转换装置,其特征在于,所述装置包括:
轻量化处理模块,用于在获取IFC格式的BIM模型数据后,对所述BIM模型数据进行轻量化处理得到轻量化数据;
格式转换模块,用于将所述轻量化数据转换为简化格式的转换数据,以供云端平台进行三维可视化展示。
9.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的IFC格式数据的轻量化转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如权利要求1-7任意一项所述的IFC格式数据的轻量化转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310834222.2A CN116934964A (zh) | 2023-07-07 | 2023-07-07 | 一种ifc格式数据的轻量化转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310834222.2A CN116934964A (zh) | 2023-07-07 | 2023-07-07 | 一种ifc格式数据的轻量化转换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116934964A true CN116934964A (zh) | 2023-10-24 |
Family
ID=88374935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310834222.2A Pending CN116934964A (zh) | 2023-07-07 | 2023-07-07 | 一种ifc格式数据的轻量化转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116934964A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465481B1 (ko) * | 2013-12-23 | 2014-12-10 | 한국건설기술연구원 | Bim 데이터 포맷변환을 위한 bim데이터 처리 시스템 |
CN108647330A (zh) * | 2018-05-11 | 2018-10-12 | 厦门海迈科技股份有限公司 | 一种基于bim模型文件的3d轻量化转换方法 |
CN109783442A (zh) * | 2018-12-25 | 2019-05-21 | 武汉思路富邦工程咨询有限公司 | 一种基于Redis和Mongodb的IFC模型存储方式 |
CN110414148A (zh) * | 2019-07-30 | 2019-11-05 | 中北大学 | 基于WebGL的开放式BIM跨平台在线可视化方法 |
CN110489692A (zh) * | 2019-07-19 | 2019-11-22 | 厦门海迈科技股份有限公司 | 一种基于WebGL实例化技术构件级操作的实现方法及系统 |
CN113486416A (zh) * | 2021-05-25 | 2021-10-08 | 厦门海迈科技股份有限公司 | 一种3d建筑楼层分层的实现方法 |
CN114707215A (zh) * | 2022-03-31 | 2022-07-05 | 启迪设计集团股份有限公司 | 一种基于场景定制的bim模型轻量化方法 |
CN115601523A (zh) * | 2022-10-27 | 2023-01-13 | 交叉信息核心技术研究院(西安)有限公司(Cn) | 建筑信息模型轻量化处理方法、系统、设备及存储介质 |
-
2023
- 2023-07-07 CN CN202310834222.2A patent/CN116934964A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465481B1 (ko) * | 2013-12-23 | 2014-12-10 | 한국건설기술연구원 | Bim 데이터 포맷변환을 위한 bim데이터 처리 시스템 |
CN108647330A (zh) * | 2018-05-11 | 2018-10-12 | 厦门海迈科技股份有限公司 | 一种基于bim模型文件的3d轻量化转换方法 |
CN109783442A (zh) * | 2018-12-25 | 2019-05-21 | 武汉思路富邦工程咨询有限公司 | 一种基于Redis和Mongodb的IFC模型存储方式 |
CN110489692A (zh) * | 2019-07-19 | 2019-11-22 | 厦门海迈科技股份有限公司 | 一种基于WebGL实例化技术构件级操作的实现方法及系统 |
CN110414148A (zh) * | 2019-07-30 | 2019-11-05 | 中北大学 | 基于WebGL的开放式BIM跨平台在线可视化方法 |
CN113486416A (zh) * | 2021-05-25 | 2021-10-08 | 厦门海迈科技股份有限公司 | 一种3d建筑楼层分层的实现方法 |
CN114707215A (zh) * | 2022-03-31 | 2022-07-05 | 启迪设计集团股份有限公司 | 一种基于场景定制的bim模型轻量化方法 |
CN115601523A (zh) * | 2022-10-27 | 2023-01-13 | 交叉信息核心技术研究院(西安)有限公司(Cn) | 建筑信息模型轻量化处理方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108710739B (zh) | 一种建筑信息模型轻量化和三维场景可视化的方法及系统 | |
Ahrens et al. | An image-based approach to extreme scale in situ visualization and analysis | |
CN107506517A (zh) | 建筑模型显示、数据处理方法、装置、介质、设备和系统 | |
US10417924B2 (en) | Visual work instructions for assembling product | |
CN115033968B (zh) | 一种bim项目多用户协作管理方法、系统、终端及存储介质 | |
CN114417064A (zh) | 数据处理方法、装置、计算机设备、存储介质 | |
Guan et al. | Voxel-based quadrilateral mesh generation from point cloud | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
Nan | Easy3D: a lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data | |
CN116401332A (zh) | 一种大规模三维模型展示优化方法、系统及电子设备 | |
CN109063223B (zh) | Bim模型的轻量化方法和装置以及bim模型的处理方法和系统 | |
Arbelaiz et al. | X3DOM volume rendering component for web content developers | |
CN116934964A (zh) | 一种ifc格式数据的轻量化转换方法及装置 | |
CN114461959A (zh) | Bim数据的web端在线显示方法、装置及电子设备 | |
Diez et al. | 3D model management for e-commerce | |
CN115658056A (zh) | 一种基于图片的前端vue代码自动生成方法和系统 | |
GB2617412A (en) | Image tracing system and method | |
Lee et al. | Generative early architectural visualizations: incorporating architect’s style-trained models | |
Xu | Construction of a Responsive Web Service for Smooth Rendering of Large SSC Dataset: and the Corresponding Preprocessor for Source Data | |
CN118133570B (zh) | 项目的创建方法、存储介质、电子设备及程序产品 | |
de Haan | Scalable visualization of massive point clouds | |
Liu et al. | An OGC TrainingDML-AI approach for making EO training datasets ready in deep learning frameworks | |
Zellmann et al. | Volkit: A Performance-Portable Computer Vision Library for 3D Volumetric Data | |
CN117272495B (zh) | 一种图像及数据组织、融合加载和展示方法及系统 | |
US20230274040A1 (en) | Modeling shapes using differentiable signed distance functions |
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 |