从rvt格式到b3d格式的转换方法及其插件和系统与流程

文档序号:36162383发布日期:2023-11-23 11:00阅读:70来源:国知局
从

本发明涉及建筑信息处理,特别是一种从rvt格式到b3d格式的转换方法及其插件和系统。


背景技术:

1、建筑信息模型bim是指在计算机中对建筑及其设施的物理和功能特性的数字化表达,在建筑工程全生命期内提供共享的信息资源,并为各种决策提供基础信息的技术,在建筑业广泛使用。

2、大型建筑bim模型包含的构建数以万计,模型文件体积巨大,主要包括两方面的信息:几何模型信息和bim属性信息,以bim模型格式为主,包括.rvt、.dgn、fbx、obj、step等,rvt格式是美国欧特克公司开发的revit软件的内部封闭格式,在建筑工程领域应用广泛,只能使用revit软件才能打开,无法实现数据互通互融,无法通过网页在线应用;b3d格式是一种开放的建筑数字孪生格式,具有文件体积小、存储速度快、传输性能好、绘制效率高、扩展性强、支持增量传输、虚实结合等特点,适合开发建筑数字孪生应用。

3、因此,需要一种能将rvt格式模型完整无误地转换成用b3d表示的数字孪生格式的方法。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种从rvt格式到b3d格式的转换方法及其插件和系统,该方法能将rvt格式模型转换成用b3d表示的数字孪生格式。

2、为达到上述目的,本发明提供如下技术方案:

3、本发明提供的从rvt格式到b3d格式的转换方法,包括以下步骤:

4、构造b3dexportcontext对象;

5、获取待转换的rvt格式文件;

6、确定rvt格式文件中需要导出的数据;

7、获取rvt格式文件中的场景元数据并按照b3d格式转换后导出;

8、获取待转换的rvt格式文件中的核心数据并按照b3d格式转换后导出;

9、获取待转换的rvt格式文件的生成资产列表并按照b3d格式转换后导出;

10、将导出的b3d格式的数据进行压缩并完成文件格式转换过程。

11、进一步,所述核心数据包括图形数据和bim属性;所述图形数据包括相机数据、灯光数据、几何数据、材质数据、纹理数据、片段数据中的任一项或任意组成;所述bim属性包括基础属性、族属性、实例属性。

12、进一步,所述资产列表包括id、类型、路径和大小信息。

13、进一步,所述场景元数据包括guid、local属性、doublesidedgeometry属性、导航属性、包围盒、参考坐标系、单位、视图变换模式、默认相机编号、gis位置参考点、光照贴图、自定义属性中任一项或多项组合;

14、所述guid通过自定义一个字符串类型的属性存储生成的guid,并直接从这个属性中读取,实现guid的获取和转换。

15、进一步,所述图形数据中的相机数据按照以下步骤进行格式转化:

16、配置对应视图的相机列表,遍历不同视图,分别调用每个视图的getorientation方法获取每个视图的相机数据,形成相机定义列表;

17、或

18、所述图形数据中的灯光数据按照以下步骤进行格式转化:

19、在imodelexportcontext的onlight接口中,获取每个灯光数据,形成灯光定义列表;

20、对每个灯光,通过lightnode类型的node参数,调用gettransform方法可以获取其局部变换,得到其位置和方向信息;

21、根据当前的elementid,获取到lighttype对象;

22、调用getinitialcolor获取灯光颜色,调用getinitialintensity获取灯光强度,调用getlightdistribution得到灯光的类型和分布参数,

23、通过oninstancebegin接口获取灯光的实例列表,通过instancenode类型的node,获取该实例的变换。

24、进一步,所述图形数据中的几何数据按照以下步骤进行格式转化:

25、将一对onelementbegin和onelementend之间的所有几何数据组合成一个网格,网格数据在onpolymesh中获取,形成几何数据;

