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