【摘 要】針對城市規(guī)劃行業(yè)目前普遍使用的AutoCAD軟件所繪制的圖形層次較低且缺乏關(guān)聯(lián)、智能性不足、方案修改維護(hù)成本高,以及現(xiàn)有參數(shù)化設(shè)計(jì)系統(tǒng)技術(shù)門檻較高等問題,提出一套面向城市規(guī)劃的參數(shù)化設(shè)計(jì)新技術(shù),并開發(fā)了相應(yīng)的系統(tǒng)。文章共分三部分,本文為第三部分,重點(diǎn)介紹了參數(shù)化三維建模技術(shù),其中包括CGA規(guī)則庫的構(gòu)建策略和自動(dòng)化生成腳本的設(shè)計(jì)等關(guān)鍵技術(shù),并通過實(shí)際規(guī)劃案例,證明了所述技術(shù)和系統(tǒng)的可行性和高效性。第一、二部分分別給出了系統(tǒng)整體架構(gòu)思路及基于屬性塊的城市圖元參數(shù)管理方法、DXF-SHP文件格式自定義轉(zhuǎn)換方法等。
【關(guān)鍵詞】參數(shù)化設(shè)計(jì);城市規(guī)劃;CityEngine;三維建模
1 引言
目前城市規(guī)劃行業(yè)普遍使用計(jì)算機(jī)輔助設(shè)計(jì)軟件為AutoCAD,它所繪制的圖形存在著層次較低且缺乏關(guān)聯(lián)、智能性不足、方案修改維護(hù)成本高,以及現(xiàn)有參數(shù)化設(shè)計(jì)系統(tǒng)技術(shù)門檻較高等問題,嚴(yán)重制約了城市規(guī)劃設(shè)計(jì)工作的效率。為此,提出一套面向城市規(guī)劃的參數(shù)化設(shè)計(jì)新技術(shù),并開發(fā)了相應(yīng)的系統(tǒng)。文章共分三部分:第一部分介紹了系統(tǒng)的整體架構(gòu)思路和基于屬性塊的城市圖元參數(shù)管理方法;第二部分介紹了DXF-SHP文件格式自定義轉(zhuǎn)換方法;本文為第三部分,重點(diǎn)介紹了參數(shù)化三維建模技術(shù),其中包括CGA規(guī)則庫的構(gòu)建策略和自動(dòng)化生成腳本的設(shè)計(jì)等關(guān)鍵技術(shù),并通過實(shí)際規(guī)劃案例,證明了所述技術(shù)和系統(tǒng)的可行性和高效性。
2 參數(shù)化三維建模技術(shù)
2.1 CGA規(guī)則庫的構(gòu)建策略
CGA(Computer Generated Architecture)是CityEngine平臺(tái)為三維城市設(shè)計(jì)的一種形狀語法。由它定義的文法規(guī)則可以驅(qū)動(dòng)二維平面生成復(fù)雜三維形體。CityEngine平臺(tái)提供了大量的CGA命令來組裝不同的流水線(即不同的文法規(guī)則)。從理論上講,只要參數(shù)足夠多、文法規(guī)則足夠復(fù)雜,單個(gè)文法規(guī)則也可以描述一個(gè)復(fù)雜城市的構(gòu)造過程。然而這將會(huì)使文法規(guī)則過于復(fù)雜、難以維護(hù),且不利于共享。為此本文提出“一事物一規(guī)則”的思路,建立一個(gè)種類豐富、數(shù)量龐大的規(guī)則庫,便于規(guī)則的共享和靈活調(diào)用。本文根據(jù)城市地物類型不同,將規(guī)則庫中的CGA文法規(guī)則劃分為“建筑”、“道路”、“地塊”三大類,并且制定命名規(guī)則,以便于管理和調(diào)用。其中建筑類文法規(guī)則文件以“B+唯一編號(hào)”的形式命名(表示Building),而道路類以“S”開頭(表示Street),地塊類以“L”開頭(表示Lot)。文法規(guī)則庫的整體框架如圖所示。
由于本系統(tǒng)的客戶端和服務(wù)端是分離的,這就存在一個(gè)規(guī)則庫中文件如何調(diào)用的問題。為此,本文設(shè)計(jì)了一個(gè)以“STYLEID”為核心的調(diào)用機(jī)制,具體方法如下:首先,定義一個(gè)CGA文法規(guī)則,并以“STYLEID”(例如“B201209171121001”)作為該文法規(guī)則的文件名(不包含后綴,文法規(guī)則的后綴為“.cga”)。其次,在服務(wù)網(wǎng)站的風(fēng)格庫中新建一個(gè)風(fēng)格,在該風(fēng)格的參數(shù)列表中增加一個(gè)名為“STYLEID”、值為“B2012091 71121001”的參數(shù)。然后,規(guī)劃設(shè)計(jì)者從服務(wù)網(wǎng)站的風(fēng)格庫中獲得該新建風(fēng)格的參數(shù)列表,并將其作為屬性與城市地物圖元綁定,構(gòu)成帶屬性的塊參照。此時(shí)塊參照包含一個(gè)名為“STYLEID”、值為“B201209 171121001”的屬性。接著,設(shè)計(jì)人員將編輯并保存好的DXF文件經(jīng)過服務(wù)網(wǎng)站上傳到服務(wù)器,服務(wù)端獲得DXF文件后啟動(dòng)自動(dòng)生成腳本,腳本在處理到上述塊參照時(shí),先將讀取“STYLEID”參數(shù)的值“B201209171121001”,再到從規(guī)則庫中找到對應(yīng)的規(guī)則文件——即“B201209171121 001.cga”文件,將該CGA文件指定給該圖元,完成其他參數(shù)的讀取和映射,即可建立三維實(shí)體。
2.2 自動(dòng)化生成腳本的設(shè)計(jì)
CityEngine平臺(tái)提供了一個(gè)Python腳本編輯窗口和一個(gè)基于Python語言的“CE”模塊,借此用戶可以使用Python命令自動(dòng)實(shí)現(xiàn)許多自定義的功能,大大擴(kuò)展CityEngine的功能,自動(dòng)化生成主要也是基于此實(shí)現(xiàn)的。這里的“CE”模塊類似于Python語言自帶的“os”、“random”等模塊,封裝了大量對CityEngine內(nèi)部空間、屬性數(shù)據(jù)進(jìn)行讀寫、編輯的API函數(shù),是自動(dòng)化生成的核心。當(dāng)然,整個(gè)自動(dòng)化生成腳本還包括許多輔助功能,具體如圖所示:
圖2 自動(dòng)化生成腳本工作流程
首先,由于用戶上傳的項(xiàng)目文件組織難以預(yù)料,因此必須對原始文件進(jìn)行整理,本文設(shè)計(jì)的Python函數(shù)整理流程如下:(1)獲取項(xiàng)目壓縮包,并將其解壓到當(dāng)前目錄下的同名文件夾(根文件夾)中;(2)將所有根文件夾下各層級(jí)的壓縮包,分別解壓到它們的同目錄下的同名文件夾中;(3)將根文件夾下所有子文件夾中的文件全部轉(zhuǎn)移到根文件夾下;(4)將根文件夾下所有空子文件夾刪除。其次,在獲取DXF文件后,需要調(diào)用DXF-SHP程序進(jìn)行格式轉(zhuǎn)換。為了確保該程序能夠被Python腳本調(diào)用,我們在設(shè)計(jì)DXF-SHP轉(zhuǎn)換程序,提供了一個(gè)含參命令行調(diào)用的接口。當(dāng)程序啟動(dòng)時(shí),先獲取2個(gè)命令行參數(shù),如果參數(shù)存在并且一個(gè)是DXF文件目錄,另一個(gè)是SHP文件保存路徑,那么就隱藏程序窗口并進(jìn)行處理,處理完畢后自動(dòng)結(jié)束程序。接著需要清理工程,我們在每個(gè)規(guī)劃方案生成前后,都安排了該步驟,這是為了保證每個(gè)項(xiàng)目的獨(dú)立性,避免項(xiàng)目之間相互影響和產(chǎn)生不發(fā)預(yù)見的錯(cuò)誤。這里的清理包括三維數(shù)字場景清理和文件系統(tǒng)清理兩方面。工程清理完畢后,即可開始導(dǎo)入SHP文件,并開始生成方案(道路、建筑)模型。
對于這里以建筑為例,簡要介紹一下模型生成的方法。首先需要獲取一個(gè)初始shape圖形,設(shè)置圖元名稱(平臺(tái)稱為“StartRule”)為“Lot”;然后根據(jù)“STYLEID”屬性值從規(guī)則庫中找到相應(yīng)文法規(guī)則,賦予該圖元(的“RuleFile”參數(shù));接著系統(tǒng)自動(dòng)完成shape自帶屬性與文法規(guī)則定義參數(shù)的匹配;最后自動(dòng)生成建筑實(shí)體。其對應(yīng)的Python代碼如下:
3 實(shí)驗(yàn)分析
為驗(yàn)證所述技術(shù)及系統(tǒng)的可行性和高效性,這里以浙江省余姚市陸埠鎮(zhèn)的村莊整治規(guī)劃為例,進(jìn)行參數(shù)化設(shè)計(jì)實(shí)驗(yàn)。實(shí)驗(yàn)的已知數(shù)據(jù)為該村莊的規(guī)劃構(gòu)思局部平面圖,包含道路中心線和建筑封閉輪廓線,如圖所示。實(shí)驗(yàn)?zāi)繕?biāo)是由本文所述系統(tǒng)自動(dòng)創(chuàng)建三維化的詳細(xì)規(guī)劃方案。
首先利用參數(shù)管理插件,在AutoCAD平臺(tái)上將合適的參數(shù)與每條道路中心線和每個(gè)建筑輪廓線綁定,特征相同的元素可以一起綁定,效果如圖 4所示。在此,我們對建筑對象設(shè)計(jì)的參數(shù)有層數(shù)FLR_NBR、首層層高FST_HEIGHT、其他層高F_HEIGHT,對道路設(shè)計(jì)的參數(shù)有左側(cè)人行道寬度L_WIDHT、車行路面寬度M_WIDTH、右側(cè)人行道寬度R_WIDTH,此外兩者共有的參數(shù)有精細(xì)等級(jí)LOD(用于控制生成模型的精細(xì)程度)、風(fēng)格編碼STYLEID。
最后,將文件另存為DXF格式,通過服務(wù)網(wǎng)站上傳到服務(wù)器。服務(wù)端后臺(tái)隨即啟動(dòng)自動(dòng)化生成腳本,按照上文介紹的流程自動(dòng)生成三維化的、詳細(xì)的規(guī)劃方案,并提供下載,最方案終效果如圖 5所示。圖中我們可以看到,由該系統(tǒng)生成的規(guī)劃方案具有非常豐富的細(xì)節(jié)、逼真的紋理和三維空間形態(tài)。更重要的是,如此詳細(xì)的規(guī)劃方案從參數(shù)管理到上傳、再到獲得最終結(jié)果,總耗時(shí)僅20分鐘左右。如果使用傳統(tǒng)的3DMax、Sketchup等三維輔助設(shè)計(jì)軟件進(jìn)行手工制作,要達(dá)到相同的效果可能需要花費(fèi)數(shù)天時(shí)間。
當(dāng)然,本系統(tǒng)的優(yōu)勢除了處理速度快,更重要的還在于使規(guī)劃方案的調(diào)整變得異常方便。例如當(dāng)需要調(diào)整圖 -a中局部建筑的層數(shù)和風(fēng)格時(shí),只需將DXF文件中的對應(yīng)建筑輪廓圖元(屬性塊)的屬性數(shù)值稍作調(diào)整,重新上傳到服務(wù)器,數(shù)分鐘后即可得到成果(如圖 -b所示)。
a. 調(diào)整前
b. 調(diào)整后
4 總結(jié)與展望
本文作為面向城市規(guī)劃的參數(shù)化技術(shù)與系統(tǒng)的組成部分之一,研究了參數(shù)化三維建模技術(shù),其中包括CGA規(guī)則庫的構(gòu)建策略和自動(dòng)化生成腳本的設(shè)計(jì)等關(guān)鍵技術(shù)。至此,三個(gè)部分構(gòu)成了一個(gè)完整的面向城市規(guī)劃的參數(shù)化設(shè)計(jì)技術(shù)與系統(tǒng)。最后的實(shí)際規(guī)劃案例證明了系列技術(shù)與系統(tǒng)的有效性和高效性。然而目前該系統(tǒng)的主要功能是根據(jù)既有的規(guī)劃構(gòu)思圖,自動(dòng)、快速得生成詳細(xì)的規(guī)劃方案,即方案的設(shè)計(jì)部分其實(shí)還是由人工完成的。對該套技術(shù)和系統(tǒng)進(jìn)行拓展,使其能模擬人工構(gòu)思設(shè)計(jì)的過程,實(shí)現(xiàn)方案設(shè)計(jì)部分的計(jì)算機(jī)自動(dòng)化,將是未來的重點(diǎn)研究內(nèi)容之一。
基金項(xiàng)目:“國家國際科技合作計(jì)劃”項(xiàng)目(2010DFA92720) 及\"863\"項(xiàng)目(2009AA12Z121)資助
作者簡介:
吳寧(1984-),男,博士,研究方向?yàn)槌鞘幸?guī)劃新技術(shù)應(yīng)用研究;
陳秋曉**(1972-),通訊作者,男,博士、副教授。