一种BIM模型数据的二进制存储格式的制作方法

文档序号:18465944发布日期:2019-08-17 02:27阅读:675来源:国知局
一种BIM模型数据的二进制存储格式的制作方法

本发明涉及建筑bim技术领域,特别涉及一种bim模型数据的二进制存储格式。



背景技术:

在revit文件的数据格式中,有的遗漏数据,如fbx;有的封闭不够开放,如ifc;有的涉及操作比较复杂的数据库,如odbcdatabase,还有一些格式数据庞大,如gbxml等;给一些需要使用其数据的用户带来不方便和效率低下。

现有的revit数据涉及大量重复模型,而模型信息数据量通常非常庞大,如何获取在保证信息完整下,数据量尽可能小的文档格式,是经常困扰用户的问题。



技术实现要素:

本发明的目的在于克服现有bim模型格式存在的不足,提出一种bim模型数据的二进制存储格式。本发明结合revit的数据标准,将模型信息中的数据提取转为二进制格式存储,用户可根据存储规则依次提取数据。

为实现上述目的,本发明的具体技术方案如下:

一种bim模型数据的二进制存储格式,包括:模型构件数量、构件基础参数、构件submesh数量、构件submesh参数、构件属性组数量、构件属性组参数、材质数量、材质基础参数、材质贴图参数、模型共享贴图;

其中,所述模型构件数量为模型中包含的所有构件的数量;

所述模型共享贴图指模型内所有构件用到的贴图都会存储在本格式数据存储的位置下的以本格式数据文档命名的文件夹中;

所述构件基础参数、构件submesh数量、构件submesh参数、构件属性组数量、构件属性组参数以模型构件数量循环存储。

优选地,所述构件基础参数包括依次连接的当前构件的id、名字、uid、专业、类别、族名、类型、楼层、房间、位置、角度、缩放值;其中,id值为int类型;名字、uid、专业、类别、族名、类型、楼层、房间的值都为string类型;位置、缩放值、角度都为连续的3个float类型。

优选地,所述构件submesh数量指构件包含的submesh数量,值为int类型。

优选地,所述构件submesh参数指submesh的组成部分,依次包含材质id、vertex数量、vertex数组、face数量、face数组、uv数量、uv数组、normal数量、normal数组;其中,材质id、vertex数量、face数量、face数组、uv数量、normal数量为int类型,其他均为float类型。

优选地,所述构件submesh参数以submesh数量循环存储,值为int类型。

优选地,所述构件属性组属相指从revit提取出的构件属性组的数量,值为int类型。

优选地,所述构件属性组参数指每个组的参数,依次包括参数数量、组名,及循环存储参数内容:参数名,参数值;参数数量为int类型,其他均为string类型。

优选地,所述材质数量指模型内的所有被使用共享材质的数量,该值为int类型。

优选地,所述材质基础参数依次包含材质id、类型、名字、透明度、平滑度、光泽度、主颜色;其中,id为int类型;类型、名字为string类型;透明度、平滑度、光泽度为float类型;主颜色为4个float类型,依次表示颜色的r、g、b、a通道值;

优选地,所述材质贴图参数依次包含

diffuse贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

bump贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

normal贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

cutout贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

emission贴图节点参数:颜色值,强度值,贴图路径,偏移值,缩放值,旋转值;

其中,强度值为0,表示本贴图节点没有贴图,其后无参数;强度值大于0表示本节点有参数,该值表示本贴图节点的贴图强度;贴图路径值为string类型,表示当前节点的贴图文件的相对路径;偏移值,缩放值,旋转值都为连续的3个float值,分别表示贴图ui在模型上的位置,大小,旋转参数。

本发明中模型的材质可以根据模型的submeshmaterialid去找对应的共享材质id。

本发明与现有数据格式相比,具有以下特点:

(1)、本发明的数据格式公开,易懂;使用者不需要阅读大量sdk或协议标准,只需要根据各种数量和参数类型就能快速将数据取出;

