CN113538708B - 二维视图中对三维bim模型进行展示和交互的方法 - Google Patents
二维视图中对三维bim模型进行展示和交互的方法 Download PDFInfo
- Publication number
- CN113538708B CN113538708B CN202110668971.3A CN202110668971A CN113538708B CN 113538708 B CN113538708 B CN 113538708B CN 202110668971 A CN202110668971 A CN 202110668971A CN 113538708 B CN113538708 B CN 113538708B
- Authority
- CN
- China
- Prior art keywords
- camera
- dimensional
- component
- coordinates
- bim model
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000001914 filtration Methods 0.000 claims abstract description 17
- 239000013598 vector Substances 0.000 claims description 36
- 238000012216 screening Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 17
- 238000009877 rendering Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000004040 coloring Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000009749 continuous casting Methods 0.000 claims description 2
- 241000282836 Camelus dromedarius Species 0.000 claims 1
- 230000003139 buffering effect Effects 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 5
- 230000002452 interceptive effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种二维视图中对三维BIM模型进行展示和交互的方法,本将BIM三维模型自动转换为二维视图,且保留模型的三维几何数据和非几何信息,支持在网页端和移动端中以类似三维的方式进行模型浏览和交互,从而支持超轻量级的BIM模型浏览。本发明可以自动为BIM模型提供各种多角度二维视图,实现在网页端和移动端快速显示BIM模型的二维视图,但同时实现可类似在三维视图中对BIM模型进行旋转、缩放、构件选择、类型过滤、多级标记和信息查看等交互操作,从而支持在低配置的设备中便捷地使用大体量的BIM模型。
Description
技术领域
本发明涉及一种二维视图中对三维BIM模型进行展示和交互的方法。
背景技术
建筑信息模型(BIM)是建筑的三维数字化表达,包括组成建筑的所有构件的几何和工程信息,在建筑行业应用很广泛。目前行业中BIM一般由工程师根据BIM建模规范利用Autodesk Revit等BIM软件建立各个构件的三维模型。由于构件数量在十几万量级,三维模型的三角面片数量在千万量级;因此,BIM模型的浏览和使用对电脑的配置要求较高,在网页端和移动端往往不能实现三维模型的流畅使用,严重影响了BIM模型在施工现场和运维现场中的应用。
BIM模型的网页端3D展示需要经过数据预处理和前端渲染2个步骤。传统的预处理方式表现为手工将模型按楼层空间和专业切分,减少单个模型数据量。譬如,将建筑模型、结构模型、机电模型分开处理。机电模型还将机电按系统拆分,包括给排水系统、空调系统和电气系统等;其中的手工工作量非常大。网页端前端BIM模型渲染的常规方法是使用基于WebGL的前端3D图形引擎处理;该方法虽然在一定程度上能够在前端显示3D模型和工程信息,但是受限于浏览器的性能,对于建筑面积超过5万平方的BIM模型实际显示存在模型加载过慢、模型面片撕裂、交互操作卡顿等问题。并且目前针对网页端3D模型数据进行轻量化处理仍没有很好的解决方案,需要从模型渲染方面突破。由于智能手机等移动端屏幕小,性能低,三维BIM模型查看和交互体验差,难以达到实际需求。
因此,有研究将三维模型转换为二维视图,渲染出质量很高的二维视图,作为移动端或网页端展示BIM模型的方法。但是目前的二维视图与图片没有差别,只能用来展示,并不能在二维视图下实现与BIM模型的交互,包括对模型的旋转、缩放、构件点选、按类型过滤、按楼层过滤等,以及标记管道内载体流向等信息。调研表明,目前缺乏成熟的技术支持在二维视图中对BIM模型进行便捷的交互,从而支持在网页端、手机端查看超轻量级的BIM模型,推动BIM在数字建造和智慧运维中的应用。
发明内容
本发明的目的在于提供一种二维视图中对三维BIM模型进行展示和交互的方法。
为解决上述问题,本发明提供一种二维视图中对三维BIM模型进行展示和交互的方法,包括:
步骤1:提取BIM模型中构件的连接关系;
步骤2:为BIM模型生成多角度的二维图片;
步骤3:在网页端或移动端查看所述二维图片;
步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片;
步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果;
步骤6:基于所述连接关系和坐标转化的结果,对管线的流向进行标记。
进一步的,在上述方法中,步骤1:提取BIM模型中构件的连接关系,包括:
步骤1.1,从BIM模型中提取构件信息,包括:各个构件的楼层名称、构件Id、构件大类、构件族名、构件类型、所属系统、包围盒坐标以及管线构件的起终点、半径他长宽;
步骤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>。
进一步的,在上述方法中,步骤2:为BIM模型生成多角度的二维图片,包括:
步骤2.1,设置相机坐标,计算BIM模型中每一个楼层模型的最边缘的四个点,计算四个点的中心点,设置相机的相对于楼层模型的y坐标为拍摄半径,设置相机的旋转,拍摄过程需要5个拍摄角度,以分别得到正上方俯视角度以及东南西北四个角度的图像;
步骤2.2,调用相机的渲染接口,渲染出正上方俯视角度以及东南西北四个角度的图像,分别将正上方俯视角度以及东南西北四个角度的图像渲染为二维图片,将二维图片保存在本地。
进一步的,在上述方法中,步骤3:在网页端或移动端查看所述二维图片,包括:
步骤3.1,利用OpenLayers技术,为提高图片的拖动和缩放时的加载速度,利用瓦片加载的方式,将原始生成的每一张二维图片进行切分,原始图片分辨率为8196×8196;
步骤3.2,根据缩放的不同,将二维图片分别切分为4张图、16张图和64张图,根据缩放比例的不同加载不同的瓦片图;
步骤3.3,基于所述瓦片图,在网页端进行模型旋转操作,根据用户所选模型旋转的角度,加载不同角度的二维图片,并在模型视角切换的同时利用CSS制作模型间的补间动画。
进一步的,在上述方法中,步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片,包括:
步骤4.1,根据获取的BIM模型,根据Level字典,根据用户选择的楼层Id,切换楼层的显隐;
步骤4.2,基于楼层的显隐,在每一个楼层中根据MEPSystem字典表和Room字典切换对应楼层中渲染出的二维图片实现不同机电系统中的构件显隐;
步骤4.3,对于重要设备的筛选,利用Device字典实现重要设备的着色高亮,标记出重要的设备。
进一步的,在上述方法中,步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果,包括:
步骤5.1,首先经过坐标体系的转换,将相机拍摄情景的坐标系转换为笛卡尔坐标系,将相机坐标进包括:cameraPosition,cameraRight,cameraUp和cameraSize,cameraPosition为Unity中相机的坐标,cameraRight和cameraUp用于确认相机的方向向量即计算相机的朝向,cameraSize即相机视口的范围;
步骤5.2,计算目标点所在的射线,即计算目标点在相机平面的投影,首先获取当前模型展示视口的中点center,将相机方向坐标cameraRight和cameraUp标准化求其单位向量,然后计算相机坐标至点选位置的X轴和Y轴方向上的分量,矩阵转换变换为公式为然后将相机方向的单位向量根据缩放比例将计算向量,然后将两个向量求和,得到求和结果,将求和结果与相机初始坐标位置求和得到现在的点选坐标位置,然后计算cameraRight和cameraUp的叉乘得出相机的方向向量;
步骤5.3,得到目标点所在的射线之后,计算射线在楼层平面上的坐标:首先计算平面上点沿着射线方向至相机位置的距离,利用公式计算距离,然后计算/> 得到与平面的交点坐标;
步骤5.4,利用坐标变换,转换相机坐标camCenter(cx,cy,cz),相机的方向向量camUp(ux,uy,uz)和camRight(rx,ry,rz),以及相机视角的缩放camSize,计算目标点在相机平面上的投影,以屏幕左下角为相机平面原点,求相机坐标camCenter(cx,cy,cz)至鼠标点选位置的x轴和y轴的分量xPortion和yPortion,将camUp和camRight按分量扩大,然后计算得出转换向量/>计算得出在网页端的相机坐标camPosition,计算叉乘/>得出网页端相机的方向向量;
步骤5.5,将目标投影坐标cameraPosition和相机方向向量传递至工业互联网后端,工业互联网查询数据库ModelSelection数据库,将项目数据以{ProjectId}+{BuildingId}为键保存在Redis缓存中,每查询一次就将新的楼层数据保进行缓存,每一次的查询都会从Redis中查询如果没有查询到则从MongoDd中按项目的楼层查新所有的ModelSelection,之后所有的查询结构均来自于Redis缓存,其中,根据传入后台的系统筛选传入的系统id,再筛选出符合条件的构件,后台查询的本质是将每一个构件的BoundingBox形成空间三维的立体,然后获取所有和射线碰撞的Element,分别计算xyz三个方向的/>和/>判断计算出的6个值,如果三对数据均为max>min,则表示射线与此Element相交,最终计算所有相交的构件中距离cameraPosition最近的构件,返回前端;
步骤5.6前端获取传递过来的所有相交的构件中距离cameraPosition最近的构件,判断距离cameraPosition最近的构件是否为管件,如果是管件则判断管件是否为圆柱体,如果是圆柱体则根据管件的起点和终点以及圆柱的半径,如果是方形管件则获取构件的起点终点以及截面的长和宽,如果不是管件则根据BoudingBox坐标进行绘制,其中,前端的绘制算法是将三维坐标向相机平面投影,将cameraUp和cameraRight转化为单位向量计算 得到垂直于平面的向量,计算/>和/>得到x和y方向的分量,然后计算网页端的缩放比例和相机视角尺寸的商得到比例即/>将比例乘以x轴和y轴方向的分量,得到三维坐标在相机平面上的投影坐标,完成对三维坐标的转化,然后利用OpenLayers在前端绘制构件的边界框。
进一步的,在上述方法中,步骤6,基于所述连接关系和坐标转化的结果,对管线的流向进行标记,包括:
步骤6.1根据记录的设备与管道的连接坐标,利用坐标转化的结果将空间三维坐标向二维平面投影,以得到二维平面投影的结果;
步骤6.2根据每一条字典中坐标点的顺序形成方向,根据连接坐标的先后顺序,并根据连接坐标的先后顺序生成流向动画,在二维平面投影的结果中标记出机电管线中的流向。
与现有技术相比,本发明将BIM三维模型自动转换为二维视图,且保留模型的三维几何数据和非几何信息,支持在网页端和移动端中以类似三维的方式进行模型浏览和交互,从而支持超轻量级的BIM模型浏览。
本发明可以自动为BIM模型提供各种多角度二维视图,实现在网页端和移动端快速显示BIM模型的二维视图,但同时实现可类似在三维视图中对BIM模型进行旋转、缩放、构件选择、类型过滤、多级标记和信息查看等交互操作,从而支持在低配置的设备中便捷地使用大体量的BIM模型。
附图说明
图1是本发明一实施例的二维视图中对三维BIM模型进行展示和交互的方法的流程图;
图2是本发明一实施例的二维视图在网页端的显示示意图;
图3是本发明一实施例的点选情形的模拟的示意图;
图4是本发明一实施例的网页端点选的效果的示意图;
图5是本发明一实施例的二维视图流向的模拟示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供一种二维视图中对三维BIM模型进行展示和交互的方法,包括:
步骤1:提取BIM模型中构件的连接关系;
步骤2:根据需要为BIM模型生成多角度的二维图片;
步骤3:在网页端或移动端查看所述二维图片;
步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片;
步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果;
步骤6:基于所述连接关系和坐标转化的结果,对管线的流向进行标记。
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤1:提取BIM模型中构件的连接关系,包括:
步骤1.1,从BIM模型中提取构件信息,包括:各个构件的楼层名称、构件Id、构件大类、构件族名、构件类型、所属系统、包围盒坐标以及管线构件的起终点、半径他长宽;
例如,读取BIM模型中构件信息,写入数据库;
步骤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>。
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤2:为BIM模型生成多角度的二维图片,包括:
步骤2.1设置相机坐标,计算BIM模型中每一个楼层模型的最边缘的四个点,计算四个点的中心点,设置相机的相对于楼层模型的y坐标为拍摄半径,设置相机的旋转,拍摄过程需要5个拍摄角度,以分别得到正上方俯视角度以及东南西北四个角度的图像;
在此,若相机性能允许,将相机旋转固定角度,以进行多角度的拍摄,渲染更多的角度的图片实现更好的旋转效果。
步骤2.2调用相机的渲染接口,渲染出正上方俯视角度以及东南西北四个角度的图像,分别将正上方俯视角度以及东南西北四个角度的图像渲染为二维图片,将二维图片保存在本地;
在此,渲染出的二维图片的命名格式可以为“BuildingId-LevelId-SystemId-Count(拍摄次数)”。并记录每次相机拍摄的角度高度,以Json的格式保留;
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤3:在网页端或移动端查看所述二维图片,包括:
步骤3.1利用OpenLayers技术,为提高图片的拖动和缩放时的加载速度,利用瓦片加载的方式,将原始生成的每一张二维图片进行切分,原始图片分辨率为8196×8196;
步骤3.2根据缩放的不同,将二维图片分别切分为4张图、16张图和64张图,根据缩放比例的不同加载不同的瓦片图;
步骤3.3基于所述瓦片图,在网页端进行模型旋转操作,根据用户所选模型旋转的角度,加载不同角度的二维图片,并在模型视角切换的同时利用CSS制作模型间的补间动画,进一步强化模型的旋转效果。
在此,如果5G技术成熟,可以加快二维模型图片的加载速度,这样就可以渲染更多的图片,利用较快的加载速度做到非常接近三维模型旋转的效果。
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片,包括:
步骤4.1,根据获取的BIM模型,根据Level字典,根据用户选择的楼层Id,切换楼层的显隐;
步骤4.2,基于楼层的显隐,在每一个楼层中根据MEPSystem字典表和Room字典切换对应楼层中渲染出的二维图片实现不同机电系统中的构件显隐;
步骤4.3,对于重要设备的筛选,利用Device字典实现重要设备的着色高亮,标记出重要的设备。
在此,图2即为二维模型在网页端根据楼层筛选的示意图,本发明可以提供东西南北正上五个视角的模型显示。
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果,包括:
步骤5.1,首先经过坐标体系的转换,将相机拍摄情景的坐标系转换为笛卡尔坐标系,变换的公式为(vx,vy,vz)=(-dx,-dz,dy),将相机坐标进包括:cameraPosition,cameraRight,cameraUp和cameraSize,cameraPosition为Unity中相机的坐标,cameraRight和cameraUp用于确认相机的方向向量即计算相机的朝向,cameraSize即相机视口的范围;
步骤5.2,计算目标点所在的射线,即计算目标点在相机平面的投影,首先获取当前模型展示视口的中点center,将相机方向坐标cameraRight和cameraUp标准化求其单位向量,然后计算相机坐标至点选位置的X轴和Y轴方向上的分量,矩阵转换变换为公式为然后将相机方向的单位向量根据缩放比例将计算向量,然后将两个向量求和,得到求和结果,将求和结果与相机初始坐标位置求和得到现在的点选坐标位置,然后计算cameraRight和cameraUp的叉乘得出相机的方向向量;
步骤5.3得到目标点所在的射线之后,计算射线在楼层平面上的坐标:首先计算平面上点沿着射线方向至相机位置的距离,利用公式计算距离,然后计算/> 得到与平面的交点坐标;
步骤5.4利用坐标变换,转换相机坐标camCenter(cx,cy,cz),相机的方向向量camUp(ux,uy,uz)和camRight(rx,ry,rz),以及相机视角的缩放camSize,计算目标点在相机平面上的投影,以屏幕左下角为相机平面原点,求相机坐标camCenter(cx,cy,cz)至鼠标点选位置的x轴和y轴的分量xPortion和yPortion,将camUp和camRight按分量扩大,然后计算得出转换向量/>计算得出在网页端的相机坐标camPosition,计算叉乘/>得出网页端相机的方向向量;
步骤5.5,将目标投影坐标cameraPosition和相机方向向量传递至工业互联网后端,工业互联网查询数据库ModelSelection数据库,为加快数据的查询速度,将项目数据以{ProjectId}+{BuildingId}为键保存在Redis缓存中,每查询一次就将新的楼层数据保进行缓存,每一次的查询都会从Redis中查询如果没有查询到则从MongoDd中按项目的楼层查新所有的ModelSelection,之后所有的查询结构均来自于Redis缓存,其中,核心方法是在后台模拟出三维的情况如图2所示,根据传入后台的系统筛选传入的系统id,再筛选出符合条件的构件,后台查询的本质是将每一个构件的BoundingBox形成空间三维的立体,然后获取所有和射线碰撞的Element,分别计算xyz三个方向的和/>判断计算出的6个值,如果三对数据均为max>min,则表示射线与此Element相交,最终计算所有相交的构件中距离cameraPosition最近的构件,返回前端;
步骤5.6前端获取传递过来的所有相交的构件中距离cameraPosition最近的构件,判断距离cameraPosition最近的构件是否为管件,如果是管件则判断管件是否为圆柱体,如果是圆柱体则根据管件的起点和终点以及圆柱的半径,如果是方形管件则获取构件的起点终点以及截面的长和宽,如果不是管件则根据BoudingBox坐标进行绘制,其中,前端的绘制算法是将三维坐标向相机平面投影,将cameraUp和cameraRight转化为单位向量计算 得到垂直于平面的向量,计算/>和/>得到x和y方向的分量,然后计算网页端的缩放比例和相机视角尺寸的商得到比例即/>将比例乘以x轴和y轴方向的分量,得到三维坐标在相机平面上的投影坐标,完成对三维坐标的转化,然后利用OpenLayers在前端绘制构件的边界框。
具体的,附图3即为模型点选后端射线的模拟,在服务端模拟出一条点选射线,计算出距离最短的构件并将其返回前端,图4即为三维坐标向二维平面投影的示意图,绘制出BIM模型构件的边界框。
本发明的二维视图中对三维BIM模型进行展示和交互的方法一实施例中,步骤6,基于所述连接关系和坐标转化的结果,对管线的流向进行标记,包括:
步骤6.1根据记录的设备与管道的连接坐标,利用步骤5中的坐标转化的结果将空间三维坐标向二维平面投影,以得到二维平面投影的结果;
步骤6.2根据每一条字典中坐标点的顺序形成方向,根据连接坐标的先后顺序,并根据连接坐标的先后顺序生成流向动画,在二维平面投影的结果中标记出机电管线中的流向。
图5即为在二维模型平面绘制流向的示意图,利用坐标的投影和WebGL绘制出管道流向动画。
综上所述,本发明将BIM三维模型自动转换为二维视图,且保留模型的三维几何数据和非几何信息,支持在网页端和移动端中以类似三维的方式进行模型浏览和交互,从而支持超轻量级的BIM模型浏览。
本发明可以自动为BIM模型提供各种多角度二维视图,实现在网页端和移动端快速显示BIM模型的二维视图,但同时实现可类似在三维视图中对BIM模型进行旋转、缩放、构件选择、类型过滤、多级标记和信息查看等交互操作,从而支持在低配置的设备中便捷地使用大体量的BIM模型。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (3)
1.一种二维视图中对三维BIM模型进行展示和交互的方法,其特征在于,包括:
步骤1:提取BIM模型中构件的连接关系;
步骤2:为BIM模型生成多角度的二维图片;
步骤3:在网页端或移动端查看所述二维图片;
步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片;
步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果;
步骤6:基于所述连接关系和坐标转化的结果,对管线的流向进行标记;
步骤3:在网页端或移动端查看所述二维图片,包括:
步骤3.1,利用OpenLayers技术,为提高图片的拖动和缩放时的加载速度,利用瓦片加载的方式,将原始生成的每一张二维图片进行切分,原始图片分辨率为8196×8196;
步骤3.2,根据缩放的不同,将二维图片分别切分为4张图、16张图和64张图,根据缩放比例的不同加载不同的瓦片图;
步骤3.3,基于所述瓦片图,在网页端进行模型旋转操作,根据用户所选模型旋转的角度,加载不同角度的二维图片,并在模型视角切换的同时利用CSS制作模型间的补间动画;
步骤4:在二维视图中对BIM模型中的构件信息进行筛选过滤,以得到筛选过滤后二维图片,包括:
步骤4.1,根据获取的BIM模型,根据Level字典,根据用户选择的楼层Id,切换楼层的显隐;
步骤4.2,基于楼层的显隐,在每一个楼层中根据MEPSystem字典表和Room字典切换对应楼层中渲染出的二维图片实现不同机电系统中的构件显隐;
步骤4.3,对于重要设备的筛选,利用Device字典实现重要设备的着色高亮,标记出重要的设备;
步骤5:在筛选过滤后二维图片中对BIM模型中的各个构件信息进行坐标转化,以得到坐标转化的结果,包括:
步骤5.1,首先经过坐标体系的转换,将相机拍摄情景的坐标系转换为笛卡尔坐标系,相机坐标包括:cameraPosition,cameraRight,cameraUP和cameraSize,cameraPosition为Unity中相机的坐标,cameraRight和cameraUP用于确认相机的方向向量即计算相机的朝向,cameraSize即相机视口的范围;
步骤5.2,计算目标点所在的射线,即计算目标点在相机平面的投影,首先获取当前模型展示视口的中点center,将相机方向坐标cameraRight和cameraUP标准化求其单位向量,然后计算相机坐标至点选位置的X轴和Y轴方向上的分量,矩阵转换变换为公式为然后将相机方向的单位向量根据缩放比例将计算向量,然后将两个向量求和,得到求和结果,将求和结果与相机初始坐标位置求和得到现在的点选坐标位置,然后计算cameraRight和cameraUP的叉乘得出相机的方向向量;
步骤5.3,得到目标点所在的射线之后,计算射线在楼层平面上的坐标:首先计算平面上点沿着射线方向至相机位置的距离,利用公式计算距离,然后计算/>得到与平面的交点坐标;
步骤5.4,利用坐标变换,转换相机坐标camCenter(cx,cy,cz),相机的方向向量cameraUP(ux,uy,uz)和cameraRight(rx,ry,rz),以及相机视角的缩放cameraSize,计算目标点在相机平面上的投影,以屏幕左下角为相机平面原点,求相机坐标camCenter(cx,cy,cz)至鼠标点选位置的x轴和y轴的分量xPortion和yPortion,将cameraUP和cameraRight按分量扩大,然后计算得出转换向量/>计算/>得出在网页端的相机坐标cameraPosition,计算叉乘/>得出网页端相机的方向向量;
步骤5.5,将目标投影坐标cameraPosition和相机方向向量传递至工业互联网后端,工业互联网查询数据库ModelSelection数据库,将项目数据以{ProjectId}+{BuildingId}为键保存在Redis缓存中,每查询一次就将新的楼层数据进行缓存,每一次的查询都会从Redis中查询如果没有查询到则从MongoDd中按项目的楼层查新所有的ModelSelection,之后所有的查询结构均来自于Redis缓存,其中,根据传入后台的系统筛选传入的系统id,再筛选出符合条件的构件,后台查询的本质是将每一个构件的BoundingBox形成空间三维的立体,然后获取所有和射线碰撞的Element,分别计算xyz三个方向的/>和/>判断计算出的6个值,如果三对数据均为max>min,则表示射线与此Element相交,最终计算所有相交的构件中距离cameraPosition最近的构件,返回前端;
步骤5.6前端获取传递过来的所有相交的构件中距离cameraPosition最近的构件,判断距离cameraPosition最近的构件是否为管件,如果是管件则判断管件是否为圆柱体,如果是圆柱体则获取管件的起点和终点以及圆柱的半径,如果是方形管件则获取构件的起点、终点以及截面的长和宽,如果不是管件则根据BoudingBox坐标进行绘制,其中,前端的绘制算法是将三维坐标向相机平面投影,将cameraUP和cameraRight转化为单位向量计算
得到垂直于平面的向量,计算和/>得到x和y方向的分量,然后计算网页端的缩放比例和相机视角尺寸的商得到比例即/>将比例乘以x轴和y轴方向的分量,得到三维坐标在相机平面上的投影坐标,完成对三维坐标的转化,然后利用OpenLayers在前端绘制构件的边界框;
步骤6,基于所述连接关系和坐标转化的结果,对管线的流向进行标记,包括:
步骤6.1根据记录的设备与管道的连接坐标,利用坐标转化的结果将空间三维坐标向二维平面投影,以得到二维平面投影的结果;
步骤6.2根据每一条字典中坐标点的顺序形成方向,根据连接坐标的先后顺序,并根据连接坐标的先后顺序生成流向动画,在二维平面投影的结果中标记出机电管线中的流向。
2.如权利要求1所述的二维视图中对三维BIM模型进行展示和交互的方法,其特征在于,步骤1:提取BIM模型中构件的连接关系,包括:
步骤1.1,从BIM模型中提取构件信息,包括:各个构件的楼层名称、构件Id、构件大类、构件族名、构件类型、所属系统、包围盒坐标以及管线构件的起终点、半径和长宽;
步骤1.2,基于所述构件信息,生成构件数据字典和BIM模型的连接关系,所述连接关系包括:以构件Id为键,以构件Element为值的字典,以文件Id即ModelId为键,以List<Element>为值的字典,以楼层Id即LevelId为键,List<Element>为值的字典,以系统Id即MEPSystemId为键,以List<Element>为值的字典,以机电设备的构件的设备Id即DeviceId为键,以List<Element>为值的字典,以房间Id即RoomId为键,以List<Element>为值的字典;数据初始化使用守护进程生成的Json文件,初始化项目数据,在内存中初始化数据,获取BIM模型中机电系统中设备与管道的连接关系,每一条连接关系记录每一个构件的连接坐标,将每一组保存为一组List<string>。
3.如权利要求1所述的二维视图中对三维BIM模型进行展示和交互的方法,其特征在于,步骤2:为BIM模型生成多角度的二维图片,包括:
步骤2.1,设置相机坐标,计算BIM模型中每一个楼层模型的最边缘的四个点,计算四个点的中心点,设置相机的相对于楼层模型的y坐标为拍摄半径,设置相机的旋转,拍摄过程需要5个拍摄角度,以分别得到正上方俯视角度以及东南西北四个角度的图像;
步骤2.2,调用相机的渲染接口,渲染出正上方俯视角度以及东南西北四个角度的图像,分别将正上方俯视角度以及东南西北四个角度的图像渲染为二维图片,将二维图片保存在本地。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110668971.3A CN113538708B (zh) | 2021-06-17 | 2021-06-17 | 二维视图中对三维bim模型进行展示和交互的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110668971.3A CN113538708B (zh) | 2021-06-17 | 2021-06-17 | 二维视图中对三维bim模型进行展示和交互的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113538708A CN113538708A (zh) | 2021-10-22 |
CN113538708B true CN113538708B (zh) | 2023-10-31 |
Family
ID=78096204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110668971.3A Active CN113538708B (zh) | 2021-06-17 | 2021-06-17 | 二维视图中对三维bim模型进行展示和交互的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113538708B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113935097B (zh) * | 2021-10-26 | 2022-12-06 | 山东同圆数字科技有限公司 | 一种基于bim引擎数据的建筑空间分析方法及系统 |
CN114239106A (zh) * | 2021-12-14 | 2022-03-25 | 国机工业互联网研究院(河南)有限公司 | 一种基于bim的楼层信息可视化方法、装置及介质 |
CN114283441B (zh) * | 2021-12-18 | 2023-08-01 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 适用于铁路客站的二维图纸识别建模方法和装置 |
CN114518815B (zh) * | 2022-02-23 | 2023-10-10 | 阿里巴巴(中国)有限公司 | 建筑图纸的显示方法、装置、设备、介质及程序产品 |
CN115033546A (zh) * | 2022-06-27 | 2022-09-09 | 深圳市万维云数字科技有限公司 | 数字模型通用格式、转换方法、系统、终端及存储介质 |
CN117216836B (zh) * | 2023-08-24 | 2024-05-07 | 中国电建集团成都勘测设计研究院有限公司 | 一种基于Dynamo的闸门设备批量建模方法 |
CN117993086B (zh) * | 2024-04-03 | 2024-07-05 | 中国铁路设计集团有限公司 | 一种基于城轨bim模型的旋转构件动态智能化展示方法 |
CN118229888B (zh) * | 2024-05-23 | 2024-07-30 | 山东天昀和信息科技有限公司 | 一种基于三维模型的区域智能标记方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482580A (zh) * | 2002-09-15 | 2004-03-17 | �����з��ѿƼ�����˾ | 利用一组二维照片与三维模型库生成新的三维模型的方法 |
WO2013041103A2 (en) * | 2011-09-21 | 2013-03-28 | Dalux Aps | Bim and display of 3d models on client devices |
CN103942820A (zh) * | 2014-04-30 | 2014-07-23 | 武汉库百网络技术有限公司 | 一种多角度仿真三维地图的方法及装置 |
CN104765905A (zh) * | 2015-02-13 | 2015-07-08 | 上海同筑信息科技有限公司 | 基于bim的平面图和第一视角分屏同步显示方法和系统 |
CN107798725A (zh) * | 2017-09-04 | 2018-03-13 | 华南理工大学 | 基于Android的二维住房户型识别和三维呈现方法 |
CN109254766A (zh) * | 2018-07-25 | 2019-01-22 | 中建八局第建设有限公司 | 基于移动端的可视化编程平台及二维图纸三维可视化方法 |
CN110688692A (zh) * | 2019-08-27 | 2020-01-14 | 水利部水利水电规划设计总院 | 一种基于结构化bim模型的二三维联动及叠加显示的方法 |
CN112560275A (zh) * | 2020-12-22 | 2021-03-26 | 中设数字技术股份有限公司 | 一种二维三维实时联动在线图纸批注校审系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3980253B1 (en) * | 2019-06-06 | 2024-09-25 | Bluebeam, Inc. | Methods and systems for establishing a linkage between a three-dimensional electronic design file and a two-dimensional design document |
-
2021
- 2021-06-17 CN CN202110668971.3A patent/CN113538708B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1482580A (zh) * | 2002-09-15 | 2004-03-17 | �����з��ѿƼ�����˾ | 利用一组二维照片与三维模型库生成新的三维模型的方法 |
WO2013041103A2 (en) * | 2011-09-21 | 2013-03-28 | Dalux Aps | Bim and display of 3d models on client devices |
CN103942820A (zh) * | 2014-04-30 | 2014-07-23 | 武汉库百网络技术有限公司 | 一种多角度仿真三维地图的方法及装置 |
CN104765905A (zh) * | 2015-02-13 | 2015-07-08 | 上海同筑信息科技有限公司 | 基于bim的平面图和第一视角分屏同步显示方法和系统 |
CN107798725A (zh) * | 2017-09-04 | 2018-03-13 | 华南理工大学 | 基于Android的二维住房户型识别和三维呈现方法 |
CN109254766A (zh) * | 2018-07-25 | 2019-01-22 | 中建八局第建设有限公司 | 基于移动端的可视化编程平台及二维图纸三维可视化方法 |
CN110688692A (zh) * | 2019-08-27 | 2020-01-14 | 水利部水利水电规划设计总院 | 一种基于结构化bim模型的二三维联动及叠加显示的方法 |
CN112560275A (zh) * | 2020-12-22 | 2021-03-26 | 中设数字技术股份有限公司 | 一种二维三维实时联动在线图纸批注校审系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于WebGL的高速公路BIM 模型轻量化方法研究;吴学明 等;《工程管理学报》;第第34卷卷(第第5期期);第69-74页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113538708A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113538708B (zh) | 二维视图中对三维bim模型进行展示和交互的方法 | |
Hu et al. | Fast tetrahedral meshing in the wild | |
CN111008422B (zh) | 一种建筑物实景地图制作方法及系统 | |
US9149309B2 (en) | Systems and methods for sketching designs in context | |
US9153062B2 (en) | Systems and methods for sketching and imaging | |
AU2008248192B2 (en) | Methods and apparatuses for preprocessing a CAD drawing | |
EP2153308B1 (en) | Methods and apparatuses for handling a conflict in a cad drawing | |
US20140278283A1 (en) | Editable clipping planes for cad systems | |
US20090273598A1 (en) | Methods and apparatuses for automatically converting objects in CAD drawing from two-dimensions to three-dimensions | |
Zhao et al. | Mathematical morphology-based generalization of complex 3D building models incorporating semantic relationships | |
CN111354062A (zh) | 一种多维空间数据渲染方法及装置 | |
JP6874197B1 (ja) | 設備管理プログラム、設備管理方法、および設備管理システム | |
WO2001008263A2 (en) | Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications | |
CN113112603A (zh) | 三维模型优化的方法和装置 | |
US20200105058A1 (en) | Method for processing 3d data for use in web service and system using the same | |
CN109388843B (zh) | 一种基于vtk的桁架天线的可视化系统及方法、终端 | |
CN104299255A (zh) | 一种三维地形模型的渲染方法 | |
CN114095716A (zh) | 基于bim技术与gis技术的监控摄像机三维仿真方法及系统 | |
Apollonio et al. | Construction, management and visualization of 3D models of large archeological and architectural sites for e-Heritage GIS systems | |
CN116647657A (zh) | 响应式视频画布生成 | |
CN113628323B (zh) | 一种快速构建数字展览文件的方法及智能终端 | |
Oh et al. | Efficient 3D design drawing visualization based on mobile augmented reality | |
Rudakova et al. | CHER-ish: A Sketch-and Image-based System for 3D Representation and Documentation of Cultural Heritage Sites. | |
CN113379814A (zh) | 一种三维空间关系判定方法及装置 | |
Huang et al. | Interactive 3D character modeling from 2D orthogonal drawings with annotations |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |