基于Obj23dtiles的模型转换器创建方法技术

技术编号:39066281 阅读:7 留言:0更新日期:2023-10-12 19:59
本发明专利技术涉及一种基于Obj23dtiles的模型转换器创建方法,基于Revit平台定义变量,遍历b3dm文件中所有数据,提取要素表中所有的要素数据,分别构建当前要素的包围盒和根节点的包围盒,并计算其对应几何误差,利用根节点的包围盒、根节点的包围盒的几何误差以及子节点集合children以及矩阵transform,并结合三维瓦片数据集的文件规范构建三维瓦片数据集tileset;将三维瓦片数据集tileset保存为tileset.json格式文件,完成模型转换器的创建;本发明专利技术通过构造包围盒提高运算效率,能够按照自定义的结构进行分组数据转换,可以从其他平台导出公用格式obj,满足自定义结构。满足自定义结构。满足自定义结构。

【技术实现步骤摘要】
基于Obj23dtiles的模型转换器创建方法


[0001]本专利技术属于三维平台数据处理
,特别涉及一种基于Obj23dtiles的模型转换器创建方法。

技术介绍

[0002]三维软件在工程项目管理中极大地提高了管理的效率,应用较为广泛,但是现有的三维软件。三维软件所用的JavaScript是基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
[0003]目前,Obj23dtiles是JavaScript语言实现的3D模型转换插件,但是通常在改写前其存在不能按照指定的结构处理数据,不能直接查询单个元素的要素信息,如最小坐标值、最大坐标值、要素名称等问题,使其应用受限。

技术实现思路

