王 茹, 孫衛(wèi)新, 徐東東
(西安建筑科技大學(xué)土木工程學(xué)院,陜西 西安 710055)
古建筑不僅有很高的歷史價值、藝術(shù)價值,也有很高的科學(xué)價值,是研究歷史科學(xué)的實物例證,也是新建筑設(shè)計和新藝術(shù)創(chuàng)作的重要借鑒。但是,隨著時間的流逝,現(xiàn)存的古建筑受到不同程度的損壞。目前對古建筑的保護研究主要體現(xiàn)在“三維掃描點云處理技術(shù)”、“參數(shù)化建模技術(shù)”和“基于三維模型的三維動畫演示和虛擬現(xiàn)實研究”等方面。在點云數(shù)據(jù)精簡算法方面,Lee K H,Woo H, Suk T提出了三維網(wǎng)格精簡算法[1],王茹教授等提出了基于聚類平面特征的點云數(shù)據(jù)精簡算法[2]。在建模方面,MULLER P,ZENG Gang,WONKA P提出基于校正圖生成的過程模型[3]、DUZhi-qiang, LI De-ren, ZHUYi-xuan提出基于3DGIS的建模系統(tǒng)[4]以及陳越、王婉等提出的參數(shù)化建模方法[5-6]。文獻[7]用多媒體技術(shù)演繹了唐宋建筑,文獻[8]利用虛擬現(xiàn)實技術(shù)復(fù)原了龜山漢墓。以上研究較好的實現(xiàn)了古建筑的工程模型或表面模型的三維重建,但是信息技術(shù)的快速發(fā)展,為古建筑模型及構(gòu)件添加必要的信息,對古建筑的信息化保護、修復(fù)有很重要的意義。
本文基于國家自然科學(xué)基金項目“基于BIM的明清古建筑數(shù)字化保護與修復(fù)方法研究”為背景開發(fā)了明清古建筑信息模型設(shè)計平臺,主界面,如圖1所示。本系統(tǒng)為古建筑構(gòu)件參數(shù)化信息模型庫的建立和管理提供了基礎(chǔ)平臺,以信息模型的方式存儲現(xiàn)場測量的數(shù)據(jù),支持信息的擴展功能。理論上可以包含有關(guān)古建筑的所有信息,既可以為古建筑的修繕和復(fù)原提供準(zhǔn)確的信息,又可以為古建筑的研究提供歷史資料。利用該古建構(gòu)件信息模型建立的古建筑虛擬現(xiàn)實系統(tǒng),可以展示更多的關(guān)于古建筑的歷史人文信息。
圖1 明清古建筑信息模型設(shè)計平臺主界面
圖2 古建筑構(gòu)件建模過程示意圖
系統(tǒng)建模過程,如圖2所示,根據(jù)古建筑構(gòu)件內(nèi)在結(jié)構(gòu)規(guī)律,總結(jié)參數(shù)化建模需要的關(guān)鍵參數(shù),并設(shè)計輸入界面由用戶輸入這些關(guān)鍵參數(shù)。在總結(jié)每類古建筑構(gòu)件關(guān)鍵參數(shù)的基礎(chǔ)上,將生成古建筑構(gòu)件所需要的其他參數(shù)與關(guān)鍵參數(shù)的關(guān)系存入數(shù)據(jù)庫,用戶輸入某古建筑構(gòu)件的關(guān)鍵參數(shù)后,系統(tǒng)將在構(gòu)件參數(shù)數(shù)據(jù)庫中檢索生成該構(gòu)件三維模型的其他所有參數(shù)。本建模系統(tǒng)另一個重要的數(shù)據(jù)庫就是構(gòu)件結(jié)構(gòu)規(guī)律數(shù)據(jù)庫,在該數(shù)據(jù)庫中存儲了古建筑構(gòu)件的結(jié)構(gòu)層次、部件名稱及形狀等結(jié)構(gòu)信息。建模系統(tǒng)將根據(jù)參數(shù)數(shù)據(jù)及結(jié)構(gòu)規(guī)律信息調(diào)用相應(yīng)的函數(shù)創(chuàng)建三維模型,同時由數(shù)據(jù)庫操作函數(shù)將各個部分的名稱、尺寸及結(jié)構(gòu)信息寫入三維模型。當(dāng)再次打開信息模型時,圖形數(shù)據(jù)庫操作函數(shù)將讀取信息模型中的相關(guān)信息,并在用戶界面中顯示。
斗拱在中國古建筑木構(gòu)架體系中占有非常重要的地位,是中國古典建筑體系中重要且極具特色的建筑構(gòu)件。經(jīng)過幾千年的發(fā)展歷史,斗拱的形制以及各個橫縱構(gòu)件的尺寸日臻完善和規(guī)格化。清式斗拱種類繁多,構(gòu)造復(fù)雜,但各類構(gòu)件各自的尺寸以及構(gòu)件之間的組合是十分有規(guī)律的。清《工程做法則例》對斗拱的的形制、比例、細部規(guī)格做法等都有著十分明細精確的記載。本系統(tǒng)支持斗栱參數(shù)化建模的類型分為內(nèi)檐斗栱和外檐斗栱兩類,內(nèi)檐斗栱主要包括襻間斗栱、品字科斗栱、隔架斗拱,外檐斗栱包括平身科斗栱、柱頭科斗栱、角柱科斗栱、溜金科斗栱以及平座科斗栱。如圖3所示,選擇“斗栱”菜單下的“外檐斗栱”子菜單,然后選擇“平身科斗栱”命令,可彈出如圖4所示的對話框。本系統(tǒng)創(chuàng)建斗栱的關(guān)鍵參數(shù)為斗口尺寸和斗栱樣式,確定了這兩個參數(shù)后,根據(jù)圖2所示參數(shù)化建模過程,點擊“創(chuàng)建模型”按鈕即可創(chuàng)建斗栱模型如圖5所示。
圖3 斗栱參數(shù)化建模菜單
圖5 斗栱參數(shù)化建模
本系統(tǒng)按構(gòu)造信息、材質(zhì)信息、物理信息、油漆彩繪信息和說明備注信息五個選項卡存儲斗栱模型的信息,如圖5所示。在每個選項卡下,系統(tǒng)預(yù)先設(shè)置了一些信息,用戶還可以根據(jù)需要定制每個選項卡下的信息。系統(tǒng)根據(jù)用戶選擇的斗口尺寸和斗栱樣式,在構(gòu)造信息選項卡下自動生成了斗栱的構(gòu)造層次以及各個構(gòu)件的安裝位置信息,如圖6所示。點擊列表中的構(gòu)件可以彈出構(gòu)件尺寸對話框,如圖7所示。需要說明的是,該選項卡中的構(gòu)造信息以及尺寸信息與斗栱模型建立一一驅(qū)動關(guān)系,改變選項卡中的構(gòu)造或是尺寸信息,都將會引起模型的相應(yīng)改變,相反,
改變模型中的尺寸或構(gòu)造關(guān)系也會引起選項卡中相應(yīng)項的改變。此功能可方便古建筑的測繪工作,可方便地將測繪數(shù)據(jù)轉(zhuǎn)換成三維信息模型。
圖6 斗栱的構(gòu)造信息選項卡
圖7 坐斗尺寸信息
油漆彩繪信息選項卡下,設(shè)置了古建筑構(gòu)件油漆和彩繪方面的信息。這些信息主要與斗栱信息模型的材質(zhì)和貼圖渲染建立驅(qū)動關(guān)系,如圖8所示。古代斗栱的彩畫主要包括斗栱部分和墊栱板兩部分。根據(jù)用金量、退暈層次和等級規(guī)格的不同,斗栱部分可分為煙琢墨斗彩畫、金琢墨斗彩畫和渾金斗栱彩畫3種;墊栱板部分可分為大木為和璽彩畫、大木為玄子墨線大點金彩畫和大木為高等蘇式彩畫3種。另外斗栱的畫花花樣如夔龍、墨線等也反映古建筑的類型及建筑等級,這些信息都可以在油漆彩繪信息選項卡中存儲。
圖8 油漆彩繪信息選項卡
材質(zhì)選項卡主要用于顯示或輸入與材質(zhì)有關(guān)的信息,如圖9所示。古代斗栱的主要用材是木材,如杉木、松木等針葉樹材和柞木、香樟、
圖9 材質(zhì)信息選項卡
楠木等闊葉樹材。系統(tǒng)預(yù)先添加的材質(zhì)信息主要包括經(jīng)濟技術(shù)成本和處理難度兩個方面,經(jīng)濟成本主要指木材的市場價格、加工運輸難度、施工難度、使用壽命和維修成本等方面的信息。
圖10和圖11為斗栱的物理信息選項卡和說明備注信息選項卡,物理信息主要是指材料的物理力學(xué)性質(zhì),這些信息可用于對斗栱進行力學(xué)計算與分析時使用。說明備注信息想模型中添加一些歷史人文方面的信息。
圖10 物理信息選項卡
圖11 說明備注信息選項卡
古建筑信息模型設(shè)計系統(tǒng)框架,如圖 12所示。我國古建筑的一個特點是由千百個大小、形狀各異的單個構(gòu)件組成,并且各個構(gòu)件按照一定的規(guī)律進行組裝,宋代的《營造法式》和清代的《工程做法則例》中規(guī)定了各個構(gòu)件的構(gòu)造特征及整體的組裝規(guī)律,本系統(tǒng)正是在此基礎(chǔ)上設(shè)計而成,其具體特點如下:
1) 系統(tǒng)構(gòu)建了兩種方式建立古建筑三維模型,一種是軟件本身的參數(shù)化建模,另一種是直接導(dǎo)入dwg或dxf格式的模型。其中參數(shù)化建模提供手工輸入?yún)?shù)、測繪數(shù)據(jù)的導(dǎo)入以及三維掃描點云數(shù)據(jù)的導(dǎo)入3種參數(shù)輸入方式。
2) 古建筑構(gòu)件的信息直接存儲在圖形數(shù)據(jù)庫中,信息作為模型的一部分進行存儲。信息的生命周期等于模型的生命周期,任何時候打開模型都能讀取其上存儲的信息。
3) 本系統(tǒng)采用擴展數(shù)據(jù)存儲信息的字段信息,采用擴展字典存儲信息值,從而實現(xiàn)信息存儲的擴展性和可定制性。用戶不僅可以向數(shù)據(jù)庫中添加記錄而且可以添加信息字段。
4) 信息與古建構(gòu)件模型建立驅(qū)動關(guān)系,信息值的改變自動驅(qū)動模型的改變。
5) 本系統(tǒng)支持多種數(shù)據(jù)格式,可以與常用的BIM軟件進行通信。
6) 模型檢索模塊,實現(xiàn)基于圖形數(shù)據(jù)庫的三維模型檢索算法,檢索字段為模型中的附加信息,使檢索更加準(zhǔn)確。
7) 組裝模塊基于古建筑構(gòu)件本身的安裝位置信息和古建筑整體的結(jié)構(gòu)信息實現(xiàn),是古建筑建造規(guī)律的體現(xiàn)。
圖12 古建筑信息模型設(shè)計平臺的系統(tǒng)框架
本系統(tǒng)建立在AutoCAD圖形數(shù)據(jù)庫之上,圖形數(shù)據(jù)庫結(jié)構(gòu),如圖 13所示。根據(jù)圖形數(shù)據(jù)庫的結(jié)構(gòu)可知,給實體追加附加信息可以通過擴展數(shù)據(jù)和擴展字典來實現(xiàn)。擴展數(shù)據(jù)能被添加到任何實體上,它由一個結(jié)果緩沖區(qū)鏈表組成,并且隨圖形一起被保存。但是,每個實體中附加的擴展數(shù)據(jù)不能超過16K[10]。擴展字典也是隸屬于特定的實體,但是,每一個實體只能包含一個擴展字典。它為實體保存自定義數(shù)據(jù)提供了一種途徑。擴展記錄與擴展數(shù)據(jù)類似,但是,其數(shù)據(jù)存儲量和能夠存儲的數(shù)據(jù)類型都要多于擴展數(shù)據(jù)。擴展記錄可以保存到實體的擴展字典中。
任何一個應(yīng)用程序都能將擴展數(shù)據(jù)附加到實體上,因此,所有的擴展數(shù)據(jù)都需要一個惟一的應(yīng)用程序名稱,該名稱不能超過 31個字符。為了注冊一個應(yīng)用程序,可以使用全局函數(shù)acdbRegApp()。AcDbObject類的 setXData函數(shù)用于設(shè)置一個對象的擴展數(shù)據(jù),其定義為:
圖13 圖形數(shù)據(jù)庫結(jié)構(gòu)
要利用擴展字典保存與實體關(guān)聯(lián)的數(shù)據(jù),可以使用 createExtensionDictionary()函數(shù)為實體建立擴展字典。如果實體已經(jīng)包含擴展字典,該函數(shù)的調(diào)用不會產(chǎn)生影響。AcDbDictionary對象的setAt()函數(shù),可以為字典添加一條擴展記錄。如果添加了擴展記錄,就可以利用 acutBuildList()函數(shù)構(gòu)建一個保存數(shù)據(jù)的結(jié)果緩沖區(qū)鏈表,然后使用setFromRbChain()函數(shù)將結(jié)果緩沖區(qū)鏈表添加到擴展記錄中,這樣就把數(shù)據(jù)附加到實體上了。如果要訪問擴展字典中的擴展記錄,可以使用 extensionDictionary()函數(shù)獲得實體的擴展字典,然后通過字典的getAt()函數(shù)得到指定的擴展記錄,使用AcDbXrecord類的rbChain()函數(shù)得到保存數(shù)據(jù)的結(jié)果緩沖區(qū)鏈表,遍歷該鏈表可以獲得保存的數(shù)據(jù)。相關(guān)函數(shù)的定義如下:
本系統(tǒng)利用擴展數(shù)據(jù),存儲古建筑構(gòu)件信息選項卡和每個選項卡中的字段信息,如圖 14所示。以斗栱為例,其信息選項卡包括:構(gòu)造信息、油漆彩繪信息、材質(zhì)信息、物理信息、說明備注信息。構(gòu)造信息選項卡下的字段信息包括:構(gòu)造層、結(jié)構(gòu)名稱、安裝信息、數(shù)量;油漆彩繪信息、材質(zhì)信息、物理信息和說明備注信息選項卡下的信息字段都包括信息類型和信息值兩個字段。
圖14 利用擴展數(shù)據(jù)存儲信息字段
對擴展數(shù)據(jù)操作的兩個關(guān)鍵函數(shù)是添加擴展數(shù)據(jù)函數(shù) AddXData()和讀取擴展數(shù)據(jù)的函數(shù)ReadXData()。兩個函數(shù)的實現(xiàn)如下:
本系統(tǒng)利用擴展字典來存儲古建筑構(gòu)件的所有信息,以斗栱為例,其擴展字典數(shù)據(jù)結(jié)構(gòu),如圖 15所示。對擴展字典操作函數(shù)也主要是向擴展字典中添加數(shù)據(jù)和讀取擴展字典中的數(shù)據(jù),即AddXrecord()函數(shù)和ReadXrecord()函數(shù)。其實現(xiàn)關(guān)鍵代碼如下:
圖15 利用數(shù)據(jù)字典存儲信息值
點擊菜單欄中的“組裝”,可彈出古建筑信息模型組裝對話框。在對話框中主要確定古建筑的主體參數(shù)、開間數(shù)據(jù)、步舉架等基本參數(shù),以及設(shè)置從構(gòu)件庫信息模型中搜索構(gòu)件模型的參數(shù)。確定了這些參數(shù)之后系統(tǒng)將自動根據(jù)古建筑建造規(guī)律組裝成古建筑信息模型,如圖16所示。
圖16 古建筑信息模型組裝圖
本文通過對明清古建筑構(gòu)造特征及其包含信息的分析實現(xiàn)了古建筑信息模型設(shè)計平臺的開發(fā),為古建筑構(gòu)件參數(shù)化信息模型庫的建立和管理提供了基礎(chǔ)平臺,同時方便將古建筑的測繪數(shù)據(jù)轉(zhuǎn)換為三維模型。本系統(tǒng)支持信息的擴展功能,理論上可以包含有關(guān)古建筑的所有信息,既可以為古建筑的修繕和復(fù)原提供準(zhǔn)確的信息,又可以為古建筑的研究提供歷史資料。本系統(tǒng)模型的建立,為建立更為精細、真實、并附帶大量歷史人文信息的古建筑信息模型提供了良好的技術(shù)平臺。
[1]Lee K H, Woo H, Suk T. Data reduction methods for reverse engineering [J]. The International Journal of Advanced Manufa-cturing Technology, 2001, 17(10):735-743.
[2]王 茹, 周明全, 邢毓華. 基于聚類平面特征的三維點云數(shù)據(jù)精簡算法[J]. 計算機工程, 2011, (10):249-254.
[3]Muller P, Zeng Gang, Wonka P, et al. Image-based procedural modelingoffacade [J]. ACM Trans on Graphics, 2007, 26(3): 85.
[4]Du Zhiqiang, Li Deren, Zhu Yixuan, et al. 3DGIS-basedrecon-struction and visualization oftimber-frame building cluster [J]. Jour-nalof System Simulation,2006, 18(7): 1184-1189.
[5]陳 越.中國古建筑參數(shù)化設(shè)計[D].重慶: 重慶大學(xué), 2002.
[6]王 婉, 謝步瀛. 中國古代宮殿建筑參數(shù)化設(shè)計與三維建模[J]. 東華大學(xué)學(xué)報(自然科學(xué)版), 2008,34(3): 270-273.
[7]陳 薇. 用多媒體技術(shù)演繹唐宋建筑[J]. 東南大學(xué)學(xué)報(自然科學(xué)版), 2002, (3): 383-386.
[8]邵亞琴, 汪云甲, 劉 云. 基于虛擬現(xiàn)實的龜山漢墓虛擬重建研究[J]. 測繪通報, 2008, (2): 11-15.
[9]王 茹. 古建筑數(shù)字化及三維建模關(guān)鍵技術(shù)研究[D].西安: 西北大學(xué), 2010.
[10]李長勛. AutoCAD ObjectARX程序開發(fā)技術(shù)[M].北京: 國防工業(yè)出版社, 2005.