曹吉昌 濮國梁 顏寒祺 黃 港
(1.住房和城鄉(xiāng)建設(shè)部科技與產(chǎn)業(yè)化發(fā)展中心,北京 100835; 2.北京大學(xué),北京 100871)
建筑物及其構(gòu)件的信息種類繁多,從建筑設(shè)計(jì)到后期維護(hù)階段,信息的增刪和變更時常發(fā)生,這為建筑物及其構(gòu)件的信息化管理帶來了挑戰(zhàn)。
在建筑物的設(shè)計(jì)階段,建筑物的數(shù)字化信息模型為建筑物內(nèi)部構(gòu)件賦予唯一的標(biāo)識編碼,以便在建筑物全生命周期中,基于該標(biāo)識碼交換和管理建筑業(yè)中多源數(shù)據(jù)。近年來,國家相關(guān)基礎(chǔ)建設(shè)部門推出一系列用于建構(gòu)筑物構(gòu)件的分類信息編碼,但不夠關(guān)注部件空間位置屬性。若以空間位置唯一標(biāo)識作為整合線索,可實(shí)現(xiàn)建筑物部件基于空間位置的關(guān)聯(lián)。
由于建筑物空間位置標(biāo)識信息在檔案管理、智能建造和后期巡檢中很重要[4],本文提出一套建構(gòu)筑物位置編碼應(yīng)對相關(guān)行業(yè)的應(yīng)用需求。這套建構(gòu)筑物的空間位置劃分和編碼系統(tǒng)繼承北斗全球位置框架,滿足以下三個主要需求:
(1)唯一性需求。每個建構(gòu)筑物具有全球唯一標(biāo)識,能夠與對應(yīng)的實(shí)體建立一一對應(yīng)的關(guān)系。若不滿足唯一性,不同部門對同一建構(gòu)筑物指定不同的標(biāo)識編碼,在數(shù)據(jù)整合交換中出現(xiàn)偏差和誤解,不能通過該標(biāo)識碼融合該對象多源屬性。
(2)一致性需求。建筑物外部環(huán)境與建筑內(nèi)部空間劃分共用一套劃分框架和編碼方法,便于劃分框架的拓展和空間運(yùn)算分析; 不同建構(gòu)筑物的空間標(biāo)識在一套空間標(biāo)識命名框架下,組織和管理所有建構(gòu)筑物數(shù)據(jù)。
(3)高效性需求。建筑物中存在海量的構(gòu)件信息,需要通過構(gòu)件的標(biāo)識進(jìn)行數(shù)據(jù)關(guān)聯(lián)和檢索。而構(gòu)件在建筑物中有預(yù)設(shè)的唯一空間位置,且實(shí)際應(yīng)用中存在許多以空間位置為線索的數(shù)據(jù)共享和數(shù)據(jù)檢索的場景。要實(shí)現(xiàn)這些場景中的應(yīng)用,需要構(gòu)件實(shí)體被賦予的空間標(biāo)識編碼能夠支持高效準(zhǔn)確的拓?fù)浞治龊途嚯x計(jì)算等。
(1)建筑物編碼體系
2006年,國際標(biāo)準(zhǔn)化組織制定了ISO/IDS 框架,用于建立各國建筑業(yè)分類信息標(biāo)準(zhǔn),定義各種建筑信息分類體系的基本概念,梳理它們的關(guān)系。美國建筑標(biāo)準(zhǔn)學(xué)會CSI和加拿大建筑標(biāo)準(zhǔn)學(xué)會CSC頒布了Omniclass分類系統(tǒng),能呈現(xiàn)最直觀簡潔的編碼體系,與BIM數(shù)據(jù)存儲標(biāo)準(zhǔn)IFC對接,支持BIM技術(shù)的實(shí)現(xiàn)[13,17]。2018年,中華人民共和國住房和城鄉(xiāng)建設(shè)部頒發(fā)適用于民用和通用建筑廠房的《建筑信息模型分類和編碼標(biāo)準(zhǔn)GB/T51269-2017》[1]。
目前建筑行業(yè)中使用的構(gòu)件編碼主要考慮構(gòu)件的類別,幾何特征,生產(chǎn)信息等,如圖1[2]。同一批從工廠中生產(chǎn)出的某一特定構(gòu)件/零件,會被賦予完全相同的生產(chǎn)編碼,分散在不同地區(qū)和空間位置的構(gòu)件共用一個生產(chǎn)編碼,使目前的構(gòu)件編碼不能夠保證全局唯一性。
圖1 中建(天津)工業(yè)化建筑工程有限公司編碼
(2)構(gòu)件查詢方法
建筑物構(gòu)件的復(fù)雜性和語義的多樣性,使用戶難以通過關(guān)鍵字查詢檢索到預(yù)期結(jié)果,查準(zhǔn)率低。IFC的數(shù)據(jù)模型能映射到關(guān)系數(shù)據(jù)庫中,轉(zhuǎn)化成XML或者是RDF表達(dá)。研究者致力于提出各種QL框架,如SPARQL[7], XQuery[8],QL4BIM[9]。北京建筑大學(xué)盧錦[18]指出,當(dāng)前研究對BIM模型中建筑信息的檢索起到推動作用。簡化構(gòu)件為質(zhì)點(diǎn),在計(jì)算時排序構(gòu)件與用戶參考點(diǎn)的通路,用Dijkstra算法得到最短距離,由空間關(guān)系和距離得到有序的構(gòu)件集合。
在建構(gòu)筑物空間標(biāo)識與應(yīng)用中,現(xiàn)有的研究仍存在四個問題[19]:建筑物內(nèi)部的構(gòu)件空間位置表示是建立在局部參考坐標(biāo)下; 構(gòu)件的位置依賴于多個參考系,不滿足空間標(biāo)識唯一性和一致性; 現(xiàn)有的建構(gòu)筑物編碼屬分類信息碼,只考慮簡單的建筑對象信息,不能直接含有建筑物中相對位置的關(guān)系; 現(xiàn)有構(gòu)件的信息檢索方法不能直接再將空間屬性置于索引列,并在索引列的內(nèi)容上進(jìn)行計(jì)算和篩選操作,效率較低,不滿足空間標(biāo)識的高效性。
北斗網(wǎng)格位置編碼規(guī)定了北斗網(wǎng)格位置碼的網(wǎng)格選擇和編碼規(guī)則[6],應(yīng)用廣泛。其符合以下基本編碼原則:1)唯一性; 2)嵌套性; 3)兼容性; 4)計(jì)算性; 5)實(shí)用性。
北斗三維網(wǎng)格位置碼由地球表面二維網(wǎng)格剖分+高度域網(wǎng)格剖分組成。
地球表面二維網(wǎng)格剖分中,網(wǎng)格劃分原點(diǎn)在赤道面與本初子午面的交點(diǎn)處,二維網(wǎng)格劃分為十級,方法如下。
(1)第一級網(wǎng)格。根據(jù)GB/T 13989-2012中1: 100萬圖幅進(jìn)行劃分,單元大小是6°×4°;
(2)第二級網(wǎng)格。將第一級6°×4°網(wǎng)格,按照經(jīng)緯度等分,分成12×8個第二級網(wǎng)格,對應(yīng)于30′×30′網(wǎng)格,約為地球赤道處55.66km×55.66km網(wǎng)格;
(3)第三級網(wǎng)格。將第二級網(wǎng)格,按照經(jīng)緯度等分,分成2×3個第三級網(wǎng)格,對應(yīng)于1: 5萬地圖圖幅15′×10′網(wǎng)格,約為地球赤道處27.83km×18.55km網(wǎng)格;
余下層以此類推[20]。
高度域剖分中,任意剖分級數(shù)m,高度域剖分成2m層,地下為2m-1層,地上為2m-1層。同級網(wǎng)格相同層高度相等,高度與該層對應(yīng)等高面赤道處相應(yīng)級剖分形成的網(wǎng)格緯線方向長度匹配。同級網(wǎng)格高度與對應(yīng)等高面赤道處網(wǎng)格緯線長度如圖2。北斗三維網(wǎng)格位置碼高度域劃分,將地球表面4°、30′、15′、……、1/2048″十個基本網(wǎng)格作為北斗三維網(wǎng)格位置碼定義大地高的中的θ,形成高度域網(wǎng)格劃分:
圖2 高度域方向不等距離劃分方法(赤道面)
(1)初始網(wǎng)格。地上、地下劃分成兩個部分;
(2)第一級網(wǎng)格。采用和赤道4o長度一致的劃分,每個劃分約445.28km;
(3)第二級網(wǎng)格。采用和赤道30′長度一致的劃分,每個劃分約55.66km; 余下各級照此類推[16]。
北斗三維網(wǎng)格位置碼由二維編碼+高度維編碼交叉組成[21],共32位碼元組成,北斗三維網(wǎng)格位置碼由12位碼元組成,其結(jié)構(gòu)與碼元取值見圖3,第三維度編碼如下。
圖3 北斗三維網(wǎng)格位置碼的形式
定位建構(gòu)筑物,需定位整棟建筑物和建筑物內(nèi)部的構(gòu)件實(shí)體[10]。建筑物外部所處坐標(biāo)系是剛性的北斗網(wǎng)格位置體系,其平面坐標(biāo)兩個軸是徑向和緯向,建筑物以標(biāo)識中心為定位對象,賦予定位編碼,作為整體被組織和管理。建筑物自身既是全球網(wǎng)格體系子空間,又是建筑物內(nèi)部信息父空間。建筑物內(nèi)部,為保證內(nèi)外劃分的可拓展性,外部的定位標(biāo)識點(diǎn)為劃分的起點(diǎn)。確定好內(nèi)部劃分起始點(diǎn)之后,平面兩軸的方向也與外部的全球位置坐標(biāo)系兩個軸保持一致,分別是正北和正東方向。高度維則按照建筑物自身的樓層高度進(jìn)行劃分。每一樓層的劃分也是直接遵循建筑物中已有的區(qū)域劃分,并且這些子空間在每一層中都會被賦予一個定位標(biāo)識碼,每一層樓的子空間采用的均勻大小的矩形表示,構(gòu)件實(shí)體最終就落在某個子空間中,在該三維空間中進(jìn)行三個軸向方向的定位。
本小節(jié)討論各層次(建筑物—樓層—子空間)的標(biāo)識點(diǎn)、劃分網(wǎng)格層級以及劃分后賦碼的規(guī)則。
(1)對整幢建筑物的標(biāo)識
首先在全球范圍定位建筑物,進(jìn)行唯一空間標(biāo)識。建筑物的標(biāo)識要選擇合適的標(biāo)識點(diǎn),用建筑物地面投影范圍中心作為標(biāo)識點(diǎn),而不是實(shí)際占地范圍。投影多邊形選擇層級合適的北斗網(wǎng)格進(jìn)行劃分,選最靠近西南方向的內(nèi)部角點(diǎn)作為建筑物的標(biāo)識點(diǎn)O?,F(xiàn)實(shí)中建筑物的距離一般都超過8m,選擇了北斗網(wǎng)格碼第7層級(1/4′)的網(wǎng)格進(jìn)行劃分[20]。
圖4 整幢建筑物的定位過程
獲取標(biāo)識點(diǎn)以后,于全球位置框架標(biāo)識該點(diǎn)。某行政區(qū)域組織會管理多棟建筑物的數(shù)據(jù),選建筑物所在行政中心為參考點(diǎn)定位。確定行政區(qū)劃中心和建筑物標(biāo)識點(diǎn),建立二維平面坐標(biāo)系,確定整幢建筑物在該坐標(biāo)系下的位置,選擇合適的層級L來確定跨越的網(wǎng)格數(shù)目M, N。
為避免兩棟建筑物的標(biāo)識定位點(diǎn)落在同一個網(wǎng)格,失去唯一性,選擇大小合適的網(wǎng)格使其邊長不大于兩者的距離。第7層級的網(wǎng)格比較合適[20],但在距離過遠(yuǎn)時,編碼的長度會冗長。若引入更小層級,雖能用更少跨度碼,但需加上該層級的標(biāo)識。為平衡跨度網(wǎng)格數(shù)目和層級標(biāo)識引入的標(biāo)識位,除了第7層級以外,再選擇一個層級共同來標(biāo)識跨度。最大兩位數(shù)的第七層級網(wǎng)格可覆蓋長度是24.75’<1′所以選擇第4層級和第7層級共同標(biāo)識跨度。建筑物相對行政中心的偏移量為負(fù), M、N要含有負(fù)號來區(qū)分相對方向。
(2)建筑物樓層高度維劃分與編碼
考慮建筑物的高度維劃分,劃分的起始平面規(guī)定在建筑物中的地面,往上為高度軸的正方向,反之為負(fù)方向,建筑物內(nèi)部空間一般都分布在不同的樓層中,但也存在如某兩層樓層之間有轉(zhuǎn)角的樓梯,規(guī)定將這些設(shè)施劃分到它們下方的樓層空間內(nèi)。
目前世界上最高建筑物—迪拜塔,總高度為828米,地上162層,連同地下共169層。地下層數(shù)一般不超過162層。樓層碼總共由五位組成:第一位是表示地上U或地下D,后三位為樓層數(shù)。如U021表示地上21層,D002表示地下二層,以此類推。
建構(gòu)筑物編碼擴(kuò)展到樓層高度為:C0MN-F。
(3)樓層平面劃分及子空間定位碼
建筑物中每個樓層中,很多構(gòu)件需進(jìn)一步劃分其空間得到更為精細(xì)的空間,確定構(gòu)件的準(zhǔn)確位置。為滿足外部劃分能夠擴(kuò)展到內(nèi)部的原則,采用的原點(diǎn)O是在對整幢建筑物定位時選擇的標(biāo)識點(diǎn),內(nèi)部坐標(biāo)系的x、y軸方向分別選擇了正東、正北方向,z軸方向則采用了建筑物樓層生長的方向,每個樓層高度上則是一個獨(dú)立的樓層坐標(biāo)系。我們對整個樓層進(jìn)一步劃分得到子空間,在樓層平面坐標(biāo)系中對子空間進(jìn)行定位和編碼。若選擇該空間水平面多邊形的一個頂點(diǎn),可能會出現(xiàn)多個空間共用一個標(biāo)識點(diǎn)的情況。
確定子空間的標(biāo)識點(diǎn),首先選擇層級,選擇用邊長1m的網(wǎng)格進(jìn)行劃分區(qū)分子空間。每個空間都被多個網(wǎng)格劃分,網(wǎng)格的角點(diǎn)在空間中。我們選擇最靠近樓層坐標(biāo)系原點(diǎn)的角點(diǎn)作為子空間的標(biāo)識點(diǎn),如圖5,得到B,C,F(xiàn)的子空間的定位點(diǎn)分別是B0,C0,F(xiàn)0。
圖5 子空間標(biāo)識點(diǎn)確定
得到各子空間標(biāo)識點(diǎn)后,其在樓層平面坐標(biāo)系中的正北、正東方向偏移分別是M′、N′。建構(gòu)筑物編碼擴(kuò)展到子空間層次的定位碼為:C0MN-F-M′N′。
(4)子空間內(nèi)劃分與編碼
樓層平面坐標(biāo)系中每個子空間內(nèi)部都構(gòu)造了自己的獨(dú)立坐標(biāo)系,依靠樓層平面坐標(biāo)系對它們進(jìn)行關(guān)聯(lián),以各自的子空間標(biāo)識點(diǎn)距離樓層標(biāo)識點(diǎn)的偏移量作為標(biāo)識編碼。在子空間內(nèi)部對構(gòu)件三個維度上進(jìn)行劃分,從而準(zhǔn)確定位。
在三維子空間中進(jìn)一步、更精確的位置定位樓層中某構(gòu)件。某些構(gòu)件彼此距離很近,采用尺度更小的網(wǎng)格作為劃分基本單元。在子空間內(nèi)劃分采用9級網(wǎng)格比較合適[20]。子空間內(nèi)構(gòu)件坐標(biāo)系定位編碼:劃分原點(diǎn)是在樓層子空間中子空間的標(biāo)識點(diǎn),以正東、正北方向?yàn)閤, y軸,建筑生長方向?yàn)閦軸。子空間內(nèi),對構(gòu)件進(jìn)行三維空間的定位編碼,得到三個軸方向的偏移量PQR。建構(gòu)筑物編碼擴(kuò)展到子空間內(nèi)部的定位碼為:C0MN-F-M′N′-PQR
在該編碼體系中,C0MN是整幢建筑物全球環(huán)境定位的建筑物幢編碼; F是進(jìn)入建筑物的高度維定位的樓層高度碼;M′N′是進(jìn)入樓層的子空間在二維平面中坐標(biāo)的樓層子空間定位碼;PQR是在子空間中的構(gòu)件定位碼。
在建筑物的設(shè)計(jì)階段對構(gòu)件實(shí)體賦予了該編碼,在后續(xù)階段能夠基于該唯一性編碼進(jìn)行多源數(shù)據(jù)的融合和信息的回溯[12]。
BIM頂點(diǎn)坐標(biāo)中,提取x, y, z坐標(biāo)最小與最大值,得構(gòu)件最小值坐標(biāo)Smin(Xmin,Ymin,Zmin)和最大值坐標(biāo)Smax(Xmax,Ymax,Zmax),得到模型范圍,計(jì)算近似的空間中心點(diǎn)S0(X0,Y0,Z0):X0=(Xmax-Xmin)/2;Y0=(Ymax-Ymin)/2;Z0=(Zmax-Zmin)/2
若經(jīng)緯度表達(dá),直接按照全球浮點(diǎn)數(shù)坐標(biāo)到編碼轉(zhuǎn)化[21],若相對參考系,可按照以下幾步:確定構(gòu)件在BIM中局部坐標(biāo)系,確定局部坐標(biāo)系原點(diǎn)O,根據(jù)相互正交的三個軸其中兩個確定坐標(biāo)系的方向; 確定轉(zhuǎn)化的目標(biāo)坐標(biāo)系,按照BIM文件中數(shù)據(jù),若對構(gòu)件提供其所在參考空間的信息,則目標(biāo)坐標(biāo)系為城市建構(gòu)筑物的子空間坐標(biāo)系, 若只提供其所在樓層參考空間坐標(biāo)系,則目標(biāo)坐標(biāo)系為城市建構(gòu)筑物多樓層坐標(biāo)系,選定目標(biāo)坐標(biāo)系后,確定目標(biāo)坐標(biāo)系的原點(diǎn)O′,以正北、正東方向確定X′、Y′軸,得到Z′軸; 利用坐標(biāo)轉(zhuǎn)化原理,將構(gòu)件的中心點(diǎn)在構(gòu)件局部坐標(biāo)系中的坐標(biāo)S0(X0、Y0、Z0)轉(zhuǎn)化到目標(biāo)坐標(biāo)系中。首先計(jì)算O′在坐標(biāo)系O中的三個軸的偏移量(?x,?y,?z),再分別計(jì)算X′軸與X軸、Y軸、Z軸的夾角余弦值(cosα1,cosβ1,cosγ1),Z′軸與X,Y,Z 軸夾角的余弦值(cosα2,cosβ2,cosγ2),實(shí)體的標(biāo)識點(diǎn)在建構(gòu)筑物坐標(biāo)系下的坐標(biāo)可以通過等式T·S′=S得到,旋轉(zhuǎn)矩陣T可以表示為:
得到子空間的標(biāo)識點(diǎn)和建筑物(樓層)的經(jīng)緯度后,根據(jù)浮點(diǎn)數(shù)轉(zhuǎn)編碼的方法生成空間標(biāo)識[20],該編碼成為了構(gòu)件實(shí)體唯一的空間位置標(biāo)識。
建筑物行業(yè)中許多場景,用空間位置關(guān)聯(lián)多源數(shù)據(jù),例如:檔案關(guān)聯(lián)管理、自動巡檢、智能建造[19]。分析位置標(biāo)識碼在多源數(shù)據(jù)整合中需求和可行性; 然后設(shè)計(jì)以編碼為RowKey的剖分索引大表,在此基礎(chǔ)上實(shí)現(xiàn)對建筑行業(yè)中多源數(shù)據(jù)的高效整合。
為實(shí)現(xiàn)建構(gòu)筑物多源信息組織和管理,除統(tǒng)一標(biāo)識全球的建構(gòu)筑物信息,還需建立以該編碼為主鍵的索引大表關(guān)聯(lián)不同來源數(shù)據(jù)。選擇MongoDB[11]作為后臺數(shù)據(jù)庫設(shè)計(jì),因其設(shè)計(jì)靈活、擴(kuò)展性高; Nosql數(shù)據(jù)庫能處理不同層次的實(shí)體屬性種類相差大的問題; MongoDB按照鍵值對格式存儲管理的,編碼作為行鍵實(shí)現(xiàn)哈希表的O(1)查詢效率,行鍵是建構(gòu)筑物空間標(biāo)識編碼,屬性包括構(gòu)件實(shí)體所在建筑物和子空間的標(biāo)識點(diǎn)經(jīng)緯度信息以及樓層數(shù)。
為實(shí)現(xiàn)基于空間標(biāo)識的多源數(shù)據(jù)融合,該實(shí)體關(guān)聯(lián)的多源屬性信息,如設(shè)計(jì)圖紙,對應(yīng)住戶的戶籍信息。索引大表也將這些信息的鏈接或文件地址關(guān)聯(lián)到該空間標(biāo)識編碼,由此用戶可通過構(gòu)件實(shí)體的位置得到建構(gòu)筑物編碼,由于某個建筑物實(shí)體的編碼都是全數(shù)據(jù)表唯一的,能根據(jù)該編碼定位到數(shù)據(jù)庫中某實(shí)體的屬性字典,關(guān)聯(lián)到與該空間位置相關(guān)的多源數(shù)據(jù)。
以點(diǎn)查詢、范圍查詢和基于建筑物空間約束的距離查詢?yōu)槔?,進(jìn)行數(shù)據(jù)檢索方法的說明。
(1)點(diǎn)查詢
點(diǎn)查詢是指查詢指定點(diǎn)鄰近區(qū)域的所有對象[11]。本研究場景下具體需求為:火災(zāi)發(fā)生時,消防隊(duì)員所在位置附近的消防栓。這里的附近范圍僅限于同一樓層,如圖6中要查詢星號所在位置附近的物體,即是虛線圓圈的范圍,這個范圍是包括了三個子空間BCE的。
圖6 某樓層中進(jìn)行點(diǎn)的KNN查詢
用編碼計(jì)算星號附近范圍,某樓層上的查詢可能跨越多個子空間,選擇樓層坐標(biāo)系劃分第八層級(赤道距離1m)。查詢中心點(diǎn)坐標(biāo)可以是經(jīng)緯度坐標(biāo)(x0,y0)。外包矩形西南和東北角點(diǎn)的經(jīng)緯度分別是letlat, letlng, riglat, riglng。該樓層坐標(biāo)系中外包矩形中的經(jīng)緯度點(diǎn)(x,y)滿足x≥(letlat-Xf)andy≥(letlng-Yf)andx≤(riglat-Xf)andy≤(riglng-Yf)。這里(x,y)含義是在該局部坐標(biāo)系中離原點(diǎn)的距離,建構(gòu)筑物編碼后幾位是在局部坐標(biāo)系中偏移的網(wǎng)格數(shù)。樓層坐標(biāo)系劃分的網(wǎng)格尺度都是1/32,偏離的經(jīng)緯度到網(wǎng)格數(shù)目到換算倍數(shù)是32×60×60。建構(gòu)筑物編碼的完整結(jié)構(gòu)C0MN_UXXX_M′N′,樓層坐標(biāo)系下偏移量就是固定的M′N′兩位。M′N′帶正負(fù)號,并且將這個換算倍率表示為L,編碼的篩選條件為
M′≤L(riglat-Xf)andM′≥L(leflat-Xf)
N′≤L(riglng-Yf)andN′≥L(leflng-Yf)
(2)范圍查詢
范圍查詢指查詢框定范圍內(nèi)所有的對象[11]。本研究場景下具體需求為:查詢某個房間內(nèi)所有的橫梁,如圖7的子空間C; 或圈定一個任意閉合圖形要求查詢到其中包含的所有特定構(gòu)件實(shí)體,如下圖跨越三個子空間ABD的藍(lán)色不規(guī)則陰影。
圖7 某樓層中的范圍查詢
基于外包矩形點(diǎn)查法,任意閉合圖形作為查詢范圍。若查詢范圍是建筑物中已劃分好的結(jié)構(gòu),輸入該子空間內(nèi)某個經(jīng)緯度點(diǎn)P(x,y),要求返回該點(diǎn)所在子空間某構(gòu)件。計(jì)算P在坐標(biāo)系O(xf,yf)中的坐標(biāo),再除以度到跨度數(shù)碼到換算倍率L,得到點(diǎn)P的偏移碼數(shù)目M′,N′。點(diǎn)P所在子空間標(biāo)識點(diǎn)C0應(yīng)離P點(diǎn)較近,C0在樓層坐標(biāo)系中的偏移Mc,Nc應(yīng)該滿足以下等式,且盡量小,即盡量趨近于一個定值:Mc2+Nc2=M′2+N′2+。存在子空間內(nèi)任意一點(diǎn)到該空間標(biāo)識點(diǎn)到距離其它子空間標(biāo)識點(diǎn)更遠(yuǎn)的情況,本文取離得最近的三個編碼值,然后到對應(yīng)數(shù)據(jù)行的詳細(xì)屬性列中找到子空間輪廓的經(jīng)緯度串,進(jìn)行點(diǎn)是否在多邊形中的判斷,得到最終就可以用匹配算法得到所有子空間編碼為Mc,Nc的特定構(gòu)件實(shí)體數(shù)據(jù)行。
(3)有約束條件的距離查詢
在建筑物內(nèi)的查詢必須考慮建筑物本身的構(gòu)造特點(diǎn),如由于門的阻隔,位于兩個房間內(nèi)構(gòu)件A和B之間的距離,不是直線距離,且存在多條可通行路徑。給定一個查詢點(diǎn)和多個可能的目標(biāo)點(diǎn),有約束的距離查詢就是需要返回該查詢點(diǎn)到各個目標(biāo)點(diǎn)的最短距離。
經(jīng)緯度在兩個方向的距離能按照公式轉(zhuǎn)為平面距離,得到兩個節(jié)點(diǎn)之間的平面距離。
基于自主設(shè)計(jì)的建構(gòu)筑物數(shù)據(jù)可視化和管理系統(tǒng),本節(jié)從模型建立和應(yīng)用開展編碼生成實(shí)驗(yàn)、建筑物多源數(shù)據(jù)關(guān)聯(lián)和查詢等典型應(yīng)用實(shí)驗(yàn),驗(yàn)證編碼模型正確性、高效性和可行性。
建筑業(yè)BIM軟件種類多,數(shù)據(jù)格式不盡相同。本文實(shí)驗(yàn)選擇Web端進(jìn)行BIM模型的展示與功能實(shí)現(xiàn),將Revit等BIM平臺的三維模型幾何空間數(shù)據(jù)解析,并通過WebGL顯示在Web端,后臺連接數(shù)據(jù)庫用于管理和查詢建構(gòu)筑物相關(guān)的數(shù)據(jù)信息,通過Web端交互。
選擇B/S網(wǎng)絡(luò)應(yīng)用框架驗(yàn)證,基于WebGL與HTML5語言,該框架層次和功能如圖8。
圖8 實(shí)驗(yàn)框架結(jié)構(gòu)功能圖
(1)模型數(shù)據(jù)解析與模型重建
程序解析BIM數(shù)據(jù),得到建筑物、子空間的標(biāo)識點(diǎn)等絕對位置坐標(biāo),奠定后續(xù)操作基礎(chǔ)。Revit Architecture 建筑模型文件轉(zhuǎn)化成JSON格式文件,WebGL解析JSON并在終端進(jìn)行可視化。導(dǎo)出的建筑物模型是要符合OBJ格式,包括四個內(nèi)容:材料紋理、幾何特性、自定義元數(shù)據(jù)和object記錄對象屬性數(shù)據(jù),通過標(biāo)識符ID關(guān)聯(lián)到一個實(shí)體上。得到解析后的各個構(gòu)件屬性,WebGL將模型數(shù)據(jù)可視化在Web端。圖9展示了模型重建后子空間以層次的效果圖和對應(yīng)模塊部分屬性信息,其余層次的結(jié)果類似。
圖9 模型重建后子空間
(2)建構(gòu)筑物模型的編碼生成試驗(yàn)
解析出的構(gòu)件關(guān)聯(lián)的子空間和建筑物輪廓信息,如圖10是實(shí)驗(yàn)數(shù)據(jù)編碼結(jié)果。
圖10 編碼結(jié)果
(3)多源數(shù)據(jù)整合
按照數(shù)據(jù)之間關(guān)聯(lián)關(guān)系,將數(shù)據(jù)庫中多張數(shù)據(jù)表關(guān)聯(lián)便可以將多源數(shù)據(jù)整合到一起。關(guān)聯(lián)之后,構(gòu)件的屬性信息中也含有相應(yīng)的多源信息。構(gòu)件數(shù)據(jù)表是以建構(gòu)筑物編碼為JSON字典中的鍵,而值則是由多個屬性組成,實(shí)現(xiàn)基于鍵值對的快速查找。實(shí)驗(yàn)結(jié)果,如圖11,進(jìn)入子空間,任選一個實(shí)體都夠彈出構(gòu)件自身屬性和所關(guān)聯(lián)的子空間的多源屬性。
圖11 多源信息整合顯示結(jié)果
(4)基于編碼模型的數(shù)據(jù)查詢檢索實(shí)驗(yàn)
(a)點(diǎn)查詢:以子空間的點(diǎn)查詢?yōu)槔?,用戶選查詢點(diǎn),默認(rèn)查詢半徑為10m,查詢結(jié)果如圖12。將編碼約束在外包矩形內(nèi),對編碼鍵值進(jìn)行篩選,得到符合查詢條件的編碼集合。
圖12 點(diǎn)查詢的結(jié)果
(b)范圍查詢
用戶任意指定某個范圍得到其中所有特定實(shí)體,可能是某個樓層,也可以是突破建筑物中既有邊界的不規(guī)則多邊形,如圖13。
圖13 跨越室內(nèi)邊界多邊形范圍查詢
(5)編碼對比
基于建構(gòu)筑物編碼的范圍查詢的查準(zhǔn)率較高,尤其是當(dāng)查詢范圍是建筑物內(nèi)固有的空間劃分時,查準(zhǔn)率是幾乎是100%; 并且查詢的效率很高,只需要匹配編碼子空間編碼的兩個方向的跨度碼就可以直接得到查詢結(jié)果; 而在建筑物場景下這種查詢需求是比較常見的。而全球的剛性劃分網(wǎng)格忽略了對象實(shí)體自身的界限,比如北斗網(wǎng)格參考框架,每個劃分網(wǎng)格都是客觀存在,這些網(wǎng)格的邊界無法與建筑物內(nèi)部結(jié)構(gòu)貼合,在圖14的查詢場景下,只能夠根據(jù)該子空間的外包面片進(jìn)行查詢。外包面片的范圍與子空間實(shí)際范圍的差別很大,導(dǎo)致查準(zhǔn)率較低,會包括許多非目標(biāo)實(shí)體; 如果采用層級更大的小網(wǎng)格進(jìn)行聚合,擬合子空間這樣的不規(guī)則多邊形則需要不斷的迭代計(jì)算,運(yùn)算量大效率不高。圖14顯示了全球剛性網(wǎng)格劃分的效果示意圖。
圖14 全球剛性網(wǎng)格劃分結(jié)果(左圖是外包網(wǎng)格,右圖是精細(xì)填充網(wǎng)格)
建筑信息管理對建設(shè)項(xiàng)目實(shí)施、建筑業(yè)宏觀管理作用巨大,它既是項(xiàng)目管理的職能,又是項(xiàng)目管理的基礎(chǔ)。建筑領(lǐng)域IT技術(shù)充分發(fā)揮作用需要建筑信息的規(guī)范化、標(biāo)準(zhǔn)化和統(tǒng)一化,這也是建筑業(yè)信息化的基礎(chǔ)環(huán)節(jié)。
但建立建筑空間標(biāo)識位置編碼是一項(xiàng)系統(tǒng)工程,本文對建筑空間標(biāo)識位置編碼的框架進(jìn)行分析,發(fā)現(xiàn)現(xiàn)有規(guī)則有不統(tǒng)一、效率不高等問題,提出了一種基于北斗網(wǎng)格的建構(gòu)筑物編碼規(guī)則,以及對應(yīng)的點(diǎn)查詢、范圍查詢、距離查詢等算法,來解決這些問題。許多問題仍需進(jìn)一步深化研究:
(1)研究如何改進(jìn)建構(gòu)筑物空間標(biāo)識位置編碼,進(jìn)一步提高查準(zhǔn)率,在異構(gòu)跨庫環(huán)境下提高構(gòu)件檢索效率;
(2)為實(shí)現(xiàn)建筑及其構(gòu)件的精細(xì)化、自動化裝配,為構(gòu)件添加連接件,在計(jì)算機(jī)編程環(huán)境下通過識別特定位置連接件的編碼完成構(gòu)件的自動化裝配;
(3)空間標(biāo)識位置編碼的操作大多都是通過手動方式運(yùn)行完成,在初期應(yīng)用中的建構(gòu)筑物數(shù)量不多的情況下能滿足任務(wù)需求,但構(gòu)件數(shù)量急劇增長時,若能自動對新增數(shù)據(jù)進(jìn)行建構(gòu)筑物空間標(biāo)識位置編碼,并進(jìn)行自動入庫,可以提高其效率。