CN112562085A - 一种bim模型简化方法及简化装置 - Google Patents
一种bim模型简化方法及简化装置 Download PDFInfo
- Publication number
- CN112562085A CN112562085A CN202011530256.5A CN202011530256A CN112562085A CN 112562085 A CN112562085 A CN 112562085A CN 202011530256 A CN202011530256 A CN 202011530256A CN 112562085 A CN112562085 A CN 112562085A
- Authority
- CN
- China
- Prior art keywords
- edge
- folded
- vertex
- triangle
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种BIM模型简化方法及简化装置,其中,该方法包括:获取原始BIM模型及原始BIM模型中顶点的坐标,原始BIM模型为三角网格模型;根据顶点的坐标,计算原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,根据误差测度从小到大的排序结果确定待折叠边;在原始BIM模型中获取与待折叠边存在至少一顶点重合的三角形的属性信息;根据属性信息对待折叠边进行折叠,以得到简化后的BIM模型。通过利用与待折叠边存在至少一顶点重合的三角形的属性信息对待折叠边进行折叠保护,避免折叠产生明显与原始BIM模型差异的结果,使得简化后的BIM模型保留原始BIM模型的真实结构信息,提高模型简化的准确性。
Description
技术领域
本发明涉及工程建筑技术领域,具体涉及一种BIM模型简化方法及简化装置。
背景技术
在建筑领域,建筑信息模型Building Information Modeling(简称BIM模型)中包含有关众多的建筑信息,比如建筑构件之间的几何信息、空间关系、预算成本等等。由于BIM模型自身包含数据量较大,虽然现今的计算机硬件水平有了突飞猛进的发展,但随着数据采集精度和建模技术的不断提高,BIM模型的精度越来越高,数据量也随之飞速增长,给计算机的绘制、传输、浏览等都带来了巨大的压力。因此,常常需要对BIM模型进行简化,使其简化为数据量较小的模型。
在现有技术中,模型简化方法根据删除网格元素的不同可分为:顶点删除法、边折叠法、三角形折叠法等。其中,边折叠法由于能够有效保持网格的原有拓扑关系,是目前最为广泛的简化方法。但是,现有的基于边折叠的BIM模型简化方法,在对边进行折叠操作时,经常会出现几何结构简化错误的情况,例如:针对门、窗及百叶窗叶片等构成的矩形或空间四面体在简化过程中是期望保留的,但是,如果在四面体十分狭长的情况下,如百叶窗的叶片,基于边折叠的思想,叶片的短边由于长度过短会被判断为优先被简化的边,从而造成简化结果成为两个重合的三角形,难以保留出百叶窗的真实结构信息;或者简化结果出现不符合BIM原始结构的狭长三角形等。
发明内容
有鉴于此,本发明实施例提供了一种BIM模型简化方法及简化装置以解决现有技术中基于边折叠的BIM模型简化方法容易造成几何结构简化错误的问题。
根据第一方面,本发明实施例提供了一种BIM模型简化方法,包括:
获取原始BIM模型及所述原始BIM模型中顶点的坐标,所述原始BIM模型为三角网格模型;
根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,根据误差测度从小到大的排序结果确定待折叠边;
在所述原始BIM模型中获取与所述待折叠边存在至少一顶点重合的三角形的属性信息;
根据所述属性信息对所述待折叠边进行折叠,以得到简化后的BIM模型。
可选地,所述根据所述属性信息对所述待折叠边进行折叠简化所述原始BIM模型,包括:
根据所述属性信息中的边属性或顶点坐标判断所述待折叠边是否满足预设保护条件;
在所述待折叠边满足预设保护条件时,将所述待折叠边对应的误差测度从所述排序结果中剔除;
重新根据误差测度从小到大的排序结果确定待折叠边。
可选地,所述根据所述属性信息判断所述待折叠边是否满足预设保护条件,还包括:
在所述待折叠边不满足预设保护条件时,对所述待折叠边进行折叠以得到简化后的BIM模型。
可选地,所述根据所述属性信息判断所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边所在的当前三角形中其余两条边的边属性,所述边属性包括:公共边和非公共边;
在其余两条边的边属性均为非公共边时,确定所述待折叠边满足预设保护条件。
可选地,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第一邻面三角形和第二邻面三角形的顶点坐标,所述第一邻面三角形和所述第二邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
基于第一邻面三角形和第二邻面三角形的顶点坐标,判断所述第一邻面三角形和第二邻面三角形是否存在公共边;
在第一第邻面三角形和第二邻面三角形存在公共边时,确定所述待折叠边满足预设保护条件。
可选地,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第三邻面三角形的第一法向方向,所述第三邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
获取所述第三邻面三角形沿所述待折叠边折叠后的第二法向方向;
计算所述第一法向法向和所述第二法向方向的角度差,并判断所述角度差是否超过预设角度差阈值;
在所述角度差超过所述预设角度差阈值时,确定所述待折叠边满足预设保护条件。
可选地,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第四邻面三角形的顶点坐标,所述第四邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
根据所述第四邻面三角形的顶点坐标及所述折叠点位置坐标,确定所述第四邻面三角形沿所述待折叠边折叠后对应的新顶点坐标;
根据所述新顶点坐标确定折叠后的第四邻面三角形的各个边的长度;
根据所述各个边的长度确定所述待折叠边是否满足预设保护条件。
可选地,所述根据所述各个边的长度确定所述待折叠边是否满足预设保护条件,包括:
判断各个边的长度是否满足预设边长关系;
在各个边的长度满足预设边长关系时,确定所述待折叠边满足预设保护条件。
可选地,所述根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,包括:
根据顶点的坐标,计算各个三角形中当前边中第一顶点和第二顶点的预设加权系数对应的加权值;
基于所述加权值和顶点的坐标,计算所述第一顶点和第二顶点的对应的包含预设加权值的二次误差矩阵;
基于包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度。
可选地,所述基于包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度,包括:
获取当前边的第一顶点和第二顶点的坐标,并根据所述第一顶点和第二顶点的坐标,计算当前边的长度;
基于所述当前边的长度及所述第一顶点和第二顶点对应的包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点的二次误差矩阵;
根据所述当前边对应的折叠点的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度。
根据第二方面,本发明实施例提供了一种BIM模型简化装置,包括:
获取模块,用于获取原始BIM模型及所述原始BIM模型中顶点的坐标,所述原始BIM模型为三角网格模型;
第一处理模块,用于根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,并根据误差测度从小到大的排序结果确定待折叠边;
第二处理模块,用于在所述原始BIM模型中获取与所述待折叠边存在至少一顶点重合的三角形的属性信息;
第三处理模块,用于根据所述属性信息对所述待折叠边进行折叠,以得到简化后的BIM模型。
根据第三方面,本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现本发明第一方面及其任意一种可选方式所述的方法。
根据第四方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面及其任意一种可选方式所述的方法。
本发明技术方案,具有如下优点:
本发明实施例提供了一种BIM模型简化方法及装置,通过获取原始BIM模型及原始BIM模型中顶点的坐标,原始BIM模型为三角网格模型;根据顶点的坐标,计算原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,根据误差测度从小到大的排序结果确定待折叠边;在原始BIM模型中获取与待折叠边存在至少一顶点重合的三角形的属性信息;根据属性信息对待折叠边进行折叠,以得到简化后的BIM模型。从而通过利用与待折叠边存在至少一顶点重合的三角形的属性信息对待折叠边进行折叠保护,从而避免折叠可能产生明显与原始BIM模型差异的结果,使得简化后的BIM模型保留原始BIM模型的真实结构信息,提高模型简化的准确性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中BIM模型简化方法的流程图;
图2为本发明实施例中边折叠后简化模型出现退化情况的示意图;
图3为本发明实施例中边折叠后简化模型出现棱状结构缺失情况的示意图;
图4为本发明实施例中边折叠后简化模型出现反向折叠情况的示意图;
图5为本发明实施例中BIM模型数据简化过程示意图;
图6为本发明实施例中BIM模型顶点融合的示意图;
图7为本发明实施例中为边缘边添加虚拟平面的示意图;
图8为本发明实施例中BIM模型边折叠过程示意图;
图9为本发明实施例中BIM模型简化装置的结构示意图;
图10为本发明实施例中的电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
在现有技术中,现有的基于边折叠的BIM模型简化方法,在对边进行折叠操作时,经常会出现几何结构简化错误的情况,例如:针对门、窗及百叶窗叶片等构成的矩形或空间四面体在简化过程中是期望保留的,但是,如果在四面体十分狭长的情况下,如百叶窗的叶片,那么基于边折叠的思想叶片的短边由于长度过短会被判断为优先被简化的边,从而造成简化结果成为两个重合的三角形,难以保留出百叶窗的真实结构信息;或者简化结果出现不符合BIM原始结构的狭长三角形等。
基于上述问题,本发明实施例提供了一种BIM模型简化方法,可用于电子设备中,如电脑、手机、平板电脑等,如图1所示,该BIM模型简化方法具体包括如下步骤:
步骤S101:获取原始BIM模型及原始BIM模型中顶点的坐标,原始BIM模型为三角网格模型。
其中,原始BIM模型为三角网格模型,由若干三角面片拼接构成,该原始BIM模型可以是利用建筑设计软件生成的模型,也可以是直接从外部导入的BIM模型。
步骤S102:根据顶点的坐标,计算原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,根据误差测度从小到大的排序结果确定待折叠边。
其中,各个顶点的坐标可以直接从原始BIM模型中提取,每个三角形均表示一个三角面片,基于边折叠模型简化思想,根据当前边及其相关联三角面片中各个顶点的坐标,可以计算出对当前边进行折叠简化后折叠点位置坐标和误差测度,基于边折叠思想,该误差测度表示对当前边进行折叠的折叠代价,误差测度值越大,表示对其进行折叠的折叠代价越大,反之,则折叠代价越小,通过对误差测度从小到大排序,将折叠代价最小的边作为待折叠边。具体将在下文对该步骤进行详细描述。
步骤S103:在原始BIM模型中获取与待折叠边存在至少一顶点重合的三角形的属性信息。
其中,待折叠边由两个顶点构成,从原始BIM模型中提取所有包含有这两个顶点至少之一的三角形,并获取这些三角形对应的属性信息,该属性信息包括三角形的边属性,以及三角形各个顶点的顶点属性,具体地,边属性包括当前边属于公共边或非公共边,顶点属性包括顶点坐标等。
步骤S104:根据属性信息对待折叠边进行折叠,以得到简化后的BIM模型。
具体地,在对待折叠边进行折叠前,根据该折叠边的属性信息判断该折叠边是否为需要进行折叠保护的边,如果根据上述属性信息确定该折叠边折叠后会造成模型结构与原始模型产生明显变化,则对其进行折叠保护,避免进行折叠,如果根据属性信息确定该待折叠边折叠后不会与原始模型产生明显变化,则对该待折叠边进行折叠,得到简化后的BIM模型。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过利用与待折叠边存在至少一顶点重合的三角形的属性信息对待折叠边进行折叠保护,从而避免折叠可能产生明显与原始BIM模型差异的结果,使得简化后的BIM模型保留原始BIM模型的真实结构信息,提高模型简化的准确性。
具体地,在一实施例中,上述的步骤S104,包括如下步骤:
步骤S401:根据属性信息中的边属性或顶点坐标判断待折叠边是否满足预设保护条件。
其中,该预设保护条件为根据用户设置的模型简化要求设置的,例如:当用户期望保留BIM模型的边缘结构时,该预设保护条件为根据边属性设置的保护条件,而当用户期望保留BIM模型中百叶窗等特殊四面体结构时,则该预设保护条件为以保留特殊四面体结构设置的条件。此外,预设保护条件的数量可以根据用户简化要求进行设置,例如可以设置1个保护条件,也可以设置多个保护条件,本发明并不以此为限。
步骤S402:在待折叠边满足预设保护条件时,将待折叠边对应的误差测度从排序结果中剔除。
具体地,如果当前待折叠边满足上述任意一个预设保护条件时,说明该边应该保留,不对其进行折叠,然后通过将其对应的误差测度从排序结果中剔除的方式进行折叠保护。
步骤S403:重新根据误差测度从小到大的排序结果确定待折叠边。
具体地,如果当前的待折叠边被进行折叠保护,则从排序结果中确定下一待折叠边继续重复上述过程,判断新的待折叠边是否进行折叠保护。
步骤S403:在待折叠边不满足预设保护条件时,对待折叠边进行折叠以得到简化后的BIM模型。
具体地,如果待折叠边不满足预设保护条件,则说明简化该折叠边后不会对模型结构产生明显影响,此时,可以通过折叠的方式去除该折叠边,实现BIM模型的简化,然后重新执行上述步骤S102,继续对BIM模型进行简化,直至简化后的模型满足预设模型简化要求,在实际应用中,该预设模型简化要求为简化后模型中三角面片的数量小于预设三角面片数量,或者简化后模型中边的误差测度最小值大于预设误差测度阈值;或者简化后模型中所有边均为非公共边等,本发明并不以此为限。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过在对待折叠边折叠前,利用预设保护条件对用户期望保留的结构进行折叠保护,避免由于折叠边造成结构简化错误,提高模型简化的准确性。
具体地,在一实施例中,上述的步骤S401,包括如下步骤:
步骤S41:获取待折叠边所在的当前三角形中其余两条边的边属性,边属性包括:公共边和非公共边。
其中,在BIM模型中,如果某一条边位于三角网格的边缘,即整个BIM模型中有且仅有一个三角面片包含该边,则该边的属性为非公共边,如果有两个及以上的三角面片共用该边,则该边的属性为公共边。
步骤S42:在其余两条边的边属性均为非公共边时,确定待折叠边满足预设保护条件。
具体地,当被折叠边位于整个三角网格的边缘三角面片中时,边缘三角面片是指三角面片三个边中有两个边位于三角网格的边缘,如图2所示,阴影三角形表示边缘三角面片,虚线边e为待折叠边,当折叠虚线边e会造成边缘三角面片退化为一条往复线段的情况,这种情况称之为退化情况,这种情况在BIM模型简化过程中,是需要避免折叠的,否则将过度损失整个BIM模型的边缘信息。在实际应用中,判断一条边折叠后是否会出现退化的方法为:遍历BIM模型中所有与这条边e所有相关的n个三角形trii,其中i=0,1,2,…,n-1),当任意一个三角形trii除掉e之外的另外两条边均为非公共边时,认为e的折叠会造成退化情况,则不对其进行折叠,为其设置保护。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过待折叠边所属三角形另外两条边的边属性,判断折叠边是否需要进行折叠保护,从而避免了对BIM模型进行简化后出现模型退化的情况,使得简化后的BIM模型可以有效保留原BIM模型的边缘结构信息。
具体地,在另一可替换实施例中,上述的步骤S401,包括如下步骤:
步骤S51:获取待折叠边的第一邻面三角形和第二邻面三角形的顶点坐标。
其中,第一邻面三角形和第二邻面三角形为与待折叠边只有一个公共顶点的三角形。在BIM模型中门、窗、百叶窗叶片等建筑结构通常会表示为一个空间四面体,如图3所示,图3中虚线为待折叠边,两个阴影三角形分别为该待折叠边的两个邻面三角形。
步骤S52:基于第一邻面三角形和第二邻面三角形的顶点坐标,判断第一邻面三角形和第二邻面三角形是否存在公共边。具体地,如图3所示,两个邻面三角形存在公共边m。
步骤S53:在第一第邻面三角形和第二邻面三角形存在公共边时,确定待折叠边满足预设保护条件。
具体地,对于门、窗、百叶窗叶片等建筑结构构成的空间四面体,如果对其进行边折叠,无论折叠哪一条边都会造成较大的视觉差异,如图3所示,一个空间四面体折叠后变为了两个完全重合的三角面片,造成棱状结构的损失,因此需要进行具体判断并避免这种情况的发生。在实际应用中,判断一条边折叠后是否会出现损失棱状结构的方法为:一条边e拥有顶点v0,v1,对于e的两个邻面三角形,分别表示为tri0,tri1,且tri0,tri1拥有共同的非v0,v1的顶点v2,v3,即tri0,tri1拥有公共边。则认为边e不能折叠。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过判断待折叠边两个邻面三角形是否存在公共边,确定折叠边是否需要进行折叠保护,从而避免了对BIM模型进行简化后出现损失棱状结构的情况,使得简化后的BIM模型可以有效保留原BIM模型的棱状结构信息。
具体地,在另一可替换实施例中,上述的步骤S401,包括如下步骤:
步骤S61:获取待折叠边的第三邻面三角形的第一法向方向。
其中,第三邻面三角形为与待折叠边只有一个公共顶点的三角形。具体地,该法向方向可以通过获取BIM模型中该第三邻面三角形三个顶点的坐标,根据顶点坐标确定法向方向,具体法向方向的计算过程为现有技术,在此不再进行赘述。
步骤S62:获取第三邻面三角形沿待折叠边折叠后的第二法向方向。
其中,在将待折叠边进行折叠的过程即为将该边两个顶点合并为一个顶点的过程,具体折叠过程如图4所示,其中,加粗的两个顶点所构成的边即为待折叠边。折叠后第三邻面三角形的法向方向的获取方式与折叠前法向方向获取方式相同,在此不再进行赘述。
步骤S63:计算第一法向法向和第二法向方向的角度差,并判断角度差是否超过预设角度差阈值。
具体地,该角度差为两个法向方向在三维空间任意一个方向的角度差值的最小值,即X轴方向角度差、Y轴方向角度差及Z轴方向角度差的最小值。
步骤S64:在角度差超过预设角度差阈值时,确定待折叠边满足预设保护条件。
其中,该预设角度差阈值可以根据实际简化精度要求及BIM模型的实际结构进行设置,例如30°、60°、75°等,本发明并不以此为限。
具体地,图4展示了折叠边右侧的顶点向左侧折叠的过程,在折叠之后出现了一个三角面片的法向量方向完全反转的情况,这种反转会造成简化质量的明显下降,在简化过程中应避免发生这种反向折叠的情况。在实际应用中,判断一条边折叠后是否会出现反向折叠的方法为:记录每个与折叠边相关的三角面片在折叠之前和折叠之后的法向量方向,如果法向量变化的幅度超过角度预设角度差阈值,则认为该边不能折叠。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过判断待折叠边的所有邻面三角形在折叠前后的法向方向的变化情况,确定折叠边是否需要进行折叠保护,从而避免了对BIM模型进行简化后出现反向折叠,造成空间结构改变的情况,使得简化后的BIM模型可以有效保留原BIM模型的空间结构信息。
具体地,在另一可替换实施例中,上述的步骤S401,包括如下步骤:
步骤S71:获取待折叠边的第四邻面三角形的顶点坐标。
其中,第四邻面三角形为与待折叠边只有一个公共顶点的三角形。
步骤S72:根据第四邻面三角形的顶点坐标及折叠点位置坐标,确定第四邻面三角形沿待折叠边折叠后对应的新顶点坐标。
其中,第四邻面三角形沿待折叠边折叠后对应的各个新顶点坐标的计算方法为现有技术,具体参见现有技术的相关表示,在此不再进行赘述。
步骤S73:根据新顶点坐标确定折叠后的第四邻面三角形的各个边的长度。
具体地,边的长度计算如公式(1)所示:
其中,κ表示当前边的长度,v1,v2分别表示当前边的两个顶点的顶点坐标。
步骤S74:根据各个边的长度确定待折叠边是否满足预设保护条件。
具体地,由于在计算待折叠边的折叠点位置的过程中,如果求取最优折叠点的矩阵出现近似线性相关,这种情况下所求得的折叠点会出现距离整个BIM模型非常远的情况,从而折叠后出现非常狭长的三角面片,影响三角面片的质量,不符合模型实际结构。为了避免出现狭长三角形,可以通过判断各个边的长度是否满足预设边长关系;在各个边的长度满足预设边长关系时,确定待折叠边满足预设保护条件。在实际应用于中,该预设边长关系的判断标准为计算如下公式(2):
其中,S代表三角面片的面积,l1,l2,l3为三角面片三条边的长度,当γ为1时表示这个三角形为等边三角形质量最好,当γ趋近于0时代表三角形非常狭长,当三角面片的γ值小于设置阈值时应不折叠这条边。设置阈值可以根据BIM模型的实际结构特点及简化要求进行设置,例如:0.2、0.3等,本发明并不以此为限。在实际应用中,上述的预设边长关系也可以是三角形各个角的角度关系,通过三角形的边长确定三角形各个角的角度,三角形越狭长,三角形某个角的角度值越小。从而可以利用边长确定三角形角度进而判断三角形是否狭长,本发明并不以此为限。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过判断待折叠边的所有邻面三角形各个边的边长关系,确定折叠边是否需要进行折叠保护,从而避免了对BIM模型进行简化后出现狭长三角形,影响三角面片质量的问题,提高简化后的BIM模型的三角面片质量。
需要说明的是,在BIM模型的实际简化过程中,上述步骤S104的几个可替换实施方式,可以根据模型简化要求同时进行设置,也可以选择部分设置,例如:可以仅设置棱状结构保护条件,也可以同时设置上述四种折叠边保护条件,本发明并不以此为限。
具体地,在一实施例中,上述的步骤S102,具体包括如下步骤:
步骤S21:根据顶点的坐标,计算各个三角形中当前边中第一顶点和第二顶点的预设加权系数对应的加权值。
具体地,由于在BIM模型中,面积越大的三角面片往往所包含的纹理信息越丰富,在实际简化过程中期望面积越大的三角面片优先保留,以保留更多原始BIM模型的纹理信息,因此,该预设加权系数可以是通过计算当前顶点所对应各个三角形的面积作为加权值,即折叠边对应的三角形面积越大,对应的预设加权系数的加权值越大,则后续计算得到的误差测度值越大,该边的折叠顺序越靠后,反之,折叠边对应的三角形面积越小,越先被折叠。在实际应用中,该预设加权系数也可以选择当前顶点在其对应三角面片中的角度,同理,角度越大该顶点所属折叠边越后折叠。从而优化了简化顺序,便于保留更多原始BIM模型的模型信息。
步骤S22:基于加权值和顶点的坐标,计算第一顶点和第二顶点的对应的包含预设加权值的二次误差矩阵。
具体地,二次误差矩阵的详细计算过程在下文进行详细的描述。
步骤S23:基于包含预设加权系数的二次误差矩阵,计算当前边对应的折叠点位置坐标和误差测度。
具体地,上述步骤S23可以通过获取当前边的第一顶点和第二顶点的坐标,并根据第一顶点和第二顶点的坐标,计算当前边的长度;基于当前边的长度及第一顶点和第二顶点对应的包含预设加权系数的二次误差矩阵,计算当前边对应的折叠点的二次误差矩阵;根据当前边对应的折叠点的二次误差矩阵,计算当前边对应的折叠点位置坐标和误差测度。在实际应用中,如果当前边的长度越长,与其相关的三角形所包含的空间结构信息也越多,因此,希望边长越长的边越后折叠,以便于尽可能多的保留原始BIM模型的模型信息。
通过执行上述步骤,本发明实施例提供的BIM模型简化方法,通过设置预设加权系数和边长度作为权重计算误差测度,从而优化了模型的简化顺序,便于保留更多原始BIM模型的模型信息。
下面将结合具体应用示例,对本发明实施例提供的BIM模型简化方法进行详细的说明。
图5为BIM模型数据简化过程示意图,具体包括:
101:用户输入原始BIM模型,要求格式为三角网格模型。
102:将顶点临近的三角形之间的临近顶点相互融合。
如图6所示,将原始BIM模型中顶点临近的三角形之间的临近顶点相互融合,左侧是由六个顶点组成的两个三角形,当顶点的欧式空间距离足够近时,将所有临近顶点融合为一个顶点,转化为右侧的四个顶点组成的两个三角形,具体顶点的融合过程并非本申请的发明点,在此不再进行详细描述。
103:初始化所有点的Q矩阵。
Q矩阵的意义是计算点到点周围一环邻域内的所有三角面片所在平面的平方距离之和,点p表示为空间坐标为(x,y,z)T的齐次矩阵:
p=(x,y,z,1)T
一个三角面片t所定义的平面q的平面系数为a,b,c,d
q=(a,b,c,d)T
则点p到平面q的空间平方距离为:
dist(q,p)2=(qTp)2=pT(qqT)p=:pTQqp
其中表示到平面q的Q矩阵Qq表示为:
其中a,b,c,d为平面q的平面系数。预设加权系数σ可以是三角面片t的面积,加权后的矩阵公式为:
σQq
而点p到周围一环邻域三角面片中每一个所在平面的加权后的平方距离之和为:
其中的Qp则记录为点p的Q矩阵,称之为p点的二次误差矩阵。之后依次对三角网中所有的点进行二次误差矩阵的初始化。
以上为一般顶点Q矩阵的计算方法,而对于模型边缘的顶点,即位于模型边缘边上的顶点需要对其进行额外的惩罚加成,以尽量减少对边缘的折叠从而造成特征的过度丢失。方法为对所有边缘边上增加一个虚拟的平面(虚线表示),该平面与边缘边相关的唯一三角面片垂直,在计算边缘顶点Q矩阵时,对其进行额外的惩罚加成,因为垂直的两个平面相关性较高可以达到尽量保持特征,延后折叠的目的。
如图7所示:虚线描述了一个虚拟平面qvirtual,该平面与边缘边所在平面是垂直的。该虚拟平面qvirtual的与一般平面一样平面系数用a,b,c,d表示,虚拟平面qvirtual的Q矩阵Qq计算方式与普通平面完全一致。但在对相关的两个顶点加权的方式与普通三角形所在平面有所不同,虚拟平面的qvirtual的预设加权系数σ使用边长的平方代替普通三角形的面积,其余过程与普通顶点计算过程相同,在此不再进行赘述。
104:初始化边测度并计算边上的折叠点。
在所有的顶点的二次误差矩阵计算完成后,需要对三角网格中所有边的quadricerror metrics即误差测度,以及当这条边折叠则折叠点的空间位置进行初始化,对于一条边e的两个顶点v1,v2初始化时所拥有的Q矩阵分别为以及这条边如果进行折叠则折叠点v′的二次误差矩阵为
其中κ为边e的长度计算公式为
折叠点v′的二次误差测度为
v′TQv′v′
那么我们需要求点v′的空间位置使整个公式v′TQv′v′达到最小,也就是最小化二次误差测度,这个意义在于,折叠边之后边的两个顶点折叠为一个点,那么这个新的折叠点v′到原始顶点v1,v2的所有一环邻域内的三角面片所在的平面的平方距离之和达到最小,这样表示折叠这条边所损失的几何特征最小,求v′空间位置的方法为
设v′点的二次误差矩阵为Qv′
最小化二次误差测度应为对测度方程分别对x,y,z偏微分结果都应为0即:
得到方程:
则v′的结果为:
求得v′之后带入误差测度方程,求得折叠这条边的误差δ为
δ=v′TQv′v′
需要依次对三角网模型中的每一条边进行折叠点位置的计算以及误差测度的计算。
105:对所有边根据测度大小排序。
在得到每一条边的误差测度δ之后需要对所有边根据误差测度从小到大排序,排序的方法为使用堆的数据结构heap,当一条边插入堆时,根据其误差测度的大小确定插入的位置,所以当遍历所有边之后,所得到的堆便是已经排序完成并根据误差测度从小到大的排序。
106:折叠测度最小的边。
根据已有的排序结果,从误差测度最小的边开始折叠,每一次折叠一条边,这个过程是将一条边的两个点聚集为一个点的过程,折叠位置是该边之前计算过的使误差测度最小化的点,折叠过程如图8所示,左侧图为折叠前示意图,被折叠边的两个顶点为v1,v2,右侧图为折叠后示意图,折叠点为v′折叠过程分为两步:首先将v1,v2所有一环邻域内的三角面片删除,这样会产生一个空洞;然后将空洞边缘所有的点与新生成的折叠点v′重新构成三角面片。具体地,在进行边折叠操作前,需要判断折叠边是否需要避免折叠,以避免出现多种与原始网格模型存在明显差异的简化结果,具体内容参见上述实施例中步骤S104的相关描述,在此不再进行重复。
需要说明的是图8中是为了直观展示只描述了流形情况,即每条边仅被少于等于两个相关的三角面片共用,但折叠方法不限于流形情况,针对一条边被多余两个三角面片共用的非流形情况也可以参照上述过程进行折叠操作,本发明并不以此为限。
107:更新边的误差测度。
当一条边被折叠后,由于新顶点位置的变更,导致该点周围所有三角面片所在平面发生变化,所以需要对这些三角面片涉及的顶点进行二次误差矩阵Q进行重新计算,计算方式仍然使用103中所描述的方法。当这些顶点更新Q矩阵后,需要再对这些顶点涉及的边进行边测度更新以及新的折叠点的计算,并重新插入堆中,使用的方法仍然使用104中所描述的方法。
108:判断是否退出。
在每一次折叠完成时,需要判断是否达到简化标准,如果达到简化目标则退出循环输出简化后的模型,如果没有达到简化目标则流程回到106继续进行最小测度边的折叠,直到达到简化目标。简化目标为达到以下标准之一则认为达到目标,每条标准之间是或的关系:三角网格中已经没有三角面片存在;三角网格中的三角面片数量已经小于用户输入的标准;三角网格中所有边的测度中最小的测度已经大于用户输入的阈值;三角网格中所有边的测度中最小的测度为无穷大。
本发明实施例还提供了一种BIM模型简化装置,如图9所示,该BIM模型简化装置,包括:
第一获取模块101,用于获取原始BIM模型及原始BIM模型中顶点的坐标,原始BIM模型为三角网格模型。详细内容参见上述方法实施例中步骤S101的相关描述。在此不再进行赘述。
第一处理模块102,用于根据顶点的坐标,计算原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,并根据误差测度从小到大的排序结果确定待折叠边。详细内容参见上述方法实施例中步骤S102的相关描述。在此不再进行赘述。
第二处理模块103,用于在原始BIM模型中获取与待折叠边存在至少一顶点重合的三角形的属性信息。详细内容参见上述方法实施例中步骤S103的相关描述。在此不再进行赘述。
第三处理模块104,用于根据属性信息对待折叠边进行折叠,以得到简化后的BIM模型。详细内容参见上述方法实施例中步骤S104的相关描述。在此不再进行赘述。
上述各个模块的更进一步的功能描述与上述对应方法实施例相同,在此不再赘述。
通过上述各个组成部分的协同合作,本发明实施例提供的BIM模型简化装置,通过利用与待折叠边存在至少一顶点重合的三角形的属性信息对待折叠边进行折叠保护,从而避免折叠可能产生明显与原始BIM模型差异的结果,使得简化后的BIM模型保留原始BIM模型的真实结构信息,提高模型简化的准确性。
本发明实施例还提供了一种电子设备,如图10所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图10中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种BIM模型简化方法,其特征在于,包括:
获取原始BIM模型及所述原始BIM模型中顶点的坐标,所述原始BIM模型为三角网格模型;
根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,根据误差测度从小到大的排序结果确定待折叠边;
在所述原始BIM模型中获取与所述待折叠边存在至少一顶点重合的三角形的属性信息;
根据所述属性信息对所述待折叠边进行折叠,以得到简化后的BIM模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述属性信息对所述待折叠边进行折叠简化所述原始BIM模型,包括:
根据所述属性信息中的边属性或顶点坐标判断所述待折叠边是否满足预设保护条件;
在所述待折叠边满足预设保护条件时,将所述待折叠边对应的误差测度从所述排序结果中剔除;
重新根据误差测度从小到大的排序结果确定待折叠边。
3.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息判断所述待折叠边是否满足预设保护条件,还包括:
在所述待折叠边不满足预设保护条件时,对所述待折叠边进行折叠以得到简化后的BIM模型。
4.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息判断所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边所在的当前三角形中其余两条边的边属性,所述边属性包括:公共边和非公共边;
在其余两条边的边属性均为非公共边时,确定所述待折叠边满足预设保护条件。
5.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第一邻面三角形和第二邻面三角形的顶点坐标,所述第一邻面三角形和所述第二邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
基于第一邻面三角形和第二邻面三角形的顶点坐标,判断所述第一邻面三角形和第二邻面三角形是否存在公共边;
在第一第邻面三角形和第二邻面三角形存在公共边时,确定所述待折叠边满足预设保护条件。
6.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第三邻面三角形的第一法向方向,所述第三邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
获取所述第三邻面三角形沿所述待折叠边折叠后的第二法向方向;
计算所述第一法向法向和所述第二法向方向的角度差,并判断所述角度差是否超过预设角度差阈值;
在所述角度差超过所述预设角度差阈值时,确定所述待折叠边满足预设保护条件。
7.根据权利要求2所述的方法,其特征在于,所述根据所述属性信息确定所述待折叠边是否满足预设保护条件,包括:
获取所述待折叠边的第四邻面三角形的顶点坐标,所述第四邻面三角形为与所述待折叠边只有一个公共顶点的三角形;
根据所述第四邻面三角形的顶点坐标及所述折叠点位置坐标,确定所述第四邻面三角形沿所述待折叠边折叠后对应的新顶点坐标;
根据所述新顶点坐标确定折叠后的第四邻面三角形的各个边的长度;
根据所述各个边的长度确定所述待折叠边是否满足预设保护条件。
8.根据权利要求7所述的方法,其特征在于,所述根据所述各个边的长度确定所述待折叠边是否满足预设保护条件,包括:
判断各个边的长度是否满足预设边长关系;
在各个边的长度满足预设边长关系时,确定所述待折叠边满足预设保护条件。
9.根据权利要求1所述的方法,其特征在于,所述根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,包括:
根据顶点的坐标,计算各个三角形中当前边中第一顶点和第二顶点的预设加权系数对应的加权值;
基于所述加权值和顶点的坐标,计算所述第一顶点和第二顶点的对应的包含预设加权值的二次误差矩阵;
基于包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度。
10.根据权利要求9所述的方法,其特征在于,所述基于包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度,包括:
获取当前边的第一顶点和第二顶点的坐标,并根据所述第一顶点和第二顶点的坐标,计算当前边的长度;
基于所述当前边的长度及所述第一顶点和第二顶点对应的包含预设加权系数的二次误差矩阵,计算所述当前边对应的折叠点的二次误差矩阵;
根据所述当前边对应的折叠点的二次误差矩阵,计算所述当前边对应的折叠点位置坐标和误差测度。
11.一种BIM模型简化装置,其特征在于,包括:
获取模块,用于获取原始BIM模型及所述原始BIM模型中顶点的坐标,所述原始BIM模型为三角网格模型;
第一处理模块,用于根据顶点的坐标,计算所述原始BIM模型中三角形的每个边对应的折叠点位置坐标和误差测度,并根据误差测度从小到大的排序结果确定待折叠边;
第二处理模块,用于在所述原始BIM模型中获取与所述待折叠边存在至少一顶点重合的三角形的属性信息;
第三处理模块,用于根据所述属性信息对所述待折叠边进行折叠,以得到简化后的BIM模型。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现如权利要求1-10中任一项所述的方法。
13.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-10中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011530256.5A CN112562085A (zh) | 2020-12-22 | 2020-12-22 | 一种bim模型简化方法及简化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011530256.5A CN112562085A (zh) | 2020-12-22 | 2020-12-22 | 一种bim模型简化方法及简化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112562085A true CN112562085A (zh) | 2021-03-26 |
Family
ID=75031439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011530256.5A Pending CN112562085A (zh) | 2020-12-22 | 2020-12-22 | 一种bim模型简化方法及简化装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112562085A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819108A (zh) * | 2021-04-16 | 2021-05-18 | 武汉光谷信息技术股份有限公司 | 一种多源异构模型的切片融合方法、系统及存储介质 |
CN113742809A (zh) * | 2021-11-04 | 2021-12-03 | 山东神力索具有限公司 | 索具网格的调整方法、装置以及电子设备 |
CN117009291A (zh) * | 2023-07-05 | 2023-11-07 | 湖南芒果无际科技有限公司 | 一种基于移动端的3d模型资产文件简化转换方法及系统 |
CN117974939A (zh) * | 2024-01-31 | 2024-05-03 | 北京数原数字化城市研究中心 | 一种网格模型简化方法、装置及相关设备 |
-
2020
- 2020-12-22 CN CN202011530256.5A patent/CN112562085A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819108A (zh) * | 2021-04-16 | 2021-05-18 | 武汉光谷信息技术股份有限公司 | 一种多源异构模型的切片融合方法、系统及存储介质 |
CN113742809A (zh) * | 2021-11-04 | 2021-12-03 | 山东神力索具有限公司 | 索具网格的调整方法、装置以及电子设备 |
CN113742809B (zh) * | 2021-11-04 | 2022-02-11 | 山东神力索具有限公司 | 索具网格的调整方法、装置以及电子设备 |
CN117009291A (zh) * | 2023-07-05 | 2023-11-07 | 湖南芒果无际科技有限公司 | 一种基于移动端的3d模型资产文件简化转换方法及系统 |
CN117009291B (zh) * | 2023-07-05 | 2024-02-13 | 湖南芒果融创科技有限公司 | 一种基于移动端的3d模型资产文件简化转换方法及系统 |
CN117974939A (zh) * | 2024-01-31 | 2024-05-03 | 北京数原数字化城市研究中心 | 一种网格模型简化方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112562085A (zh) | 一种bim模型简化方法及简化装置 | |
US8711143B2 (en) | System and method for interactive image-based modeling of curved surfaces using single-view and multi-view feature curves | |
WO2022021309A1 (zh) | 建立模型的方法、装置、电子设备及计算机可读存储介质 | |
CN112561788B (zh) | 一种bim模型的二维展开方法及纹理贴图方法、装置 | |
CN107578467B (zh) | 一种医疗器械三维建模方法及装置 | |
CN110838129A (zh) | 基于倾斜摄影测量的三维建筑物模型轮廓特征线提取方法 | |
WO2024067209A1 (zh) | 三维模型的展开方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
CN115222879B (zh) | 一种模型减面处理方法、装置、电子设备及存储介质 | |
CN107527384B (zh) | 一种基于运动特征的三维动态网格简化方法及其系统 | |
CN115222806B (zh) | 多边形处理方法、装置、设备及计算机可读存储介质 | |
CN110675323B (zh) | 一种三维地图语义处理方法、系统、设备及计算机介质 | |
CN115345988A (zh) | 基于顶点重要度的二次误差度量边折叠bim轻量化方法 | |
CN112823381A (zh) | 从三角形网格生成风格化的四边形网格的技术 | |
Danilov | Unstructured tetrahedral mesh generation technology | |
CN115115800A (zh) | 一种bim模型简化方法及装置 | |
CN115330971B (zh) | 一种面向渲染性能优化的几何模型轻量化方法 | |
CN117152237A (zh) | 一种距离场生成方法、装置、电子设备及存储介质 | |
CN117315192A (zh) | 一种用于中国空间站的三维网格模型简化方法 | |
CN110310353B (zh) | 一种bim模型数据的优化方法及系统 | |
CN115114870A (zh) | 一种基于分块映射的拼接式三维表面结构网格生成方法及系统 | |
CN112802201B (zh) | 实体模型间并行最近距离获取方法和装置 | |
CN112749438A (zh) | 基于二维虚拟断面的三维大坝坝体结构模型构建方法 | |
CN112967396A (zh) | 基于镜向反射的3d模型球面保面积参数化方法及系统 | |
CN112487674A (zh) | 晶格结构的模型生成方法和装置 | |
CN118378344B (zh) | 一种基于bim的建筑砌筑施工模型生成方法及系统 |
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 |