一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

二维视图中对三维BIM模型进行展示和交互的方法与流程

2021-10-24 07:14:00 来源:中国专利 TAG:视图 中对 交互 模型 展示

二维视图中对三维bim模型进行展示和交互的方法
技术领域
1.本发明涉及一种二维视图中对三维bim模型进行展示和交互的方法。


背景技术:

2.建筑信息模型(bim)是建筑的三维数字化表达,包括组成建筑的所有构件的几何和工程信息,在建筑行业应用很广泛。目前行业中bim一般由工程师根据bim建模规范利用autodesk revit等bim软件建立各个构件的三维模型。由于构件数量在十几万量级,三维模型的三角面片数量在千万量级;因此,bim模型的浏览和使用对电脑的配置要求较高,在网页端和移动端往往不能实现三维模型的流畅使用,严重影响了bim模型在施工现场和运维现场中的应用。
3.bim模型的网页端3d展示需要经过数据预处理和前端渲染2个步骤。传统的预处理方式表现为手工将模型按楼层空间和专业切分,减少单个模型数据量。譬如,将建筑模型、结构模型、机电模型分开处理。机电模型还将机电按系统拆分,包括给排水系统、空调系统和电气系统等;其中的手工工作量非常大。网页端前端bim模型渲染的常规方法是使用基于webgl的前端3d图形引擎处理;该方法虽然在一定程度上能够在前端显示3d模型和工程信息,但是受限于浏览器的性能,对于建筑面积超过5万平方的bim模型实际显示存在模型加载过慢、模型面片撕裂、交互操作卡顿等问题。并且目前针对网页端3d模型数据进行轻量化处理仍没有很好的解决方案,需要从模型渲染方面突破。由于智能手机等移动端屏幕小,性能低,三维bim模型查看和交互体验差,难以达到实际需求。
4.因此,有研究将三维模型转换为二维视图,渲染出质量很高的二维视图,作为移动端或网页端展示bim模型的方法。但是目前的二维视图与图片没有差别,只能用来展示,并不能在二维视图下实现与bim模型的交互,包括对模型的旋转、缩放、构件点选、按类型过滤、按楼层过滤等,以及标记管道内载体流向等信息。调研表明,目前缺乏成熟的技术支持在二维视图中对bim模型进行便捷的交互,从而支持在网页端、手机端查看超轻量级的bim模型,推动bim在数字建造和智慧运维中的应用。


技术实现要素:

5.本发明的目的在于提供一种二维视图中对三维bim模型进行展示和交互的方法。
6.为解决上述问题,本发明提供一种二维视图中对三维bim模型进行展示和交互的方法,包括:
7.步骤1:提取bim模型中构件的连接关系;
8.步骤2:为bim模型生成多角度的二维图片;
9.步骤3:在网页端或移动端查看所述二维图片;
10.步骤4:在二维视图中对bim模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片;
11.步骤5:在筛选过滤后二维图片中对bim模型中的各个构件信息进行坐标转化,以
得到坐标转化的结果;
12.步骤6:基于所述连接关系和坐标转化的结果,对管线的流向进行标记。
13.进一步的,在上述方法中,步骤1:提取bim模型中构件的连接关系,包括:
14.步骤1.1,从bim模型中提取构件信息,包括:各个构件的楼层名称、构件id、构件大类、构件族名、构件类型、所属系统、包围盒坐标以及管线构件的起终点、半径他长宽;
15.步骤1.2,基于所述构件信息,生成构件数据字典和bim模型的连接关系,所述连接关系包括:以构件id为键,以构件element为值的字典,以文件id即modelid为键,以list<element>为值的字典,以楼层id即levelid为键,list<element>为值的字典,以系统id即mepsystemid为键,以list<element>为值的字典,以机电设备的构件的设备id即deviceid为键,以element为值的字典,以房间id即roomid为键,以list<element>为值的字典;数据初始化使用守护进程生成的json文件,初始化项目数据,在内存中初始化数据,获取bim模型中机电系统中设备与管道的连接关系,每一条连接关系记录每一个构件的连接坐标,将每一组保存为一组list<string>。
16.进一步的,在上述方法中,步骤2:为bim模型生成多角度的二维图片,包括:
17.步骤2.1,设置相机坐标,计算bim模型中每一个楼层模型的最边缘的四个点,计算四个点的中心点,设置相机的相对于楼层模型的y坐标为拍摄半径,设置相机的旋转,拍摄过程需要5个拍摄角度,以分别得到正上方俯视角度以及东南西北四个角度的图像;
18.步骤2.2,调用相机的渲染接口,渲染出正上方俯视角度以及东南西北四个角度的图像,分别将正上方俯视角度以及东南西北四个角度的图像渲染为二维图片,将二维图片保存在本地。
19.进一步的,在上述方法中,步骤3:在网页端或移动端查看所述二维图片,包括:
20.步骤3.1,利用openlayers技术,为提高图片的拖动和缩放时的加载速度,利用瓦片加载的方式,将原始生成的每一张二维图片进行切分,原始图片分辨率为8196
×
8196;
21.步骤3.2,根据缩放的不同,将二维图片分别切分为4张图、16张图和64张图,根据缩放比例的不同加载不同的瓦片图;
22.步骤3.3,基于所述瓦片图,在网页端进行模型旋转操作,根据用户所选模型旋转的角度,加载不同角度的二维图片,并在模型视角切换的同时利用css制作模型间的补间动画。
23.进一步的,在上述方法中,步骤4:在二维视图中对bim模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片,包括:
24.步骤4.1,根据获取的bim模型,根据level字典,根据用户选择的楼层id,切换楼层的显隐;
25.步骤4.2,基于楼层的显隐,在每一个楼层中根据mepsystem字典表和room字典切换对应楼层中渲染出的二维图片实现不同机电系统中的构件显隐;
26.步骤4.3,对于重要设备的筛选,利用device字典实现重要设备的着色高亮,标记出重要的设备。
27.进一步的,在上述方法中,步骤5:在筛选过滤后二维图片中对bim模型中的各个构件信息进行坐标转化,以得到坐标转化的结果,包括:
28.步骤5.1,首先经过坐标体系的转换,将相机拍摄情景的坐标系转换为笛卡尔坐标
系,将相机坐标进包括:cameraposition,cameraright,cameraup和camerasize,cameraposition为unity中相机的坐标,cameraright和cameraup用于确认相机的方向向量即计算相机的朝向,camerasize即相机视口的范围;
29.步骤5.2,计算目标点所在的射线,即计算目标点在相机平面的投影,首先获取当前模型展示视口的中点center,将相机方向坐标cameraright和cameraup标准化求其单位向量,然后计算相机坐标至点选位置的x轴和y轴方向上的分量,矩阵转换变换为公式为然后将相机方向的单位向量根据缩放比例将计算向量,然后将两个向量求和,得到求和结果,将求和结果与相机初始坐标位置求和得到现在的点选坐标位置,然后计算cameraright和cameraup的叉乘得出相机的方向向量;
30.步骤5.3,得到目标点所在的射线之后,计算射线在楼层平面上的坐标:首先计算平面上点沿着射线方向至相机位置的距离,利用公式计算距离,然后计算计算距离,然后计算得到与平面的交点坐标;
31.步骤5.4,利用坐标变换,转换相机坐标camcenter(c
x
,c
y
,c
z
),相机的方向向量camup(u
x
,u
y
,u
z
)和camright(r
x
,r
y
,r
z
),以及相机视角的缩放camsize,计算目标点在相机平面上的投影,以屏幕左下角为相机平面原点,求相机坐标camcenter(c
x
,c
y
,c
z
)至鼠标点选位置的x轴和y轴的分量xportion和yportion,将camup和camright按分量扩大,然后计算得出转换向量计算得出在网页端的相机坐标camposition,计算叉乘得出网页端相机的方向向量;
32.步骤5.5,将目标投影坐标cameraposition和相机方向向量传递至工业互联网后端,工业互联网查询数据库modelselection数据库,将项目数据以{projectid} {buildingid}为键保存在redis缓存中,每查询一次就将新的楼层数据保进行缓存,每一次的查询都会从redis中查询如果没有查询到则从mongodd中按项目的楼层查新所有的modelselection,之后所有的查询结构均来自于redis缓存,其中,根据传入后台的系统筛选传入的系统id,再筛选出符合条件的构件,后台查询的本质是将每一个构件的boundingbox形成空间三维的立体,然后获取所有和射线碰撞的element,分别计算xyz三个方向的和判断计算出的6个值,如果三对数据均为max>min,则表示射线与此element相交,最终计算所有相交的构件中距离cameraposition最近的构件,返回前端;
33.步骤5.6前端获取传递过来的所有相交的构件中距离cameraposition最近的构件,判断距离cameraposition最近的构件是否为管件,如果是管件则判断管件是否为圆柱
体,如果是圆柱体则根据管件的起点和终点以及圆柱的半径,如果是方形管件则获取构件的起点终点以及截面的长和宽,如果不是管件则根据boudingbox坐标进行绘制,其中,前端的绘制算法是将三维坐标向相机平面投影,将cameraup和cameraright转化为单位向量计算算得到垂直于平面的向量,计算和得到x和y方向的分量,然后计算网页端的缩放比例和相机视角尺寸的商得到比例即将比例乘以x轴和y轴方向的分量,得到三维坐标在相机平面上的投影坐标,完成对三维坐标的转化,然后利用openlayers在前端绘制构件的边界框。
34.进一步的,在上述方法中,步骤6,基于所述连接关系和坐标转化的结果,对管线的流向进行标记,包括:
35.步骤6.1根据记录的设备与管道的连接坐标,利用坐标转化的结果将空间三维坐标向二维平面投影,以得到二维平面投影的结果;
36.步骤6.2根据每一条字典中坐标点的顺序形成方向,根据连接坐标的先后顺序,并根据连接坐标的先后顺序生成流向动画,在二维平面投影的结果中标记出机电管线中的流向。
37.与现有技术相比,本发明将bim三维模型自动转换为二维视图,且保留模型的三维几何数据和非几何信息,支持在网页端和移动端中以类似三维的方式进行模型浏览和交互,从而支持超轻量级的bim模型浏览。
38.本发明可以自动为bim模型提供各种多角度二维视图,实现在网页端和移动端快速显示bim模型的二维视图,但同时实现可类似在三维视图中对bim模型进行旋转、缩放、构件选择、类型过滤、多级标记和信息查看等交互操作,从而支持在低配置的设备中便捷地使用大体量的bim模型。
附图说明
39.图1是本发明一实施例的二维视图中对三维bim模型进行展示和交互的方法的流程图;
40.图2是本发明一实施例的二维视图在网页端的显示示意图;
41.图3是本发明一实施例的点选情形的模拟的示意图;
42.图4是本发明一实施例的网页端点选的效果的示意图;
43.图5是本发明一实施例的二维视图流向的模拟示意图。
具体实施方式
44.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
45.如图1所示,本发明提供一种二维视图中对三维bim模型进行展示和交互的方法,包括:
46.步骤1:提取bim模型中构件的连接关系;
47.步骤2:根据需要为bim模型生成多角度的二维图片;
48.步骤3:在网页端或移动端查看所述二维图片;
49.步骤4:在二维视图中对bim模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片;
50.步骤5:在筛选过滤后二维图片中对bim模型中的各个构件信息进行坐标转化,以得到坐标转化的结果;
51.步骤6:基于所述连接关系和坐标转化的结果,对管线的流向进行标记。
52.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤1:提取bim模型中构件的连接关系,包括:
53.步骤1.1,从bim模型中提取构件信息,包括:各个构件的楼层名称、构件id、构件大类、构件族名、构件类型、所属系统、包围盒坐标以及管线构件的起终点、半径他长宽;
54.例如,读取bim模型中构件信息,写入数据库;
55.步骤1.2,基于所述构件信息,生成构件数据字典和bim模型的连接关系,所述连接关系包括:以构件id为键,以构件element为值的字典,以文件id即modelid为键,以list<element>为值的字典,以楼层id即levelid为键,list<element>为值的字典,以系统id即mepsystemid为键,以list<element>为值的字典,以机电设备的构件的设备id即deviceid为键,以element为值的字典,以房间id即roomid为键,以list<element>为值的字典;数据初始化使用守护进程生成的json文件,初始化项目数据,在内存中初始化数据,获取bim模型中机电系统中设备与管道的连接关系,每一条连接关系记录每一个构件的连接坐标,将每一组保存为一组list<string>。
56.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤2:为bim模型生成多角度的二维图片,包括:
57.步骤2.1设置相机坐标,计算bim模型中每一个楼层模型的最边缘的四个点,计算四个点的中心点,设置相机的相对于楼层模型的y坐标为拍摄半径,设置相机的旋转,拍摄过程需要5个拍摄角度,以分别得到正上方俯视角度以及东南西北四个角度的图像;
58.在此,若相机性能允许,将相机旋转固定角度,以进行多角度的拍摄,渲染更多的角度的图片实现更好的旋转效果。
59.步骤2.2调用相机的渲染接口,渲染出正上方俯视角度以及东南西北四个角度的图像,分别将正上方俯视角度以及东南西北四个角度的图像渲染为二维图片,将二维图片保存在本地;
60.在此,渲染出的二维图片的命名格式可以为“buildingid