[0004]为了解决上述现有技术,本专利技术提供了一种基于Obj23dtiles的模型转换器创建方法,其能够能够按照自定义的结构进行分组数据转换,可以从其他平台导出公用格式obj,满足自定义结构,使要素提取更为便捷。
[0005]本专利技术所采用的技术手段是:
[0006]一种基于Obj23dtiles的模型转换器创建方法,其包括以下步骤:
[0007]1)基于Revit平台定义变量,变量包括最小坐标集合minPoint、最大坐标集合maxPoint、矩阵transform、子节点集合children以及要素集合batchTable;
[0008]2)获取指定路径下所有的b3dm文件,遍历b3dm文件中的所有数据;
[0009]3)获取每一个b3dm文件对应的要素表,提取要素表中所有的要素数据,加入要素集合batchTable中;所述要素数据包括最小坐标值、最大坐标值以及要素名称;
[0010]4)从要素表中提取当前要素表的最小坐标值加入最小坐标集合minPoint中,提取当前要素表的最大坐标值加入最大坐标集合maxPoint;
[0011]5)利用当前要素表的最小坐标值和最大坐标值构造当前要素表的包围盒并确定当前要素的包围盒的几何误差;
[0012]6)利用当前要素的包围盒和几何误差,在当前b3dm文件的相对路径下结合三维瓦片数据集的文件规范构建子节点,将子节点加入子节点集合children中;
[0013]7)利用最小坐标集合minPoint和最大坐标集合maxPoint计算根节点的最大坐标值和最小坐标值;
[0014]8)参照步骤5),利用根节点的最大坐标值和最小坐标值构造根节点的包围盒并确定根节点的包围盒的几何误差;
[0015]9)利用根节点的包围盒、根节点的包围盒的几何误差以及子节点集合children、矩阵transform,并结合三维瓦片数据集的文件规范构建三维瓦片数据集tileset;将三维
瓦片数据集tileset保存为tileset.json格式文件,完成模型转换器的创建。
[0016]进一步限定,所述步骤5)中构造当前要素表的包围盒的方法为:
[0017]5.1)将当前要素表中的最大坐标集合maxPoint和最小坐标集合minPoint在Revit中的坐标值转换为Cesium中的坐标值,得到当前要素表对应的包围盒的最小坐标值min和包围盒的最大坐标值max;
[0018]5.2)利用当前要素表对应的包围盒的最小坐标值min和包围盒的最大坐标值max确定出包围盒的中心点center以及包围盒的长dx,宽dy和高dz;
[0019]5.3)按照下述矩阵构造出包围盒box:
[0020][center.x,center.y,center.z,dx/2,
[0021]0,0,0,dy/2,
[0022]0,0,0,dz/2]。
[0023]进一步限定,所述当前要素表的包围盒的几何误差的确定方法为:
[0024]5.4)将当前要素表的包围盒等效为外接的包围球;
[0025]5.5)根据当前要素表的包围盒的最大坐标值varmax、最小坐标值var min以及包围盒的中心点center确定出包围球的直径var diameter和包围球的中心点var center;
[0026]5.6)利用包围球的直径计算出包围球的体积varVolume;
[0027]5.7)利用下式确定出包围盒的几何误差E:
[0028][0029]与现有技术相比,本专利技术的有益效果是:
[0030]1)本专利技术通过提取要素表,构建要素表的包围盒和几何误差,建立子节点,之后再构建根节点的包围盒和几何误差,并结合三维瓦片数据集的文件规范构建三维瓦片数据集tileset,进而构建出模型转换器,通过构造包围盒提高运算效率,能够按照自定义的结构进行分组数据转换,可以从其他平台导出公用格式obj,满足自定义结构;
[0031]2)本专利技术能直接按照自定义结构整合分组后的数据转换,并提取分组后的每个元素的要素信息,整合为batchTable.json,在3D平台中直接查询到指定要素,能够实现要素快速提取,并且有利于后续完成更多的业务逻辑。
附图说明
[0032]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本专利技术基于Obj23dtiles的模型转换器创建方法的操作流程图。
具体实施方式
[0034]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳
动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0035]参见图1,本专利技术的基于Obj23dtiles的模型转换器创建方法,由以下步骤实现:
[0036]1)基于Revit平台定义变量,变量包括最小坐标集合minPoint、最大坐标集合maxPoint、矩阵transform[0,1,0,0,0,0,1,0,1,0,0,0,6378137,0,0,1]、子节点集合children和要素集合batchTable;
[0037]2)获取指定路径下所有的b3dm文件,遍历b3dm文件中的所有数据;
[0038]3)获取每一个b3dm文件对应的要素表,提取要素表中所有要素数据,将提取的所有要素数据加入要素集合batchTable中;所述要素数据包括最小坐标值、最大坐标值以及要素名称,
[0039]4)从要素表中提取当前要素表的最小坐标值加入最小坐标集合minPoint中,提取当前要素表的最大坐标值加入最大坐标集合maxPoint;
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Obj23dtiles的模型转换器创建方法,其特征在于,包括以下步骤:1)基于Revit平台定义变量,变量包括最小坐标集合minPoint、最大坐标集合maxPoint、矩阵transform、子节点集合children以及要素集合batchTable;2)获取指定路径下所有的b3dm文件,遍历b3dm文件中所有数据;3)获取每一个b3dm文件对应的要素表,提取要素表中所有的要素数据,加入要素集合batchTable中;所述要素数据包括最小坐标值、最大坐标值以及要素名称;4)从要素表中提取当前要素表的最小坐标值加入最小坐标集合minPoint中,提取当前要素表的最大坐标值加入最大坐标集合maxPoint;5)利用当前要素表的最小坐标值和最大坐标值构造当前要素表的包围盒并确定当前要素的包围盒的几何误差;6)利用当前要素的包围盒和包围盒的几何误差在当前b3dm文件的相对路径下结合三维瓦片数据集的文件规范构建子节点,将子节点加入子节点集合children中;7)利用最小坐标集合minPoint和最大坐标集合maxPoint计算根节点的最大坐标值和最小坐标值;8)参照步骤5),利用根节点的最大坐标值和最小坐标值构造根节点的包围盒并确定根节点的包围盒的几何误差;9)利用根节点的包围盒、根节点的包围盒的几何误差以及子节点集合children以及矩阵transform,并结合三维瓦片数据集的文件规范构建三维瓦片数据...

【专利技术属性】
技术研发人员:杨森魏超杨艳王佳杨康杨志民裴鑫泽王波丽
申请(专利权)人:陕西心像信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1