CN109145366B - 基于Web3D的建筑信息模型轻量级可视化方法 - Google Patents
基于Web3D的建筑信息模型轻量级可视化方法 Download PDFInfo
- Publication number
- CN109145366B CN109145366B CN201810748679.0A CN201810748679A CN109145366B CN 109145366 B CN109145366 B CN 109145366B CN 201810748679 A CN201810748679 A CN 201810748679A CN 109145366 B CN109145366 B CN 109145366B
- Authority
- CN
- China
- Prior art keywords
- dimensional
- dimensional object
- ifc
- building
- coordinate system
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于Web3D的建筑信息模型轻量级可视化方法。通过对定义IFC标准的EXPRESS语言描述文件进行解析,建立从IFC文件中提取各类信息的方法,同时提取出用于三维可视化的信息。通过几何表达的转换和旋转位置矩阵的计算,将原三维可视化信息转化为WebGL图形引擎可以渲染的数据。然后,结合建筑物外形特点,改进原有多叉树算法,创建基于建筑物室内外空间划分与多叉树森林的混合索引。最后,基于混合空间索引,利用视域剔除、遮挡剔除、多线程和缓存管理技术,在基于WebGL的三维交互式图形应用中,在浏览器与服务器之间实现进行三维模型数据的快速调度。该方法具有轻量化性能好、跨平台与计算效率高的优点。
Description
技术领域
本发明涉及建筑信息模型及Web3D技术领域,具体涉及一种基于Web3D的建筑信息模型轻量级可视化方法。
背景技术
建筑信息模型(Building Information Modeling,BIM)作为建筑信息的数据承载平台和业务衔接枢纽,是建筑全生命周期管理的基础配置和核心应用。利用Web3D技术对BIM信息处理和分析,是建筑过程可视化协同设计、分布式处理和移动计算等应用的基础和前提。IFC是BIM信息组织、表达和交换的国际标准。基于IFC的BIM信息存在数据量较大、结构复杂、冗余度较高等因素,直接在Web页面进行可视化的实时性能很弱,无法满足应用过程的操作平滑性和流畅性要求。因此,提高建筑信息模型三维可视化性能具有重要的理论价值和应用价值。
轻量级可视化指的是三维可视化的实现不需要高性能图形硬件,没有安装包,只需要支持主流浏览器的操作系统,减少等待加载和处理三维数据模型所需要的时间。
现有的许多建筑信息模型的轻量级可视化方法都有不同程度上的缺陷。有些方法将IFC文件格式转化为通用的三维模型格式,如OBJ,再利用三维图形引擎直接加载。由于OBJ格式的数据冗余度较大,使得可视化加载速度较慢;还有一些方法,利用原有多叉树的空间划分方法对三维空间进行处理,破坏三维物体的完整性,增加了绘制和渲染计算复杂性;遮挡融合是通常遮挡剔除算法中不可缺少的一步,如果采用CPU进行计算通常速度慢;虽然用GPU计算速度快,但多数浏览器并不支持最新的直接调用GPU来做遮挡查询的功能。因此,现有的建筑信息模型轻量级可视化技术,通常具有低效性、不兼容性和片面性。
发明内容
为了解决上述背景技术存在的问题,本发明的目的是提供一种基于Web3D的建筑信息模型轻量级可视化方法。借助IFC标准对建筑物构件的定义,解析建筑物构件的外形、属性和位置信息,得到整个建筑场景的可视化信息,并结合WebGL图形库,研究基于Web3D的BIM轻量级可视化方法。具体做法:针对建筑物信息三维可视化的特点,对室内外场景数据进行空间划分,并建立相应分块数据的多叉树森林混合索引,分块分批进行数据的调度和加载;利用遮挡剔除与视域剔除技术进行模型的绘制和渲染,完成大数据量BIM模型的轻量可视化显示和浏览。
为了达到上述目的,本发明所采用的技术方案是:
基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,通过借助IFC标准对建筑物构件的定义,解析建筑物构件的外形、属性和位置信息,得到整个建筑场景的可视化信息,并结合WebGL图形库,完成对建筑信息模型的轻量可视化显示,所述方法包括如下步骤:
(1)解析符合IFC标准的EXPRESS语言描述文件,获取BIM实体和层次结构;
(2)从符合IFC标准的EXPRESS语言描述文件中提取三维可视化信息;
(3)计算每个建筑物构件的旋转位置矩阵;
(4)转换建筑信息模型的几何外形表达;
(5)构建基于建筑物室内外空间划分与多叉树森林的混合空间索引;
(6)利用视域剔除、遮挡剔除、多线程和缓存管理技术进行构件数据调度,完成浏览器端对建筑信息模型的轻量可视化。
进一步地,步骤(1)中,具体实现过程包括:IFC是通用的BIM模型文件数据格式,EXPRESS是IFC Schema使用的数据建模语言,它使用面向对象的理念和表达方式,描述实体与实体之间的继承和派生关系;用EXPRESS语言描述的IFC文件格式规范,其中规定了每个实体的名字、成员、继承关系,还规定了基本数据类型,函数和功能;通过“SUBTYPE OF”,即“子类型”关键字找到其继承关系,并找到每个成员的名字和类型,从而通过对EXPRESS语言描述文件解析,得到BIM实体和实体之间的逻辑层次结构关系,并将结果存在一个新的IFC文件里。
进一步地,步骤(2)中,具体实现过程包括:
第一步,针对IFC文件的数据部分逐行解析,将每一行的对象编号、对象名和对象内容数组提取出来,将对象内容数组分别用JavaScript语言中对应的字符串、实数、整形、数组、对象类型进行存储;
第二步,将IFC文件内在的对象与对象之间隐含的结构信息,转化为JavaScript定义的数据结构进行保存,具体是:根据计算机图形学知识和IFC说明文档,归纳IFC对于三维可视化信息的组织结构,将IFC文件的可视化信息解析出来,并存储在树状结构中;将提取出来的信息存储在新的IFC文件中,在IFC文件中通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态。
进一步地,步骤(3)中,具体实现过程包括:
IFC文件是通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态的,即楼层的位置旋转是在建筑物的相对坐标系中定义的,三维物体的位置旋转是在楼层的相对坐标系中定义的,其中每个相对坐标系是通过x、y、z三条坐标轴和原点位置定义的;Threejs图形引擎则需要世界坐标系下的位置旋转矩阵才能绘制三维信息,因此,需要将IFC文件中对于三维物体的递归定位转化为三维物体在世界坐标系下的位置旋转矩阵;
具体算法描述:将IFC中的递归定位转化为世界坐标系下的位置旋转矩阵;输入:三维物体当前的定位信息,IFC文件中导出的定位信息哈希表;输出:在世界坐标系下,三维物体的位置旋转4x4矩阵;算法步骤如下:
第一步,建立一个栈;从三维物体的相对坐标系出发,递归地将其所参照的相对坐标系,包括原点位置、Z轴朝向、X轴朝向,顺次压入栈中;
第二步,出栈操作,将每个元素转换为世界坐标系下的位置旋转4x4矩阵;世界坐标系M表示4x4矩阵,相对坐标系newM,包括newZ、newX、newO;
相对坐标系转换为世界坐标系的步骤:
1)求出new Z轴{0,0,1}到newZ的旋转过渡矩阵M1;
2)令newM的旋转部分乘以M1,则newM的X轴等于{1,0,0}*M1,记为X;
3)求出X到newX的旋转过渡矩阵M2;
4)返回4x4矩阵M,M的旋转矩阵为M1*M2,M的位置矩阵为newO。
通过上述算法,把IFC中对于三维物体的位置和旋转朝向转化为世界坐标系下的4x4矩阵。
进一步地,步骤(4)中,具体实现过程包括:
将BIM构件面片进行三角化处理,三角化处理的目的是因为IFC文件给出的网格并不全部都是由三角面片组成的,而是由任意多边形面片组成的,但是Threejs图形引擎只能渲染由三角面片组成的网格,因此需要将IFC中的任意多边形面片经过三角化技术进行处理;
采用演化算法来进行三角化的处理,三角化过程如下:
第一步,预处理,将需要三角化的区域给像素化;
第二步,初始化种群,即由原多边形的顶点组成的一组三角形序列,初始种群有n个;
第三步,演化,即迭代演化;计算三角形集合的覆盖区域中重复的像素数量,未覆盖原多边形的像素,以及超出原多边形区域的像素总数之和;
第四步,变异,种群中越优秀的个体越容易产生后代,并且后代要进行变异,其变异原则如下,如果存在重复区域,则减少三角形;如果未覆盖原多边形,则增加三角形,如果超出原多边形区域,则减少三角形;重复第三步,计算值小于阈值,则停止迭代,值越小,则符合条件的三角形集合越多,说明三角化的质量越好。
进一步地,步骤(5)中,具体实现过程包括:
构建多叉树森林的混合索引机制描述BIM构件的空间关系,混合空间索引的划分方法是,首先录入三维场景中每个构件的建筑属性,即梁、板、柱属性,计算每个三维物体的包围盒信息,接着通过外墙和屋顶的包围盒算出室内外空间,最后构建室内外三维场景的多叉树森林空间索引;多叉树森林的划分算法是:
1)把三维场景所有的三维物体都放入待划分构件列表,记待划分构件列表为A,开始递归的进行自适应森林的划分;
2)如果A不为空,则在自适应森林中新建一棵树,把A中的所有三维物体都转移到这棵树的根结点上,递归的划分这棵树;
3)算出当前结点上的所有三维物体的整体的包围盒,找出包围盒长宽高中的最长边,过最长边的中点且垂直于最长边的为切割平面;
4)对于当前节点上的所有三维物体,如果完全在切割平面左边,则放入左结点,如果完全在切割平面右边,则放入右结点,否则放入被切割集合;如果左右结点都为空,则不对当前结点进行划分,否则,把左右结点分别设置为当前结点的左右子树,并将被切割集合中的三维物体转移到A,进一步对左右子树进行划分;
5)通过不断地对三维物体集合的包围盒进行切分可以得到多叉树森林索引;
建立好建筑物室内外空间划分与多叉树森林索引之后,保存为JSON格式的索引文件,并由服务器传输给浏览器。
进一步地,步骤(6)中,具体实现过程包括:
第一步,在建立混合空间索引之后,首先在浏览器端通过遮挡剔除与视域剔除技术找出在当前视椎体范围内,需要渲染的三维物体列表;
第二步,然后对比已经渲染的三维物体,即在Threejs图形引擎的场景树上的三维物体列表,找出需要加载与卸载的三维物体。
进一步地,通过遮挡剔除与视域剔除技术找出在当前视椎体范围内,需要渲染的三维物体列表,具体实现过程包括:
在混合空间索引中的室外多叉树森林索引中,森林的每个叶子结点都是一个小范围空间内的三维物体集合,其所占空间范围可以用一个包围球表示,包围球与包围盒的求法如下所示:
包围盒的算法如下,首先遍历这个建筑物构件几何信息中的所有顶点,求出这些顶点在x轴、y轴、z轴分量上的最大值与最小值,即Xmin、Ymin、Zmin、Xmax、Ymax、Zmax;
包围球的球心为:
{x:(Xmin+Xmax)/2,y:(Ymin+Ymax)/2,z(Zmin+Zmax)/2};
包围盒用两个点即可以表示,分别是:
{x:Xmax,y:Ymax,z:Zmax}与{x:Xmin,y:Ymin,z:Zmin};
这两个点分别是包围盒8个顶点中坐标最大的和最小的,成对角关系,包围盒的所有边均与坐标轴平行;
同时,森林的每个结点也可以用一个包围球表示其子树上的所有三维物体集合的所占空间范围;通过遍历森林,如果视椎体与当前结点的包围球相交则继续遍历,则遍历到的所有叶子结点的三维物体集合即为视野范围内的全部三维物体;
判断包围球是否与视椎体相交的方法根据下式求出,其中h小于包围球的半径r就表示包围球与视椎体相交,h用下面公式求出:
上述公式,ball.x和ball.y分别为包围球的横坐标和纵坐标,fov表示相机的焦距。
进一步地,对比已经渲染的三维物体,即在Threejs图形引擎的场景树上的三维物体列表,找出需要加载与卸载的三维物体,具体实现过程包括:
浏览器在获取混合空间索引之后,就可以根据用户当前的视域范围进行可见性判断,找出在视域范围内的三维物体集合,然后去和当前Threejs图形引擎已加载的三维物体集合做对比,找出已经加载但目前不在视野范围内的三维物体集合,再找出未加载但目前在视野范围内的三维物体集合,前者需要从Threejs场景树上卸载,后者需要加载到Threejs场景树上,如果其几何外形信息不在浏览器缓存中的,需要向服务器请求下载;
通过结合回调管理器与缓存管理器共同优化渐进式数据调度,具体的调度算法是:
1)遍历室内空间列表,如果视点处于哪个室内空间,则判断目前所处的室内空间是否是之前所处的空间,如果是则不需要进行调度,如果不是,且当前处于另一个室内空间,则清空场景树,并将当前室内空间的所有三维物体加载到场景树上;
2)如果当前视点处于室外空间,则结合当前视椎体遍历自适应森林索引,找出所有可见的三维物体;如果之前视点处于室内空间,则清空场景树,并把它加载到场景树上;否则,比较场景树上的三维物体和之前场景中的三维物体,对于场景树上有但之前场景中没有的则从场景树上卸载,对于场景树上没有,但之前场景中有的则加载到场景树上。
与现有技术相比,本发明的有益效果是:本发明通过对定义IFC标准的EXPRESS语言描述文件进行解析,建立从IFC文件中提取各类信息的方法,同时提取出用于三维可视化的信息。通过几何表达的转换和旋转位置矩阵的计算,将原三维可视化信息转化为WebGL图形引擎可以渲染的数据。然后,结合建筑物外形特点,改进原有多叉树算法,创建基于建筑物室内外空间划分与多叉树森林的混合索引。最后,基于混合空间索引,利用视域剔除、遮挡剔除、多线程和缓存管理技术,在基于WebGL的三维交互式图形应用中,在浏览器与服务器之间实现进行三维模型数据的快速调度。该方法具有轻量化性能好、跨平台与计算效率高的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1:IFC Window继承关系图。
图2:IFC语句分析举例。
图3:三维可视化数据的结构关系。
图4:位置和旋转矩阵。
图5:面片的多边形表示法。
图6:面片的三角形表示法。
图7:混合空间索引示意图。
图8:多叉树森林索引构建流程图。
图9:视椎体的范围示意图。
图10:包围球与视椎体相交测试示意图。
图11:遮挡剔除与视域剔除算法流程图。
图12:基于多线程和缓存管理的数据调度流程图。
图13:招聘展厅BIM模型效果图。
图14:卧室BIM模型效果图。
图15:商业园区BIM模型效果图。
图16:街道BIM模型效果图。
图17:室内BIM模型效果图。
图18:优化前后渲染展厅BIM的加速比对照图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出的基于Web3D的建筑信息模型轻量级可视化方法,通过借助IFC标准对建筑物构件的定义,解析建筑物构件的外形、属性和位置信息,得到整个建筑场景的可视化信息,并结合WebGL图形库,完成对建筑信息模型的轻量可视化显示,所述方法包括如下步骤:
(1)解析符合IFC标准的EXPRESS语言描述文件,获取BIM实体和层次结构;
(2)从符合IFC标准的EXPRESS语言描述文件中提取三维可视化信息;
(3)计算每个建筑物构件的旋转位置矩阵;
(4)转换建筑信息模型的几何外形表达;
(5)构建基于建筑物室内外空间划分与多叉树森林的混合空间索引;
(6)利用视域剔除、遮挡剔除、多线程和缓存管理技术进行构件数据调度,完成浏览器端对建筑信息模型的轻量可视化。
下面结合具体实例对本发明详细步骤进行说明。
(1)符合IFC标准的EXPRESS语言描述文件解析
IFC是一种比较通用的BIM模型文件数据格式。EXPRESS是IFC Schema使用的数据建模语言,它使用面向对象的理念和表达方式,描述实体与实体之间大量复杂的继承和派生关系。采用EXPRESS语言定义的采用IFC标准的BIM文件组织结构如下所示:
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition[CoordinationView,QuantityTakeOffAddOnView]'),'2;1');
FILE_NAME('example.ifc','2008-08-01T21:53:56',('Architect'),('Building Designer Office'),'IFC Engine DLL');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCPROJECT('3MD_HkJ6X2EwpfIbCFm0g_',#2,'Default Project','Description of Default Project',$,$,$,(#2
#2=IFCOWNERHISTORY(#3,#6,$,.ADDED.,$,$,$,1217620436);
#3=IFCPERSONANDORANIZATION(#4,#5,$);
#4=IFCPERSON('ID001','Bonsma','Peter',$,$,$,$,$);
#5=IFCOGANIZATION($,'TNO','TNO Building Inovation',$,$);
#6=IFCAPPLICATION(#5,'0.10','Test Application','TA1001');
#7=IFCUNITASSIGANMENT((#8,#9,#10,#11,#15,#16,#17,#18,#19));
#8=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#9=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#10=IFCSIUNIT(*,.VOLUMENUNIT.,$,.CUBIC_METRE.);
#11=IFCCONVERSATIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#13);
#12=IFCDIMESIONALEXPONENTS(0,0,0,0,0,0,0);
#13=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(1.745E-2),#14);
#14=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#15=IFCSIUNIT(*,.SOLIDANGLEUNIT.,$,.STERADIAN.);
#16=IFCSIUNIT(*,.MASSUNIT.,$,.GRAM.);
#17=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND);
#18=IFCSIUNIT(*,.THERMODYNAMICTEMPEPATUREUNIT.,$,.DEGREE_CELSIUS.);
#19=IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,$,.LUMEN.);
#20=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.000E-5,#21,$);
#21=IFCAXIS2PLACEMENT3D(#22,$,$);
#22=IFCCARTESIANPOINT((0.,0.,0.));
#23=IFCSITE('3rNg_N55v4CRBpQVbZJoHB',#2,'Default Site',Desciption ofDefault Site',$,#24,$,$,.ELEM);
#24=IFCLOCALPLACEMENT($,#25);
#25=IFCAXIS2PLACEMENT3D(#26,#27,#28);
#26=IFCCARTESIANPOINT((0.,0.,0.));
#27=IFCDIRECTION((0.,0.,1.));
#28=IFCDIRECTION((1.,0.,0.));
#29=IFCBUILDING('Oyf_M5JZv9QQX1y4dq_zvI',#2,'Default Building',Description of Default Building',$,#30,)
#30=IFCLOCALPALCEMENT(#24,#31);
#31=IFCAXIS2PLACEMENT3D(#32,#33,#34);
#32=IFCCARTESIANPOINT((0.,0.,0.));
#代表该语句的实例号,在IFC文件之中,每一条语句被分配一个实例号,以便被其他实例引用。例如,#27语句的实例是IfcDirection,表示方向,其成员只有一个数组类型的元素,数组内各个元素都是实数,且它们的平方和是1。IfcDirection用来表示物体朝向、参数化实体外形拉伸方向和法线等。语句#30的实例名是IfcLocalPlacement,包括#24和#31两个实例,表示了该实体引用了其他实例进行表达。一个成员表示绝对坐标系,另一个成员表示相对坐标系,共同构成了对一个三维物体的空间定位的表达。有的语句利用$符号代替语句中次要信息,$所占部分是该语句中需要被赋值的属性。
用EXPRESS语言描述的IFC文件格式规范,其中规定了每个实体的名字、成员、继承关系,还规定了基本数据类型,还规定了函数和功能等。例如,一个Ifc Window实体在EXPRESS语言描述文件的说明。
通过“SUBTYPE OF”,即“子类型”关键字找到其继承关系,并找到每个成员的名字和类型。其继承关系如图1所示。
参见图1,IFCProduct实体的属性值Object Placement、Representation定义了实体的几何表达。构件空间位置定义通过ObjectPlacement属性进行,构件几何形状定义通过Representation属性进行。所有派生子类均继承了IFCProduct的Object Placement、Representation属性,可以利用这两个属性进行几何表达。
上述分析可知,通过对EXPRESS语言描述文件解析,得到BIM实体和实体之间的逻辑结构关系,并将结果存在一个新的IFC文件里面。
(2)BIM三维可视化信息的提取
建筑构件(实体)是BIM模型的基本组成单元,其几何表达是IFC标准描述的重点。IFC文件虽然能够完整表达BIM模型中构件的大小、形状以及空间位置,但是构件(实体)的表达和引用是逐条逐行进行的,且蕴含施工进度、人员管理和文本等非可视化信息。IFC文件结构所表达的实体之间的复杂和冗余的逻辑关系,不利于BIM三维可视化信息表达。通过步骤(1)分析,本发明用JavaScript语言对IFC文件进行解析,提取出来的三维可视化信息保存为树形的数据结构。BIM可视化信息提取步骤如下:
第一步,针对IFC文件的数据部分逐行解析,将每一行的对象编号、对象名和对象内容数组提取出来。将对象内容数组分别用JavaScript语言中对应的字符串、实数、整形、数组、对象等类型进行存储。
图2为IFC文件的某一行的解析示例:对IFC文件解析后,分别建立以对象编号和对象名为关键字的哈希表对IFC文件的主体部分的数据进行存储。根据这两张表,按照对象名就能快速找到相同名字的对象列表,给定对象编号就能快速找到这个对象的编号和内容数组,方便后续处理。
第二步,将IFC文件内在的对象与对象之间隐含的结构信息,转化为JavaScript定义的数据结构进行保存。IFC文件包含两种描述信息的语句,一种是对某个实体进行描述,比如坐标点的x、y、z数值,颜色的r、g、b数值,网格由哪几个面片构成;另一种是描述实体与实体之间的关系,比如楼层与本楼层内实体的包含关系、孔洞与被开孔实体的从属关系。
根据计算机图形学知识和IFC说明文档,归纳IFC对于三维可视化信息的组织结构,将IFC文件的可视化信息解析出来,并存储在树状结构中。
从IFC文件提取得到通用的BIM可视化信息结构,如图3所示。图3包含IFC文件中三维可视化所需的所有信息,圆圈表示三维可视化所需要的ifc实体,线条表示实体与实体之间的关系。
上述分析可知,从IFC文件中提取出来的三维可视化信息,层次关系清晰、数据引用明确、结构合理。本发明将提取出来信息存储在新的IFC文件中,在IFC文件中通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态。
(3)计算旋转位置矩阵
通常,在浏览器上绘制三维模型需要借助Threejs图形引擎。Threejs对于三维物体的位置和三维旋转姿态是通过一个世界坐标系下4x4位置旋转矩阵来描述的,由步骤(2)获得的IFC文件,Threejs图形引擎根本无法识别。因此,需要将三维模型的IFC文件转换为Threejs适合表达的矩阵。
Threejs图形引擎所需的4x4矩阵描述,如图4所示:A区域表示旋转姿态,B区域表示位置。A是3x3矩阵,A的行列式为1。a15恒为1,(a12,a13,a14)表示三维物体所在的实际位置。a3,a7,a11为0。
IFC文件是通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态的,即楼层的位置旋转是在建筑物的相对坐标系中定义的,三维物体的位置旋转是在楼层的相对坐标系中定义的。其中每个相对坐标系是通过x、y、z三条坐标轴和原点位置定义的。Threejs图形引擎则需要世界坐标系下的位置旋转矩阵才能绘制三维信息,因此,需要将IFC文件中对于三维物体的递归定位转化为三维物体在世界坐标系下的位置旋转矩阵。
算法描述:将IFC中的定位表示法转化为世界坐标系下的位置旋转矩阵。
输入:三维物体当前的定位信息,IFC文件中导出的定位信息哈希表
输出:在世界坐标系下,三维物体的位置旋转4x4矩阵
算法步骤如下:
第一步,建立一个栈;从三维物体的相对坐标系出发,递归地将其所参照的相对坐标系(原点位置、Z轴朝向、X轴朝向),顺次压入栈中;
第二步,出栈操作,将每个元素转换为世界坐标系下的位置旋转4x4矩阵;世界坐标系M表示4x4矩阵,相对坐标系newM,包括newZ、newX、newO;
相对坐标系转换为世界坐标系的步骤:
(1)求出newZ轴{0,0,1}到newZ的旋转过渡矩阵M1;
(2)令newM的旋转部分乘以M1,则newM的X轴等于{1,0,0}*M1,记为X。
(3)求出X到newX的旋转过渡矩阵M2;
(4)返回4x4矩阵M,M的旋转矩阵为M1*M2,M的位置矩阵为newO。
通过上述算法,把IFC中对于三维物体的位置和旋转朝向转化为世界坐标系下的4x4矩阵。
具体算法流程实例:
其中applyNewLocation函数的算法如下所示:
算法描述:将IFC文件中对于新的坐标系的定义,即相对于参照坐标系定义新的Z方向、X方向和原点位置,给出新的坐标系相对于参照坐标系的参照坐标系的定义,用4x4矩阵描述。
输入:参照坐标系4x4矩阵oldM,以及基于参照坐标系的新的坐标系,包括newZ、newX和newO。
输出:用4x4矩阵表示的新的坐标系newM。
算法流程:
1、令newM=oldM
2、求出newM的Z轴{0,0,1}到newZ的旋转矩阵M1。
3、令newM的旋转部分乘以M1,则newM的Z轴与newZ重合,则newM的X轴等于{1,0,0}*M1,记为X。
4、求出X到newX的旋转矩阵M2。
5、令newM的旋转部分乘以M2,则newM的X轴与新坐标系的X轴重合。
6、设oldM的位置部分为oldO,newO-oldO为新的坐标系相对于旧的坐标系在旧的坐标系中的偏移方向,记为v。
7、令v=v*oldM的旋转部分,得到新的坐标系相对于旧的坐标系在旧的坐标系的参照坐标系中的偏移方向。
8、令newM的位置部分加上v。
(4)转换三维模型几何外形表达
将BIM构件面片进行三角化处理。三角化处理的目的是因为IFC文件给出的网格并不全部都是由三角面片组成的,而是由任意多边形面片组成的,但是Threejs图形引擎只能渲染由三角面片组成的网格,因此需要将IFC中的任意多边形面片经过三角化技术进行处理。
一个BIM构件表面,通常如图5所示。图5中,BIM构件表面存在孔洞,三角形A1B1C1,四边形A2B2C2D2。本发明采用演化算法来进行三角化的处理。三角化过程如下:
第一步,预处理,将需要三角化的区域给像素化。
第二步,初始化种群,即由原多边形的顶点组成的一组三角形序列,初始种群有n个。
第三步,演化,即迭代演化;计算三角形集合的覆盖区域中重复的像素数量,未覆盖原多边形的像素,以及超出原多边形区域的像素总数之和。
第四步,变异,种群中越优秀的个体越容易产生后代,并且后代要进行变异,其变异原则如下,如果存在重复区域,则减少三角形;如果未覆盖原多边形,则增加三角形,如果超出原多边形区域,则减少三角形。重复第三步,计算值小于阈值,则停止迭代,值越小,则符合条件的三角形集合越多,说明三角化的质量越好。
图5三角化之后的结果,如图6所示。
(5)构建基于室内外空间与多叉树森林的混合索引
人所在位置和角度不同,看到的场景不一样。对于建筑物而言,在室外空间看不到建筑物的室内场景,在室内空间看不到建筑物的室外场景,看不见的部分可以不进行数据调度。通常室内外空间的场景数据量较大,为了提高数据加载的效率,需要充分考虑构件实体之间的空间关系,本发明构建多叉树森林的混合索引机制描述BIM构件的空间关系。混合空间索引的划分方法是,首先录入三维场景中每个构件的建筑属性,即梁、板、柱等属性,计算每个三维物体的包围盒信息,接着通过外墙和屋顶的包围盒算出室内外空间,最后构建室内外三维场景的多叉树森林空间索引。
对室内外的三维场景划分结果如图7所示。多叉树森林的划分是针对室外空间的三维物体较多的情况,需要进一步将其划分为较小的空间,其创建算法:
1)把三维场景所有的三维物体都放入待划分构件列表,记待划分构件列表为A。开始递归的进行自适应森林的划分。
2)如果A不为空,则在自适应森林中新建一棵树,把A中的所有三维物体都转移到这棵树的根结点上,递归的划分这棵树。
3)算出当前结点上的所有三维物体的整体的包围盒,找出包围盒长宽高中的最长边,过最长边的中点且垂直于最长边的为切割平面。
4)对于当前节点上的所有三维物体,如果完全在切割平面左边,则放入左结点,如果完全在切割平面右边,则放入右结点,否则放入被切割集合。如果左右结点都为空,则不对当前结点进行划分。否则,把左右结点分别设置为当前结点的左右子树,并将被切割集合中的三维物体转移到A,进一步对左右子树进行划分。
上述算法的流程图,如图8所示。通过不断地对三维物体集合的包围盒进行切分可以得到多叉树森林索引。建立好建筑物室内外空间划分与多叉树森林索引之后,保存为JSON格式的索引文件,并由服务器传输给浏览器。
(6)利用视域剔除、遮挡剔除、多线程和缓存管理技术进行数据调度
在建立混合空间索引之后,首先在浏览器端通过遮挡剔除与视域剔除技术找出在当前视椎体范围内,需要渲染的三维物体列表,然后对比已经渲染的三维物体,即在Threejs图形引擎的场景树上的三维物体列表,找出需要加载与卸载的三维物体。
视椎体的范围如图9所示。由于混合空间索引给出了建筑物各个室内空间的范围,因此可以根据摄像机所在的位置判断目前观察者是否在建筑物的某个室内空间中。如果在,那么当前观察者只能看到此室内空间范围内的三维物体。如果不在,则说明当前观察者处在室外空间,因此看不到任何室内的三维物体。但由于一般建筑场景中室外的三维物体数量众多,因此需要通过视域剔除技术,找出当前视野范围内的三维物体。在混合空间索引中的室外多叉树森林索引中,森林的每个叶子结点都是一个小范围空间内的三维物体集合,其所占空间范围可以用一个包围球表示,包围球与包围盒的求法如下所示:
包围盒的算法如下,首先遍历这个建筑物构件几何信息中的所有顶点,求出这些顶点在x轴、y轴、z轴分量上的最大值与最小值,即Xmin、Ymin、Zmin、Xmax、Ymax、Zmax。
包围球的球心为:
{x:(Xmin+Xmax)/2,y:(Ymin+Ymax)/2,z:(Zmin+Zmax)/2),
包围盒用两个点即可以表示,分别是:
{x:Xmax,y:Ymax,z:Zmax}与{x:Xmin,y:Ymin,z:Zmin}
这两个点分别是包围盒8个顶点中坐标最大的和最小的,成对角关系,包围盒的所有边均与坐标轴平行。
同时,森林的每个结点也可以用一个包围球表示其子树上的所有三维物体集合的所占空间范围。通过遍历森林,如果视椎体与当前结点的包围球相交则继续遍历,则遍历到的所有叶子结点的三维物体集合即为视野范围内的全部三维物体。
判断包围球是否与视椎体相交的方法如图10所示。其中h小于包围球的半径r就表示包围球与视椎体相交,h用下面公式求出:
上述公式,ball.x和ball.y分别为包围球的横坐标和纵坐标,fov表示相机的焦距。
在获取需要进行三维可视化的物体集合后,需要与目前Threejs场景树上已经加载的三维物体做对比。对于已经加载但现在不必显示的需要从Threejs场景树上卸载,对于没有加载但现在需要显示的需要加载到Threejs场景树上。作为三维模型数据量最大部分的几何外形数据,以三维物体ID为文件名存储在服务器上,在需要加载的时候再向服务器请求下载,可以减少网络传输和浏览器缓存的压力。
对应算法的流程图,如图11所示。浏览器在获取混合空间索引之后,就可以根据用户当前的视域范围进行可见性判断,找出在视域范围内的三维物体集合,然后去和当前Threejs图形引擎已加载的三维物体集合做对比,找出已经加载但目前不在视野范围内的三维物体集合,再找出未加载但目前在视野范围内的三维物体集合,前者需要从Threejs场景树上卸载,后者需要加载到Threejs场景树上,如果其几何外形信息不在浏览器缓存中的,需要向服务器请求下载。
由于可见性计算量较大,因此专门在浏览器端开辟一个线程,减轻计算压力。通过结合回调管理器与缓存管理器共同优化渐进式数据调度,具体的调度算法:遍历室内空间列表,如果视点处于哪个室内空间,则判断目前所处的室内空间是否是之前所处的空间。如果是则不需要进行调度。如果不是,且当前处于另一个室内空间,则清空场景树,并将当前室内空间的所有三维物体加载到场景树上。如果当前视点处于室外空间,则结合当前视椎体遍历自适应森林索引,找出所有可见的三维物体。如果之前视点处于室内空间,则清空场景树,并把它加载到场景树上。否则,比较场景树上的三维物体和之前场景中的三维物体,对于场景树上有但之前场景中没有的则从场景树上卸载,对于场景树上没有,但之前场景中有的则加载到场景树上。
具体流程,如图12所示。图中A是浏览器端根据当前相机的位置、朝向、fov、近裁面、远裁面等信息,在室内外空间索引和多叉树森林索引上面,经过可见性计算找出来的在视野范围内的三维物体列表。B是用户的在漫游的过程中的上一次数据调度的时候,经过可见性判断,找出来的在视野范围内的三维物体。C中存储的是需要加载的三维物体和需要卸载的三维物体,其中,在A集合不在B集合的三维物体是需要加载到Threejs场景树的三维物体,在B集合不在A集合的三维物体是需要从Threejs场景树上卸载的三维物体。
实验结果与分析
实验硬件配置情况:浏览器端为Chrome浏览器,显卡为GTX 1080,CPU为Ryzen71700,内存为DDR4 2400 16G,电信光纤网络;服务器端为阿里云服务器,操作系统为Ubuntu,使用Nodejs技术建立服务器,两核CPU,4GB内存,50MB网络带宽。
1)三维可视化效果
从图13-图17的截图可以看到,对于不同的BIM模型以及不同的观察角度,均能达到很好的可视化效果。
2)加载速度对比
本发明提出的基于混合空间索引的数据调度优化算法,能够避免三维模型需要先经过网络传输完全下载后再可视化。传统的做法是模型数据的一次性加载,优化后的算法是数据的分批加载和多线程处理。优化前后的加载时间如下表1所示。
表1本发明提出方法的模型加载时间
由上表可知,BIM模型的加载速度得到了大大的提高,优化后数据加载效率提升了95%左右。
3)渲染流畅度对比
渲染流畅程度通常用fps指标进行度量,fps即每秒帧数,由于本发明所提出的算法大大减少了需要绘制的面片数量,因此能很好的提高绘制效率。图18是渲染招聘展厅BIM场景使用本发明算法前后的加速比对照图。
从图中可以看到优化后渲染速度明显好于优化前,显著减少渲染压力。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (9)
1.基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,通过借助IFC标准对建筑物构件的定义,解析建筑物构件的外形、属性和位置信息,得到整个建筑场景的可视化信息,并结合WebGL图形库,完成对建筑信息模型的轻量可视化显示,所述方法包括如下步骤:
(1)解析符合IFC标准的EXPRESS语言描述文件,获取BIM实体和层次结构;
(2)从符合IFC标准的EXPRESS语言描述文件中提取三维可视化信息;
(3)计算每个建筑物构件的位置旋转矩阵;
(4)转换建筑信息模型的几何外形表达;
(5)构建基于建筑物室内外空间划分与多叉树森林的混合空间索引;
(6)利用视域剔除、遮挡剔除、多线程和缓存管理技术进行构件数据调度,完成浏览器端对建筑信息模型的轻量可视化。
2.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(1)中,具体实现过程包括:IFC是通用的BIM模型文件数据格式,EXPRESS是IFC Schema使用的数据建模语言,它使用面向对象的理念和表达方式,描述实体与实体之间的继承和派生关系;用EXPRESS语言描述的IFC文件格式规范,其中规定了每个实体的名字、成员、继承关系,还规定了基本数据类型,函数和功能;通过“SUBTYPE OF”,即“子类型”关键字找到其继承关系,并找到每个成员的名字和类型,从而通过对EXPRESS语言描述文件解析,得到BIM实体和实体之间的逻辑层次结构关系,并将结果存在一个新的IFC文件里。
3.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(2)中,具体实现过程包括:
第一步,针对IFC文件的数据部分逐行解析,将每一行的对象编号、对象名和对象内容数组提取出来,将对象内容数组分别用JavaScript语言中对应的字符串、实数、整形、数组、对象类型进行存储;
第二步,将IFC文件内在的对象与对象之间隐含的结构信息,转化为JavaScript定义的数据结构进行保存,具体是:根据计算机图形学知识和IFC说明文档,归纳IFC对于三维可视化信息的组织结构,将IFC文件的可视化信息解析出来,并存储在树状结构中;将提取出来的信息存储在新的IFC文件中,在IFC文件中通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态。
4.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(3)中,具体实现过程包括:
IFC文件是通过递归定义相对坐标系来描述三维物体的位置和三维旋转姿态的,即楼层的位置旋转是在建筑物的相对坐标系中定义的,三维物体的位置旋转是在楼层的相对坐标系中定义的,其中每个相对坐标系是通过x、y、z三条坐标轴和原点位置定义的;Threejs图形引擎则需要世界坐标系下的位置旋转矩阵才能绘制三维信息,因此,需要将IFC文件中对于三维物体的递归定位转化为三维物体在世界坐标系下的位置旋转矩阵;
算法描述:将IFC中的递归定位转化为世界坐标系下的位置旋转矩阵;
输入:三维物体当前的定位信息,IFC文件中导出的定位信息哈希表;
输出:在世界坐标系下,三维物体的位置旋转4x4矩阵;
算法步骤如下:
第一步,建立一个栈;从三维物体的相对坐标系出发,递归地将其所参照的相对坐标系,包括原点位置、Z轴朝向、X轴朝向,顺次压入栈中;
第二步,出栈操作,将每个元素转换为世界坐标系下的位置旋转4x4矩阵;世界坐标系M表示4x4矩阵,相对坐标系newM,包括newZ、newX、newO;
相对坐标系转换为世界坐标系的步骤:
1)求出new Z轴{0,0,1}到newZ的旋转过渡矩阵M1;
2)令newM的旋转部分乘以M1,则newM的X轴等于{1,0,0}*M1,记为X;
3)求出X到newX的旋转过渡矩阵M2;
4)返回4x4矩阵M,M的旋转矩阵为M1*M2,M的位置矩阵为newO,
通过上述算法,把IFC中对于三维物体的位置和旋转朝向转化为世界坐标系下的4x4矩阵。
5.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(4)中,具体实现过程包括:
将BIM构件面片进行三角化处理,三角化处理的目的是因为IFC文件给出的网格并不全部都是由三角面片组成的,而是由任意多边形面片组成的,但是Threejs图形引擎只能渲染由三角面片组成的网格,因此需要将IFC中的任意多边形面片经过三角化技术进行处理;
采用演化算法来进行三角化的处理,三角化过程如下:
第一步,预处理,将需要三角化的区域给像素化;
第二步,初始化种群,即由原多边形的顶点组成的一组三角形序列,初始种群有n个;
第三步,演化,即迭代演化;计算三角形集合的覆盖区域中重复的像素数量,未覆盖原多边形的像素,以及超出原多边形区域的像素总数之和;
第四步,变异,种群中越优秀的个体越容易产生后代,并且后代要进行变异,其变异原则如下,如果存在重复区域,则减少三角形;如果未覆盖原多边形,则增加三角形,如果超出原多边形区域,则减少三角形;重复第三步,计算值小于阈值,则停止迭代,值越小,则符合条件的三角形集合越多,说明三角化的质量越好。
6.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(5)中,具体实现过程包括:
构建多叉树森林的混合索引机制描述BIM构件的空间关系,混合空间索引的划分方法是,首先录入三维场景中每个构件的建筑属性,即梁、板、柱属性,计算每个三维物体的包围盒信息,接着通过外墙和屋顶的包围盒算出室内外空间,最后构建室内外三维场景的多叉树森林空间索引;多叉树森林的划分算法是:
1)把三维场景所有的三维物体都放入待划分构件列表,记待划分构件列表为A,开始递归的进行自适应森林的划分;
2)如果A不为空,则在自适应森林中新建一棵树,把A中的所有三维物体都转移到这棵树的根结点上,递归的划分这棵树;
3)算出当前结点上的所有三维物体的整体的包围盒,找出包围盒长宽高中的最长边,过最长边的中点且垂直于最长边的为切割平面;
4)对于当前节点上的所有三维物体,如果完全在切割平面左边,则放入左结点,如果完全在切割平面右边,则放入右结点,否则放入被切割集合;如果左右结点都为空,则不对当前结点进行划分,否则,把左右结点分别设置为当前结点的左右子树,并将被切割集合中的三维物体转移到A,进一步对左右子树进行划分;
5)通过不断地对三维物体集合的包围盒进行切分可以得到多叉树森林索引;
建立好建筑物室内外空间划分与多叉树森林索引之后,保存为JSON格式的索引文件,并由服务器传输给浏览器。
7.根据权利要求1所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,步骤(6)中,具体实现过程包括:
第一步,在建立混合空间索引之后,首先在浏览器端通过遮挡剔除与视域剔除技术找出在当前视椎体范围内,需要渲染的三维物体列表;
第二步,然后对比已经渲染的三维物体,即在Threejs图形引擎的场景树上的三维物体列表,找出需要加载与卸载的三维物体。
8.根据权利要求7所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,通过遮挡剔除与视域剔除技术找出在当前视椎体范围内,需要渲染的三维物体列表,具体实现过程包括:
在混合空间索引中的室外多叉树森林索引中,森林的每个叶子结点都是一个小范围空间内的三维物体集合,其所占空间范围可以用一个包围球表示,包围球与包围盒的求法如下所示:
包围盒的算法如下,首先遍历这个建筑物构件几何信息中的所有顶点,求出这些顶点在x轴、y轴、z轴分量上的最大值与最小值,即Xmin、Ymin、Zmin、Xmax、Ymax、Zmax;
包围球的球心为:
{x:(Xmin+Xmax)/2,y:(Ymin+Ymax)/2,z(Zmin+Zmax)/2};
包围盒用两个点即可以表示,分别是:
{x:Xmax,y:Ymax,z:Zmax}与{x:Xmin,y:Ymin,z:Zmin};
这两个点分别是包围盒8个顶点中坐标最大的和最小的,成对角关系,包围盒的所有边均与坐标轴平行;
同时,森林的每个结点也可以用一个包围球表示其子树上的所有三维物体集合的所占空间范围;通过遍历森林,如果视椎体与当前结点的包围球相交则继续遍历,则遍历到的所有叶子结点的三维物体集合即为视野范围内的全部三维物体;
判断包围球是否与视椎体相交的方法根据下式求出,其中h小于包围球的半径r就表示包围球与视椎体相交,h用下面公式求出:
上述公式,ball.x和ball.y分别为包围球的横坐标和纵坐标,fov表示相机的焦距。
9.根据权利要求7所述的基于Web3D的建筑信息模型轻量级可视化方法,其特征在于,对比已经渲染的三维物体,即在Threejs图形引擎的场景树上的三维物体列表,找出需要加载与卸载的三维物体,具体实现过程包括:
浏览器在获取混合空间索引之后,就可以根据用户当前的视域范围进行可见性判断,找出在视域范围内的三维物体集合,然后去和当前Threejs图形引擎已加载的三维物体集合做对比,找出已经加载但目前不在视野范围内的三维物体集合,再找出未加载但目前在视野范围内的三维物体集合,前者需要从Threejs场景树上卸载,后者需要加载到Threejs场景树上,如果其几何外形信息不在浏览器缓存中的,需要向服务器请求下载;
通过结合回调管理器与缓存管理器共同优化渐进式数据调度,具体的调度算法是:
1)遍历室内空间列表,如果视点处于哪个室内空间,则判断目前所处的室内空间是否是之前所处的空间,如果是则不需要进行调度,如果不是,且当前处于另一个室内空间,则清空场景树,并将当前室内空间的所有三维物体加载到场景树上;
2)如果当前视点处于室外空间,则结合当前视椎体遍历自适应森林索引,找出所有可见的三维物体;如果之前视点处于室内空间,则清空场景树,并把它加载到场景树上;否则,比较场景树上的三维物体和之前场景中的三维物体,对于场景树上有但之前场景中没有的则从场景树上卸载,对于场景树上没有,但之前场景中有的则加载到场景树上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810748679.0A CN109145366B (zh) | 2018-07-10 | 2018-07-10 | 基于Web3D的建筑信息模型轻量级可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810748679.0A CN109145366B (zh) | 2018-07-10 | 2018-07-10 | 基于Web3D的建筑信息模型轻量级可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109145366A CN109145366A (zh) | 2019-01-04 |
CN109145366B true CN109145366B (zh) | 2022-11-18 |
Family
ID=64800183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810748679.0A Active CN109145366B (zh) | 2018-07-10 | 2018-07-10 | 基于Web3D的建筑信息模型轻量级可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109145366B (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979007B (zh) * | 2019-04-02 | 2023-05-12 | 广联达科技股份有限公司 | 一种建筑体的几何造型方法和装置 |
CN110008597B (zh) * | 2019-04-08 | 2023-06-16 | 盈嘉互联(北京)科技有限公司 | 基于并行计算框架的建筑信息模型三角剖分方法及装置 |
CN110246226A (zh) * | 2019-05-05 | 2019-09-17 | 中国人民解放军陆军工程大学 | 基于bim的防护工程运维管理系统及其管理方法 |
CN110223589A (zh) * | 2019-05-17 | 2019-09-10 | 上海蜂雀网络科技有限公司 | 一种基于3d绘画协议的汽车模型展示方法 |
CN110162731B (zh) * | 2019-05-21 | 2022-11-22 | 西安塔力科技有限公司 | 一种IFC模型构件空间信息在Web显示的方法 |
CN110299042B (zh) * | 2019-06-04 | 2021-09-07 | 中广核工程有限公司 | 一种沉浸式核电厂主设备工艺仿真推演方法及系统 |
CN110489692B (zh) * | 2019-07-19 | 2022-11-11 | 厦门海迈科技股份有限公司 | 一种基于WebGL实例化技术构件级操作的实现方法及系统 |
CN110414148B (zh) * | 2019-07-30 | 2023-03-24 | 中北大学 | 基于WebGL的开放式BIM跨平台在线可视化方法 |
CN110489846B (zh) * | 2019-08-12 | 2023-05-26 | 广联达科技股份有限公司 | 一种识别模型构件基本体的方法和装置 |
CN111161416B (zh) * | 2019-12-11 | 2023-08-29 | 北京互时科技股份有限公司 | 根据模型形状信息精确调整模型显示优先级的方法和系统 |
CN111080766B (zh) * | 2019-12-30 | 2023-09-01 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
CN111259474B (zh) * | 2020-01-13 | 2021-04-13 | 陕西心像信息科技有限公司 | 大体量bim模型数据处理及加载方法和设备 |
CN111553001B (zh) * | 2020-03-23 | 2022-04-05 | 广州地铁设计研究院股份有限公司 | 一种从ifc文件中提取或删除构件的方法 |
CN111415401B (zh) * | 2020-03-25 | 2023-05-30 | 上海城建信息科技有限公司 | 基于WebGL的大规模场景渲染方法 |
CN111506950B (zh) * | 2020-04-23 | 2021-04-13 | 中筑创联建筑科技(北京)有限公司 | Bim结构变换增量信息的生成和存储系统和方法 |
CN111563929B (zh) * | 2020-04-29 | 2020-12-25 | 广州锦行网络科技有限公司 | 一种基于浏览器的2.5d网页开发方法 |
CN111815770B (zh) * | 2020-06-30 | 2024-05-03 | 郑州信大先进技术研究院 | Web模型轻量化处理方法、装置及可读存储介质 |
CN111930825A (zh) * | 2020-07-02 | 2020-11-13 | 吉林动画学院 | 一种大规模bim建筑数据的粒度化索引构建方法 |
CN111858618B (zh) * | 2020-08-10 | 2024-02-13 | 山东同圆数字科技有限公司 | 一种bim数据图形引擎的操作方法 |
CN112381931B (zh) * | 2020-11-23 | 2022-02-08 | 北京优锘科技有限公司 | 一种基于json数据生成3d场景的方法 |
CN112862970A (zh) * | 2020-12-22 | 2021-05-28 | 中设数字技术股份有限公司 | 基于三维mesh曲面和solid实体的BIM模型分层(LOD)方法 |
CN112785673B (zh) * | 2021-01-20 | 2023-11-07 | 江西航天鄱湖云科技有限公司 | 一种基于WebGL批量三维模型数据的渲染方法 |
CN113158288B (zh) * | 2021-02-04 | 2022-04-12 | 中国铁路设计集团有限公司 | 一种基于构件复用与重装配的信息模型几何轻量化方法 |
CN113115021B (zh) * | 2021-04-09 | 2023-12-19 | 天海欧康科技信息(厦门)有限公司 | 一种物流三维可视化场景中的相机位动态聚焦方法 |
CN112819106B (zh) * | 2021-04-16 | 2021-07-13 | 江西博微新技术有限公司 | 一种ifc构件类型识别方法、装置、存储介质及设备 |
CN113076574B (zh) * | 2021-04-20 | 2023-05-02 | 西安交通大学 | 一种轻量化跨平台的在线参数化建模方法 |
CN113139107B (zh) * | 2021-05-13 | 2024-02-27 | 天讯方舟(北京)信息科技有限公司 | 一种基于3d数字场景的建筑数据可视化管理系统 |
CN113486416B (zh) * | 2021-05-25 | 2023-09-05 | 厦门海迈科技股份有限公司 | 一种3d建筑楼层分层的实现方法 |
CN113628102B (zh) * | 2021-08-16 | 2024-09-10 | 广东三维家信息科技有限公司 | 实体模型消隐方法、装置、电子设备及存储介质 |
CN113935097B (zh) * | 2021-10-26 | 2022-12-06 | 山东同圆数字科技有限公司 | 一种基于bim引擎数据的建筑空间分析方法及系统 |
CN113901062B (zh) * | 2021-12-07 | 2022-03-18 | 浙江高信技术股份有限公司 | 一种基于bim和gis的预加载系统 |
CN115239873B (zh) * | 2022-06-22 | 2023-05-23 | 同济大学 | 基于深度图的建筑物的细粒度化分划与场景图组织方法 |
CN115129201B (zh) * | 2022-09-01 | 2022-12-02 | 杭州易知微科技有限公司 | 一种可视化场景交互事件的绑定方法及全局事件流的交互方法 |
CN116775966B (zh) * | 2023-02-08 | 2024-07-23 | 一智科技(成都)有限公司 | 一种施工进度可视化方法和系统 |
CN116932796A (zh) * | 2023-08-08 | 2023-10-24 | 钰深(北京)科技有限公司 | 三维数字化服装模型轻量化处理的方法和系统 |
CN117171867B (zh) * | 2023-11-03 | 2024-01-26 | 临沂大学 | 一种建筑模型显示方法及系统 |
CN117272495B (zh) * | 2023-11-24 | 2024-03-08 | 中交第四航务工程勘察设计院有限公司 | 一种图像及数据组织、融合加载和展示方法及系统 |
CN117389746B (zh) * | 2023-12-11 | 2024-04-30 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种基于bim的行人仿真建筑空间解析方法 |
CN118070403B (zh) * | 2024-04-17 | 2024-07-23 | 四川省建筑设计研究院有限公司 | 基于bim自动生成灯回路影响区域空间的方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11338906A (ja) * | 1998-05-28 | 1999-12-10 | Matsushita Electric Ind Co Ltd | 建築モデル作成装置および建築モデル作成方法および建築モデル作成プログラムを記録した記録媒体 |
US7130774B2 (en) * | 2001-05-15 | 2006-10-31 | Metron Media, Inc. | System for creating measured drawings |
CN101281654A (zh) * | 2008-05-20 | 2008-10-08 | 上海大学 | 一种基于八叉树的大规模复杂三维场景处理方法 |
CN107193911B (zh) * | 2017-05-14 | 2020-10-30 | 北京比目鱼信息科技有限责任公司 | 一种基于bim模型的三维可视化引擎及web应用程序调用方法 |
-
2018
- 2018-07-10 CN CN201810748679.0A patent/CN109145366B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109145366A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145366B (zh) | 基于Web3D的建筑信息模型轻量级可视化方法 | |
CN111008422B (zh) | 一种建筑物实景地图制作方法及系统 | |
CN108648269B (zh) | 三维建筑物模型的单体化方法和系统 | |
CN112734930B (zh) | 三维模型轻量化方法、系统、存储介质及图像处理装置 | |
CN112085840B (zh) | 语义分割方法、装置、设备及计算机可读存储介质 | |
WO2020093950A1 (zh) | 三维物体分割方法、设备和介质 | |
WO2001008263A2 (en) | Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications | |
CN115100339A (zh) | 图像生成方法、装置、电子设备和存储介质 | |
CN113112603B (zh) | 三维模型优化的方法和装置 | |
US20240338895A1 (en) | Three-Dimensional Model Expansion Methods and Systems | |
KR20240001021A (ko) | 이미지 렌더링 방법, 장치, 전자 설비 및 저장 매체 | |
DE102021121109A1 (de) | Wiederherstellung dreidimensionaler modelle aus zweidimensionalen bildern | |
WO2023124676A1 (zh) | 3d模型构建方法、装置和电子设备 | |
WO2024108580A1 (zh) | 多维参数化城市信息模型构建方法、系统及计算机设备 | |
CN113096255A (zh) | 一种基于WebGL三维视图同步融合非侵入式集成技术方法 | |
She et al. | 3D building model simplification method considering both model mesh and building structure | |
Zhang et al. | [Retracted] Virtual Reality Design and Realization of Interactive Garden Landscape | |
CN118229885A (zh) | 基于融合体素八叉树和网格渲染的增量式三维重建方法 | |
CN116721218B (zh) | 一种三维不动产模型轻量化方法、系统及设备 | |
Zhao et al. | Completing point clouds using structural constraints for large-scale points absence in 3D building reconstruction | |
CN106780716A (zh) | 历史文化遗产数字化展示方法 | |
Mateo et al. | Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks | |
Cai et al. | An overview of constructing geometric models of buildings using point clouds | |
Lin et al. | 3D mesh reconstruction of indoor scenes from a single image in-the-wild | |
Ming et al. | Studying on conversion of oblique photogrammetry data based on OSG and ARX |
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 |