本發(fā)明涉及建筑領(lǐng)域中針對數(shù)字建筑模型的數(shù)據(jù)處理,尤其涉及一種用于數(shù)字建筑模型的圓柱模型參數(shù)的識別方法、裝置、計算機(jī)設(shè)備和介質(zhì)。
背景技術(shù):
1、建筑信息模型(building?information?modeling,bim)存有多項(xiàng)信息,比如可以將建筑信息模型視為參數(shù)化的建筑3d幾何模型,此外,這個模型中,所有建筑構(gòu)件所包含的信息,除了幾何信息外,還包括空間關(guān)系信息、地域性信息、建筑物組件數(shù)量及特性信息、預(yù)算成本信息、物料庫存及項(xiàng)目時間表信息等,用作展示建筑物的整個生命周期。采用建筑信息模型,可實(shí)時得知物料的數(shù)量及共同特性,輕易分辨及界定工程范圍,以相對比例顯示整體設(shè)施或設(shè)施群組的系統(tǒng)、組件及工序,并集合各建造業(yè)文件,包括圖紙、采購詳情、申請程序及其他規(guī)格。
2、城市場景中除了建筑模型,還包括大量由管道組成的錯綜復(fù)雜的城市管網(wǎng),例如消防、給排水、暖通管道、化工廠管廊管道等,其中大多數(shù)管道呈現(xiàn)為長直的圓柱形狀。
3、發(fā)明人研究發(fā)現(xiàn),長直圓柱形管道等圓柱模型通常由很多面片單元組成,數(shù)據(jù)量非常大,對計算機(jī)的繪制、傳輸、瀏覽都造成巨大的壓力,因而如何進(jìn)行模型簡化以減小數(shù)據(jù)量,成為現(xiàn)有技術(shù)中的一大難題。對此,發(fā)明人進(jìn)一步研究發(fā)現(xiàn),如果能夠識別出圓柱模型,進(jìn)而計算得到模型相關(guān)參數(shù),就可以對模型進(jìn)行簡化處理,用較少的面片數(shù)達(dá)到保持原始圓柱模型特征的目的,也即通過減少圓柱模型面片單元的方式減小模型數(shù)據(jù)量,由此,圓柱模型的識別便成為圓柱模型簡化的首要步驟。
4、因此,如何識別bim模型中的圓柱模型,成為本領(lǐng)域亟需解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提供一種用于數(shù)字建筑模型的圓柱模型參數(shù)的識別方法、裝置、計算機(jī)設(shè)備和介質(zhì),用于解決現(xiàn)有技術(shù)中的上述技術(shù)問題。
2、一方面,為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種用于數(shù)字建筑模型的圓柱模型參數(shù)的識別方法。
3、該用于數(shù)字建筑模型的圓柱模型參數(shù)的識別方法包括:接收數(shù)字建筑模型中的待識別網(wǎng)格模型,其中,所述待識別網(wǎng)格模型包括多個面片單元;計算所述待識別網(wǎng)格模型的緊包圍盒;根據(jù)所述緊包圍盒的參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型;判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上;以及當(dāng)所述待識別網(wǎng)格模型在所述參照圓柱模型上的面片單元滿足預(yù)設(shè)條件時,確定所述待識別網(wǎng)格模型為圓柱模型,根據(jù)所述參照圓柱模型的參數(shù)確定所述待識別網(wǎng)格模型的參數(shù)。
4、進(jìn)一步地,在根據(jù)所述參數(shù)信息構(gòu)建圓柱模型的步驟之前,所述識別方法還包括:確定所述緊包圍盒的最短邊長和次短邊長;當(dāng)所述最短邊長和次短邊長的關(guān)系不滿足預(yù)設(shè)關(guān)系時,確定所述待識別網(wǎng)格模型不屬于圓柱模型,其中,當(dāng)所述最短邊長和次短邊長的關(guān)系滿足所述預(yù)設(shè)關(guān)系時,執(zhí)行根據(jù)所述參數(shù)信息構(gòu)建圓柱模型的步驟。
5、進(jìn)一步地,在根據(jù)所述參數(shù)信息構(gòu)建圓柱模型的步驟之前,所述識別方法還包括:確定所述緊包圍盒的最短邊長和次短邊長;沿所述最短邊長和所述次短邊長的方向,分別對所述待識別網(wǎng)格模型進(jìn)行正交投影;當(dāng)所述待識別網(wǎng)格模型沿所述最短邊長方向和/或所述次短邊長方向的投影輪廓線個數(shù)大于1時,確定所述待識別網(wǎng)格模型不屬于圓柱模型,其中,當(dāng)所述待識別網(wǎng)格模型沿所述最短邊長方向和所述次短邊長方向的投影輪廓線個數(shù)均為1時,執(zhí)行根據(jù)所述參數(shù)信息構(gòu)建圓柱模型的步驟。
6、進(jìn)一步地,根據(jù)所述參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型的步驟包括:確定所述緊包圍盒的最小點(diǎn)、最大點(diǎn)、第一邊長、第二邊長和第三邊長,其中,所述第一邊長大于所述第二邊長,所述第二邊長大于所述第三邊長;根據(jù)所述最小點(diǎn)和所述最大點(diǎn)計算得到所述參照圓柱模型的中心和中心軸的方向向量;根據(jù)所述第二邊長和所述第三邊長計算所述參照圓柱模型的半徑;根據(jù)所述第一邊長計算所述中心軸的長。
7、進(jìn)一步地,根據(jù)所述參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型的步驟還包括:以所述參照圓柱模型的中心為原點(diǎn),以所述中心軸的方向向量為z軸,建立第一局部坐標(biāo)系;將所述待識別網(wǎng)格模型的各個面片單元的頂點(diǎn)變換到所述第一局部坐標(biāo)系中;在所述第一局部坐標(biāo)系中,提取位于所述參照圓柱模型底面上的所述面片單元的頂點(diǎn),得到底面頂點(diǎn)集合,提取位于所述參照圓柱模型頂面上的所述面片單元的頂點(diǎn),得到頂面頂點(diǎn)集合;根據(jù)所述底面頂點(diǎn)集合計算所述參照圓柱模型的底面中心,根據(jù)所述頂面頂點(diǎn)集合計算所述參照圓柱模型的頂面中心;根據(jù)所述底面中心和所述頂面中心計算所述參照圓柱模型的矯正中心軸的方向向量。
8、進(jìn)一步地,在判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上的步驟之前,所述識別方法還包括:計算所述底面頂點(diǎn)集合和所述頂面頂點(diǎn)集合中各點(diǎn)至所述矯正中心軸的距離;根據(jù)所述距離對所述底面頂點(diǎn)集合和所述頂面頂點(diǎn)集合中各點(diǎn)進(jìn)行聚類;當(dāng)聚類后得到的有效類的數(shù)量不為1或2時,確定所述待識別網(wǎng)格模型不屬于圓柱模型,其中,當(dāng)聚類后得到的有效類的數(shù)量為1或2時,執(zhí)行判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上的步驟。
9、進(jìn)一步地,根據(jù)所述參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型的步驟還包括:當(dāng)聚類后得到的有效類的數(shù)量為1時,將所述有效類對應(yīng)的所述距離作為所述參照圓柱模型的矯正后半徑;當(dāng)聚類后得到的有效類的數(shù)量為2時,將兩個所述有效類對應(yīng)的距離分別作為所述參照圓柱模型的矯正后外半徑和內(nèi)半徑。
10、進(jìn)一步地,判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上的步驟包括:計算所述面片單元的法向量和重心;計算所述重心和所述面片單元各個頂點(diǎn)分別到所述參照圓柱模型的距離中的最大距離;判斷所述法向量與所述矯正中心軸的方向向量是否垂直;判斷所述最大距離與0的差值是否在預(yù)設(shè)距離容差內(nèi);其中,當(dāng)所述法向量與所述矯正中心軸的方向向量垂直且所述最大距離與0的差值在所述預(yù)設(shè)距離容差內(nèi),所述面片單元在所述參照圓柱模型上。
11、進(jìn)一步地,在判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上的步驟之前,所述識別方法還包括:計算所述緊包圍盒和所述參照圓柱模型的體積差;當(dāng)所述體積差大于預(yù)設(shè)體積容差時,確定所述待識別網(wǎng)格模型不屬于圓柱模型,其中,當(dāng)所述體積差小于或等于所述預(yù)設(shè)體積容差時,執(zhí)行判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上的步驟。
12、進(jìn)一步地,當(dāng)所述待識別網(wǎng)格模型在所述參照圓柱模型上的面片單元滿足預(yù)設(shè)條件時,確定所述待識別網(wǎng)格模型為圓柱模型的步驟包括:計算所述待識別網(wǎng)格模型在所述參照圓柱模型上的所有面片單元的面積,得到面積和;計算所述參照圓柱模型的表面積;判斷所述面積和與所述表面積的差值是否小于預(yù)設(shè)差值閾值;當(dāng)所述面積和與所述表面積的差值小于所述預(yù)設(shè)差值閾值時,確定所述待識別網(wǎng)格模型為圓柱模型。
13、進(jìn)一步地,計算所述待識別網(wǎng)格模型的緊包圍盒的步驟包括:提取所述待識別網(wǎng)格模型的各個面片單元的頂點(diǎn)集合{v1,v2,…vn},其中,vi=(xi,yi,zi);根據(jù)所述頂點(diǎn)集合{v1,v2,…vn}計算頂點(diǎn)重心g=∑ivi/n;設(shè)
14、
15、其中,mi表示是vi坐標(biāo)的協(xié)方差矩陣vivit,令∑i=1,2,ωnmid=λd,解出單位特征向量d1,d2,d3;建立第二局部坐標(biāo)系o′x′y′z′為:o′=g、x′=d1、y′=d2和z′=d3,其中,o′為所述第二局部坐標(biāo)系的原點(diǎn),x′y′z′為所述第二局部坐標(biāo)系的軸;將所述頂點(diǎn)集合{v1,v2,…vn}轉(zhuǎn)換到所述第二局部坐標(biāo)系中,得到轉(zhuǎn)換后頂點(diǎn)集合{v1′,v2′,…vn′},其中vi′=(xi′,yi′,zi′);計算所述轉(zhuǎn)換后頂點(diǎn)集合{v1′,v2′,…vn′}中各頂點(diǎn)的最小值和最大值,得到所述緊包圍盒在所述第二局部坐標(biāo)系中的最小點(diǎn)為pmin=(xmin,ymin,zmin)和最大點(diǎn)為pmax=(xmax,ymax,zmax);計算所述緊包圍盒的三條邊長分別為:lx=xmax-xmin、ly=y(tǒng)max-ymin、lz=zmax-zmin。
16、另一方面,為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種用于數(shù)字建筑模型的圓柱模型參數(shù)的識別裝置。
17、該用于數(shù)字建筑模型的圓柱模型參數(shù)的識別裝置包括:接收模塊,用于數(shù)字建筑模型中的接收待識別網(wǎng)格模型,其中,所述待識別網(wǎng)格模型包括多個面片單元;計算模塊,用于計算所述待識別網(wǎng)格模型的緊包圍盒;構(gòu)建模塊,用于根據(jù)所述緊包圍盒的參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型;判斷模塊,用于判斷所述待識別網(wǎng)格模型的面片單元是否在所述參照圓柱模型上;以及確定模塊,用于當(dāng)所述待識別網(wǎng)格模型在所述參照圓柱模型上的面片單元滿足預(yù)設(shè)條件時,確定所述待識別網(wǎng)格模型為圓柱模型,根據(jù)所述參照圓柱模型的參數(shù)確定所述待識別網(wǎng)格模型的參數(shù)。
18、為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種計算機(jī)設(shè)備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運(yùn)行的計算機(jī)程序,該處理器執(zhí)行計算機(jī)程序時實(shí)現(xiàn)上述方法的步驟。
19、為實(shí)現(xiàn)上述目的,本發(fā)明還提供計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)上述方法的步驟。
20、本發(fā)明提供的用于數(shù)字建筑模型的圓柱模型參數(shù)的識別方法、裝置、計算機(jī)設(shè)備和介質(zhì),對數(shù)字建筑模型中包括多個面片單元的三維網(wǎng)格模型進(jìn)行識別,在接收到待識別網(wǎng)格模型后,計算其緊包圍盒,然后根據(jù)緊包圍盒的參數(shù)信息構(gòu)建圓柱模型,得到參照圓柱模型,判斷待識別網(wǎng)格模型的每個面片單元是否在參照圓柱模型上,統(tǒng)計在參照圓柱模型上的面片單元,當(dāng)待識別網(wǎng)格模型在參照圓柱模型上的面片單元足夠多時,表明待識別網(wǎng)格模型與參照圓柱模型的貼合度較高,因此確定待識別網(wǎng)格模型為圓柱模型,并根據(jù)參照圓柱模型的參數(shù)確定待識別網(wǎng)格模型的參數(shù),完成待識別網(wǎng)格模型的識別。通過本發(fā)明,提出了一種識別三維網(wǎng)格模型是否為圓柱模型的方法,對網(wǎng)格模型識別后有利于對其進(jìn)行簡化處理,同時相對識別三維點(diǎn)云模型而言,識別的準(zhǔn)確率更高。此外,使用待識別網(wǎng)格模型的緊包圍盒得到初始的圓柱參數(shù),進(jìn)而可計算得到待識別網(wǎng)格模型的參數(shù),不需要用戶參與手動設(shè)置識別參數(shù),對用戶更友好。