26、在onpolymesh中,通过polymeshtopology类型的node参数,获取到网格的面片数、顶点数、纹理坐标数、法向量数,根据上述不同分量的数量和法向分布类型,获取网格的顶点坐标列表、法向量列表、纹理坐标列表;

27、使用几何哈希算法给每个结合体生成一个哈希值,通过该哈希值找到几何形状相同的构件,实现几何重用;

28、几何哈希算法首先构造一个编码字符串,字符串包括包围盒尺寸、中心点位置、材质索引、每个面的信息、每条边的信息,然后对该编码字符串取哈希。

29、进一步,所述bim属性中的族属性或实例属性按照以下步骤进行格式转化:

30、第一种是包括扩展属性,通过element的parameters属性集合,遍历该集合,对于每个parameter,属性名通过该对象的definition的name属性的intern()方法获取,其目录则通过该对象的definition的parametergroup属性的getlabel()方法获取,其值需要根据不同的存储类型使用不同的方法获取;

31、第二种是不需要包含扩展属性,通过element的getorderedparameters()或者parametersmap属性,获取到参数集合,然后遍历该集合,对于内置属性,则先遍历用户设置的需要获取的内置参数名称,通过element的get_parameter()方法获取到内置属性对应的参数,得到参数后,采用和第一种情况同样的方法即可获取参数对应的属性名称、目录和值。

32、本发明还提供了一种插件,通过插件的形式集成于revit软件中,所述插件基于revitsdk的imodelexportcontext接口,按照上述方法将r将rvt格式文件中的场景元数据、核心数据、资产列表信息一对一的映射至b3d格式,并通过唯一id对构件进行标记。

33、进一步,所述场景元数据包括文档的guid、local属性、doublesidedgeometry属性、导航属性、包围盒、参考坐标系、单位、视图变换模式、默认相机编号、gis位置参考点、光照贴图、自定义属性中的任一项或多项组合。

34、本发明从rvt格式到b3d格式的转换系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

35、本发明的有益效果在于:

36、本发明提供的从rvt格式到b3d格式的转换方法及其插件和系统,该方法通过b3dexportcontext对象;获取待转换的rvt格式文件,依次将rvt格式文件中的准备开始导出文件中的数据内容;从rvt格式文件视图开始确定需要导出的数据;获取rvt格式文件中的场景元数据并按照b3d格式转换后导出;获取待转换的rvt格式文件中的核心数据并按照b3d格式转换后导出;本方法能将rvt格式完整地转化成b3d格式,为rvt格式文件的查看、分享和应用提供基础。该方法在转化过程中不会遗漏构件,因为本发明使用了imodelexportcontext接口,可以遍历到场景中的所有元素,在几何类型上支持所有的实体、表面、线框和点等类型,也支持房间、楼层等虚拟构件信息。

37、层级结构更完善,本方法支持外连接,可以承载超大模型,通过onlinkbegin和onlinkend接口,并通过设置外连接堆栈,同时按需加载和及时卸载外连接所占内存,可以处理任意数量和任意层级的外连接,对整体模型的体量没有限制。有缓存机制和实例化机制,转换速度快,输出的数据量小。对于灯光、几何、材质、纹理、片段等数据,都根据其数据特点设计相应的哈希算法,对实际数据进行缓存,根据哈希算法进行匹配,匹配成功后直接导出,无需重新生成,提高转换速度。实例化包括两个方面,一是直接使用族和实例的关系生成实例化数据,二是通过几何哈希匹配计算实例关系,生成实例化数据,通过实例化可以剔除冗余数据,减小数据量。

38、支持各类bim属性的转换,包括1)内置bim属性,如名称、id、族属性、实例属性等,2)自定义属性,3)衍生属性,如所属楼层、所属房间等。

39、原始rvt格式的bim模型体积大、难以解析和展示,只能在专用的软件中打开使用,对硬件要求高,转换成b3d之后体积更小,可以直接在网页上浏览查看,便于在各类bim业务系统中展示,可充分释放bim模型的价值,降低bim应用的门槛。

40、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

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