BIM模型管道中心线提取方法及装置
文献发布时间:2023-06-19 10:16:30
技术领域
本发明涉及BIM(Building Information Modeling,建筑信息模型)数据处理技术领域,尤其涉及一种BIM模型管道中心线提取方法及装置。
背景技术
目前数字化建筑在日常生活中,扮演着越来越重要的作用。数字化建筑的一个显著特点,就是涉及到的建筑三维模型。数据量极其庞大,在三维管道众多的化工工厂、超级楼宇等场合,问题更为突出。
大体量的建筑管道三维模型,是导致BIM建筑等应用软件运行效率低下,也是建筑软件图形不简洁、不和谐的原因之一。在这种场合,将管道三维模型Mesh三角面转换为线模型,是解决建筑管道三维模型数据压缩,提高效率的途径,也是建筑图形和谐可视化的途径。
因此,亟需提供一种BIM模型管道中心线提取方法,以解决上述问题。
发明内容
本发明提供一种BIM模型管道中心线提取方法及装置,用以解决现有技术中建筑管道三维模型导致建筑图形复杂,不和谐,且BIM应用软件的运行效率低下的缺陷,实现BIM模型管道的中心线提取,压缩BIM模型管道数据。
本发明提供一种BIM模型管道中心线提取方法,包括:
提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;
对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;
根据每条管道的截面的中心和法向,获取每条管道的中心线。
根据本发明提供的一种BIM模型管道中心线提取方法,所述根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,包括:
从所述管道的棱边中获取具有同一端点的多条棱边;
计算所述多条棱边中任意两条棱边之间的夹角;
将具有最大夹角的两条棱边保留,对所述多条棱边中除保留的两条棱边以外的棱边进行裁剪。
根据本发明提供的一种BIM模型管道中心线提取方法,所述根据每条管道的截面的中心和法向,获取每条管道的中心线,包括:
从每条管道的截面中选择位于两端的截面;
若选择的两个截面中存在任一截面的法向与所述两个截面的中心之间连线的夹角大于或等于90度,则将该截面的法向方向反向;
根据选择的两个截面的中心和反向后的法向,获取每条管道的中心线。
根据本发明提供的一种BIM模型管道中心线提取方法,所述根据每条管道的截面的中心和法向,获取每条管道的中心线,包括:
从每条管道的截面中选择位于两端的截面;
根据选择的两个截面的中心和法向,构造白塞尔样条函数;
使用白塞尔样条函数获取所述两个截面之间的中心线;
根据所述两个截面之间的中心线,获取每条管道的中心线。
本发明还提供一种BIM模型管道中心线提取装置,包括:
裁剪模块,用于提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;
逼近模块,用于对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;
获取模块,用于根据每条管道的截面的中心和法向,获取每条管道的中心线。
根据本发明提供的一种BIM模型管道中心线提取装置,所述裁剪模块用于:
从所述管道的棱边中获取具有同一端点的多条棱边;
计算所述多条棱边中任意两条棱边之间的夹角;
将具有最大夹角的两条棱边保留,对所述多条棱边中除保留的两条棱边以外的棱边进行裁剪。
根据本发明提供的一种BIM模型管道中心线提取装置,所述获取模块用于:
从每条管道的截面中选择位于两端的截面;
若选择的两个截面中存在任一截面的法向与所述两个截面的中心之间连线的夹角大于或等于90度,则将该截面的法向方向反向;
根据选择的两个截面的中心和反向后的法向,获取每条管道的中心线。
根据本发明提供的一种BIM模型管道中心线提取装置,所述获取模块用于:
从每条管道的截面中选择位于两端的截面;
根据选择的两个截面的中心和法向,构造白塞尔样条函数;
使用白塞尔样条函数获取所述两个截面之间的中心线;
根据所述两个截面之间的中心线,获取每条管道的中心线。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述BIM模型管道中心线提取方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述BIM模型管道中心线提取方法的步骤。
本发明提供的BIM模型管道中心线提取方法及装置,通过提取BIM模型中管道构件的棱边,并根据具有同一端点的多条棱边中任意两条棱边之间的夹角进行棱边裁剪,从而获取管道构件的候选截面,通过对候选截面进行平面逼近判断候选截面是否接近为平面,若接近平面则将候选截面作为管道的截面,根据截面的中心和法向确定管道的中心线,本实施例能准确提取BIM模型管道构件的中心线,从而实现对管道构件的数据压缩,使得管道构件的图形简洁和谐,提高BIM应用软件的运行效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的BIM模型管道中心线提取方法的流程示意;
图2是本发明提供的BIM模型管道中心线提取装置的结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明的BIM模型管道中心线提取方法,包括:步骤101,提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;
其中,BIM模型为某个建筑物的三维模型。管道为BIM模型中的一种构件,包括直管和弯管。获取BIM模型中的所有管道。对BIM模型中的每个管道构件提取棱边,管道的棱边是指管道的两个面相交的线。每条棱边包括两个端点,对每条棱边的两个端点建立邻接关系。根据棱边的端点之间的邻接关系,获取具有同一个端点的多条棱边,即多条棱边相交于同一个端点。
计算具有同一端点的多条棱边中任意两条棱边之间的夹角,根根据任意两条棱边之间的夹角确定具有同一端点的多条棱边中需要裁剪的棱边,本实施例不限于根据夹角对棱边进行裁剪的方法。裁剪后具有同一端点的棱边数量最多为2。对整个管道的棱边进行裁剪操作后,获取裁剪后的棱边,即线段组合的图形,从中选择闭合的多边形作为候选截面。每个管道组件有多个候选截面。
步骤102,对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;
由于候选截面不一定为一个平面,因此对候选截面进行平面逼近,本实施例不限于具体的逼近方法。平面逼近的最大偏移距离是指将候选截面逼近为平面时候选截面上的点的最大偏移距离值。在逼近过程中,将最大偏移距离作为多边形共面性评价指标。若最大偏移距离值超出预设阈值,则认为候选截面与平面不共面,即候选截面不是平面,将候选截面不作为管道的截面;若最大偏移距离值未超出预设阈值,则认为候选截面与平面共面,即候选截面是平面,将候选截面作为管道的截面。每条管道至少具有两个截面。预设阈值根据经验进行确定,如为0.5毫米。
步骤103,根据每条管道的截面的中心和法向,获取每条管道的中心线。
在获取到每条管道的截面后,确定截面的中心和法向。当获取的管道截面大于两个时,可以从中选择两端的管道截面进行关联。将选择的截面的中心作为中心线的端点,法向与中心点之间的管道中心线弧段相切,从而确定管道的中心线。也可以将任意相邻两个截面进行关联,根据相邻两个截面得到的管道中心线。本实施例不限于具体的确定方法。
本实施例通过提取BIM模型中管道构件的棱边,并根据具有同一端点的多条棱边中任意两条棱边之间的夹角进行棱边裁剪,从而获取管道构件的候选截面,通过对候选截面进行平面逼近判断候选截面是否接近为平面,若接近平面则将候选截面作为管道的截面,根据截面的中心和法向确定管道的中心线,本实施例能准确提取BIM模型管道构件的中心线,从而实现对管道构件的数据压缩,使得管道构件的图形简洁和谐,提高BIM应用软件的运行效率。
在上述实施例的基础上,本实施例中所述根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,包括:从所述管道的棱边中获取具有同一端点的多条棱边;计算所述多条棱边中任意两条棱边之间的夹角;将具有最大夹角的两条棱边保留,对所述多条棱边中除保留的两条棱边以外的棱边进行裁剪。
例如,管道的棱边包括AB、AC和DA。A和B为棱边AB的端点,A和C为棱边AC的端点,A和D为棱边DA的端点。棱边AB、AC和DA具有同样端点A。计算棱边AB和AC之间的夹角为120,AC和DA之间的夹角为90,AB和DA之间的夹角为90。保留最大角度120对应的两个棱边,即AB和AC,从而使得将A点作为端点的棱边为两条。保留的两条棱边AB和AC位于A点的两侧。
在上述实施例的基础上,本实施例中所述根据每条管道的截面的中心和法向,获取每条管道的中心线,包括:从每条管道的截面中选择位于两端的截面;若选择的两个截面中存在任一截面的法向与所述两个截面的中心之间连线的夹角大于或等于90度,则将该截面的法向方向反向;根据选择的两个截面的中心和反向后的法向,获取每条管道的中心线。
本实施例对截面的法向方向进行校正,从而得到管道的截面走向。将每条管道的截面中两端的截面进行关联,将管道截面中两端的截面作为管道两端的截面。若两端的截面中任一截面的法向与这两个截面的中心之间的连线之间的夹角小于90度,则不需要对该截面的方向进行校正,否则将该截面的法向方向反向。
在上述实施例的基础上,本实施例中所述根据每条管道的截面的中心和法向,获取每条管道的中心线,包括:从每条管道的截面中选择位于两端的截面;根据选择的两个截面的中心和法向,构造白塞尔样条函数;使用白塞尔样条函数获取所述两个截面之间的中心线;根据所述两个截面之间的中心线,获取每条管道的中心线。
具体地,根据每条管道的截面中两端截面的中心点和法向,构造白塞尔样条函数,使得白塞尔样条函数逼近管道中心线。在逼近时,取这两个截面的中心点作为管道中心线的起点和终止点,取两个截面的法向为中心线曲线两侧的切线走向,从而控制中心线的走向。
下面对本发明提供的BIM模型管道中心线提取装置进行描述,下文描述的BIM模型管道中心线提取装置与上文描述的BIM模型管道中心线提取方法可相互对应参照。
如图2所示,该装置包括裁剪模块201、逼近模块202和获取模块203,其中:
裁剪模块201用于提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;
其中,BIM模型为某个建筑物的三维模型。管道为BIM模型中的一种构件,包括直管和弯管。获取BIM模型中的所有管道。对BIM模型中的每个管道构件提取棱边,管道的棱边是指管道的两个面相交的线。每条棱边包括两个端点,对每条棱边的两个端点建立邻接关系。根据棱边的端点之间的邻接关系,获取具有同一个端点的多条棱边,即多条棱边相交于同一个端点。
计算具有同一端点的多条棱边中任意两条棱边之间的夹角,根根据任意两条棱边之间的夹角确定具有同一端点的多条棱边中需要裁剪的棱边,本实施例不限于根据夹角对棱边进行裁剪的方法。裁剪后具有同一端点的棱边数量最多为2。对整个管道的棱边进行裁剪操作后,获取裁剪后的棱边,即线段组合的图形,从中选择闭合的多边形作为候选截面。每个管道组件有多个候选截面。
逼近模块202用于对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;
由于候选截面不一定为一个平面,因此对候选截面进行平面逼近,本实施例不限于具体的逼近方法。平面逼近的最大偏移距离是指将候选截面逼近为平面时候选截面上的点的最大偏移距离值。在逼近过程中,将最大偏移距离作为多边形共面性评价指标。若最大偏移距离值超出预设阈值,则认为候选截面与平面不共面,即候选截面不是平面,将候选截面不作为管道的截面;若最大偏移距离值未超出预设阈值,则认为候选截面与平面共面,即候选截面是平面,将候选截面作为管道的截面。每条管道至少具有两个截面。
获取模块203用于根据每条管道的截面的中心和法向,获取每条管道的中心线。
在获取到每条管道的截面后,确定截面的中心和法向。当获取的管道截面大于两个时,可以从中选择两端的管道截面进行关联。将选择的截面的中心作为中心线的端点,法向与中心点之间的管道中心线弧段相切,从而确定管道的中心线。也可以将任意相邻两个截面进行关联,根据相邻两个截面得到的管道中心线。本实施例不限于具体的确定方法。
本实施例通过提取BIM模型中管道构件的棱边,并根据具有同一端点的多条棱边中任意两条棱边之间的夹角进行棱边裁剪,从而获取管道构件的候选截面,通过对候选截面进行平面逼近判断候选截面是否接近为平面,若接近平面则将候选截面作为管道的截面,根据截面的中心和法向确定管道的中心线,本实施例能准确提取BIM模型管道构件的中心线,从而实现对管道构件的数据压缩,使得管道构件的图形简洁和谐,提高BIM应用软件的运行效率。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行BIM模型管道中心线提取方法,该方法包括:提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;根据每条管道的截面的中心和法向,获取每条管道的中心线。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的BIM模型管道中心线提取方法,该方法包括:提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;根据每条管道的截面的中心和法向,获取每条管道的中心线。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的BIM模型管道中心线提取方法,该方法包括:提取BIM模型中每条管道的棱边,根据具有同一端点的任意两条棱边之间的夹角对所述棱边进行裁剪,将裁剪后的棱边构成的多边形作为每条管道的候选截面;对所述候选截面进行平面逼近,获取平面逼近的最大偏移距离,若所述最大偏移距离小于预设阈值,则将所述候选截面作为每条管道的截面;根据每条管道的截面的中心和法向,获取每条管道的中心线。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- BIM模型管道中心线提取方法及装置
- 血管中心线提取方法、装置、计算机设备和存储介质