levelid

systemid

count(拍摄次数)”。并记录每次相机拍摄的角度高度,以json的格式保留;
61.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤3:在网页端或移动端查看所述二维图片,包括:
62.步骤3.1利用openlayers技术,为提高图片的拖动和缩放时的加载速度,利用瓦片加载的方式,将原始生成的每一张二维图片进行切分,原始图片分辨率为8196
×
8196;
63.步骤3.2根据缩放的不同,将二维图片分别切分为4张图、16张图和64张图,根据缩放比例的不同加载不同的瓦片图;
64.步骤3.3基于所述瓦片图,在网页端进行模型旋转操作,根据用户所选模型旋转的角度,加载不同角度的二维图片,并在模型视角切换的同时利用css制作模型间的补间动画,进一步强化模型的旋转效果。
65.在此,如果5g技术成熟,可以加快二维模型图片的加载速度,这样就可以渲染更多的图片,利用较快的加载速度做到非常接近三维模型旋转的效果。
66.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤4:在二维视图中对bim模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片,包括:
67.步骤4.1,根据获取的bim模型,根据level字典,根据用户选择的楼层id,切换楼层的显隐;
68.步骤4.2,基于楼层的显隐,在每一个楼层中根据mepsystem字典表和room字典切换对应楼层中渲染出的二维图片实现不同机电系统中的构件显隐;
69.步骤4.3,对于重要设备的筛选,利用device字典实现重要设备的着色高亮,标记出重要的设备。
70.在此,图2即为二维模型在网页端根据楼层筛选的示意图,本发明可以提供东西南北正上五个视角的模型显示。
71.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤5:在筛选过滤后二维图片中对bim模型中的各个构件信息进行坐标转化,以得到坐标转化的结果,包括:
72.步骤5.1,首先经过坐标体系的转换,将相机拍摄情景的坐标系转换为笛卡尔坐标系,变换的公式为(v
x
,v
y
,v
z
)=(

d
x


d
z
,d
y
),将相机坐标进包括:cameraposition,cameraright,cameraup和camerasize,cameraposition为unity中相机的坐标,cameraright和cameraup用于确认相机的方向向量即计算相机的朝向,camerasize即相机视口的范围;
73.步骤5.2,计算目标点所在的射线,即计算目标点在相机平面的投影,首先获取当前模型展示视口的中点center,将相机方向坐标cameraright和cameraup标准化求其单位向量,然后计算相机坐标至点选位置的x轴和y轴方向上的分量,矩阵转换变换为公式为然后将相机方向的单位向量根据缩放比例将计算向量,然后将两个向量求和,得到求和结果,将求和结果与相机初始坐标位置求和得到现在的点选坐标位置,然后计算cameraright和cameraup的叉乘得出相机的方向向量;
74.步骤5.3得到目标点所在的射线之后,计算射线在楼层平面上的坐标:首先计算平面上点沿着射线方向至相机位置的距离,利用公式计算距离,然后计算计算距离,然后计算得到与平面的交点坐标;
75.步骤5.4利用坐标变换,转换相机坐标camcenter(c
x
,c
y
,c
z
),相机的方向向量camup(u
x
,u
y
,u
z
)和camright(r
x
,r
y
,r
z
),以及相机视角的缩放camsize,计算目标点在相机平面上的投影,以屏幕左下角为相机平面原点,求相机坐标camcenter(c
x
,c
y
,c
z
)至鼠标点
选位置的x轴和y轴的分量xportion和yportion,将camup和camright按分量扩大,然后计算得出转换向量计算得出在网页端的相机坐标camposition,计算叉乘得出网页端相机的方向向量;
76.步骤5.5,将目标投影坐标cameraposition和相机方向向量传递至工业互联网后端,工业互联网查询数据库modelselection数据库,为加快数据的查询速度,将项目数据以{projectid} {buildingid}为键保存在redis缓存中,每查询一次就将新的楼层数据保进行缓存,每一次的查询都会从redis中查询如果没有查询到则从mongodd中按项目的楼层查新所有的modelselection,之后所有的查询结构均来自于redis缓存,其中,核心方法是在后台模拟出三维的情况如图2所示,根据传入后台的系统筛选传入的系统id,再筛选出符合条件的构件,后台查询的本质是将每一个构件的boundingbox形成空间三维的立体,然后获取所有和射线碰撞的element,分别计算xyz三个方向的和判断计算出的6个值,如果三对数据均为max>min,则表示射线与此element相交,最终计算所有相交的构件中距离cameraposition最近的构件,返回前端;
77.步骤5.6前端获取传递过来的所有相交的构件中距离cameraposition最近的构件,判断距离cameraposition最近的构件是否为管件,如果是管件则判断管件是否为圆柱体,如果是圆柱体则根据管件的起点和终点以及圆柱的半径,如果是方形管件则获取构件的起点终点以及截面的长和宽,如果不是管件则根据boudingbox坐标进行绘制,其中,前端的绘制算法是将三维坐标向相机平面投影,将cameraup和cameraright转化为单位向量计算算得到垂直于平面的向量,计算和得到x和y方向的分量,然后计算网页端的缩放比例和相机视角尺寸的商得到比例即将比例乘以x轴和y轴方向的分量,得到三维坐标在相机平面上的投影坐标,完成对三维坐标的转化,然后利用openlayers在前端绘制构件的边界框。
78.具体的,附图3即为模型点选后端射线的模拟,在服务端模拟出一条点选射线,计算出距离最短的构件并将其返回前端,图4即为三维坐标向二维平面投影的示意图,绘制出bim模型构件的边界框。
79.本发明的二维视图中对三维bim模型进行展示和交互的方法一实施例中,步骤6,基于所述连接关系和坐标转化的结果,对管线的流向进行标记,包括:
80.步骤6.1根据记录的设备与管道的连接坐标,利用步骤5中的坐标转化的结果将空间三维坐标向二维平面投影,以得到二维平面投影的结果;
81.步骤6.2根据每一条字典中坐标点的顺序形成方向,根据连接坐标的先后顺序,并
根据连接坐标的先后顺序生成流向动画,在二维平面投影的结果中标记出机电管线中的流向。
82.图5即为在二维模型平面绘制流向的示意图,利用坐标的投影和webgl绘制出管道流向动画。
83.综上所述,本发明将bim三维模型自动转换为二维视图,且保留模型的三维几何数据和非几何信息,支持在网页端和移动端中以类似三维的方式进行模型浏览和交互,从而支持超轻量级的bim模型浏览。
84.本发明可以自动为bim模型提供各种多角度二维视图,实现在网页端和移动端快速显示bim模型的二维视图,但同时实现可类似在三维视图中对bim模型进行旋转、缩放、构件选择、类型过滤、多级标记和信息查看等交互操作,从而支持在低配置的设备中便捷地使用大体量的bim模型。
85.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
86.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
87.显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