(2)、本发明把数据以二进制存储,节省空间;

(3)、本发明包含的revit的完整属性,精简化材质使材质数据规范,减少冗余的无效内容,同时保证数据使用简单有效,提升效率。

附图说明

图1为采用本发明二进制存储数据格式形成的mesh模型。

具体实施方式

为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。

参考表1至2,其中,表1是本发明中各数据类型的示例性展示,表2是本发明的具体数据构成展示。本发明提供一种bim模型数据的二进制存储格式,包括:模型构件数量、构件基础参数、构件submesh数量、构件submesh参数、构件属性组数量、构件属性组参数、材质数量、材质基础参数、材质贴图参数、模型共享贴图;

其中,所述模型构件数量为模型中包含的所有构件的数量;

所述模型共享贴图指模型内所有构件用到的贴图都会存储在本格式数据存储的位置下的以本格式数据文档命名的文件夹中;

所述构件基础参数、构件submesh数量、构件submesh参数、构件属性组数量、构件属性组参数以模型构件数量循环存储。

作为本发明一优选技术方案,所述构件基础参数包括依次连接的当前构件的id、名字、uid、专业、类别、族名、类型、楼层、房间、位置、角度、缩放值;其中,id值为int类型;名字、uid、专业、类别、族名、类型、楼层、房间的值都为string类型;位置、缩放值、角度都为连续的3个float类型。

作为本发明一优选技术方案,所述构件submesh数量指构件包含的submesh数量,值为int类型。

作为本发明一优选技术方案,所述构件submesh参数指submesh的组成部分,依次包含材质id、vertex数量、vertex数组、face数量、face数组、uv数量、uv数组、normal数量、normal数组;其中,材质id、vertex数量、face数量、face数组、uv数量、normal数量为int类型,其他均为float类型。

作为本发明一优选技术方案,所述构件submesh参数以submesh数量循环存储,值为int类型。

作为本发明一优选技术方案,所述构件属性组属相指从revit提取出的构件属性组的数量,值为int类型。

作为本发明一优选技术方案,所述构件属性组参数指每个组的参数,依次包括参数数量、组名,及循环存储参数内容:参数名,参数值;参数数量为int类型,其他均为string类型。

作为本发明一优选技术方案,所述材质数量指模型内的所有被使用共享材质的数量,该值为int类型。

作为本发明一优选技术方案,所述材质基础参数依次包含材质id、类型、名字、透明度、平滑度、光泽度、主颜色;其中,id为int类型;类型、名字为string类型;透明度、平滑度、光泽度为float类型;主颜色为4个float类型,依次表示颜色的r、g、b、a通道值;

作为本发明一优选技术方案,所述材质贴图参数依次包含

diffuse贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

bump贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

normal贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

cutout贴图节点参数:强度值,贴图路径,偏移值,缩放值,旋转值;

emission贴图节点参数:颜色值,强度值,贴图路径,偏移值,缩放值,旋转值;

其中,强度值为0,表示本贴图节点没有贴图,其后无参数;强度值大于0表示本节点有参数,该值表示本贴图节点的贴图强度;贴图路径值为string类型,表示当前节点的贴图文件的相对路径;偏移值,缩放值,旋转值都为连续的3个float值,分别表示贴图ui在模型上的位置,大小,旋转参数。

本发明中模型的材质可以根据模型的submeshmaterialid去找对应的共享材质id。

表1

表2

图1、表3为采用本发明二进制数据格式形成的mesh模型,由此可见,本发明的二进制数据格式涉及的数据存储量少,能高效的传输并生成所需的模型。数据格式公开,易懂;使用者不需要阅读大量sdk或协议标准,只需要根据各种数量和参数类型就能快速将数据取出;数据以二进制存储,节省空间;本发明包含的revit的完整属性,精简化材质使材质数据规范,减少冗余的无效内容,同时保证数据使用简单有效,提升效率。

表3

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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