【摘 要】針對城市規(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)。文章共分三部分,本文為第一部分,給出了參數(shù)管理與自動(dòng)化生成相分離的參數(shù)化設(shè)計(jì)系統(tǒng)架構(gòu)思路及基于屬性塊的城市圖元參數(shù)管理方法。第二、三部分分別給出了DXF-SHP文件格式自定義轉(zhuǎn)換、參數(shù)化三維建模技術(shù),并通過實(shí)際規(guī)劃案例,證明了所述技術(shù)和系統(tǒng)的可行性和高效性。
【關(guān)鍵詞】參數(shù)化設(shè)計(jì);城市規(guī)劃;CityEngine;系統(tǒng)架構(gòu);參數(shù)管理
1 引言
目前,城市規(guī)劃行業(yè)普遍使用的輔助設(shè)計(jì)軟件是AutoDesk公司的AutoCAD,該軟件在規(guī)劃實(shí)踐中存在如下諸多問題:(1)規(guī)劃方案由點(diǎn)、線、面等低層次幾何圖形拼湊而成的,缺乏高層次城市地物對象的概念,不符合人類的認(rèn)知習(xí)慣;(2)幾何圖形之間缺乏關(guān)聯(lián),呈離散分布,導(dǎo)致整個(gè)方案的設(shè)計(jì)、修改和維護(hù)成本異常龐大;(3)整個(gè)規(guī)劃方案中的任何細(xì)節(jié)均需人工確定,缺乏智能性和輔助決策能力。為了解決上述問題,近年來不少學(xué)者將參數(shù)化設(shè)計(jì)技術(shù)引入建筑、規(guī)劃領(lǐng)域,并開發(fā)了相應(yīng)的參數(shù)化設(shè)計(jì)系統(tǒng),如Esri公司的CityEngine[1-3]。然而該系統(tǒng)技術(shù)門檻較高,主要表現(xiàn)在:(1)方案的建立由形式化或結(jié)構(gòu)化的文法規(guī)則驅(qū)動(dòng),因此用戶必須掌握計(jì)算機(jī)語言和具備編程能力;(2)城市地物類型豐富多樣,因此必須建立龐大的文法規(guī)則庫,才能表現(xiàn)真實(shí)世界的復(fù)雜空間形態(tài);(3)軟件系統(tǒng)的操作方式、使用習(xí)慣完全不同于AutoCAD,對于規(guī)劃設(shè)計(jì)者而難度較大。這些問題將嚴(yán)重制約參數(shù)化設(shè)計(jì)技術(shù)在城市規(guī)劃領(lǐng)域的發(fā)展和普及。
事實(shí)上,要將參數(shù)化設(shè)計(jì)技術(shù)引入城市規(guī)劃領(lǐng)域,需要考慮該領(lǐng)域的特殊性:(1)規(guī)劃對象的特殊性。規(guī)劃對象為城市地物,如道路、地塊、建筑等,且種類風(fēng)格各異,因此參數(shù)化設(shè)計(jì)系統(tǒng)必須具有表現(xiàn)這些對象的能力;(2)規(guī)劃人員的特殊性。大部分的規(guī)劃人員不具備計(jì)算機(jī)語言和編程基礎(chǔ),依舊習(xí)慣于使用熟悉的AutoCAD軟件進(jìn)行輔助設(shè)計(jì),參數(shù)化設(shè)計(jì)系統(tǒng)必須考慮這些使用者的現(xiàn)實(shí)條件。為促進(jìn)參數(shù)化設(shè)計(jì)技術(shù)在城市規(guī)劃領(lǐng)域的普及和應(yīng)用,針對上述特殊性,本文提出了一套面向城市規(guī)劃的參數(shù)化設(shè)計(jì)技術(shù),并開發(fā)了相應(yīng)的系統(tǒng)。
2 面向城市規(guī)劃的參數(shù)化設(shè)計(jì)系統(tǒng)架構(gòu)
在一般的參數(shù)化設(shè)計(jì)系統(tǒng)里,參數(shù)管理和自動(dòng)化生成是緊密整合在一起的,因此用戶既須負(fù)責(zé)管理參數(shù),又需編寫參數(shù)化生成規(guī)則和建立模型庫等,這對于廣大規(guī)劃設(shè)計(jì)者而言門檻太高。為此,文本提出將參數(shù)管理與自動(dòng)化生成相分離的思路:前者,研究基于AutoCAD平臺的高效的參數(shù)管理方法及開發(fā)相應(yīng)插件,形成一個(gè)面向規(guī)劃設(shè)計(jì)者的客戶端;后者,借助CityEngine Pro 2011平臺,研究文件格式轉(zhuǎn)換、規(guī)則庫構(gòu)建、自動(dòng)化生成腳本設(shè)計(jì)等內(nèi)容,并封裝復(fù)雜技術(shù)細(xì)節(jié),形成一個(gè)相對封閉的服務(wù)端。最后,研究并搭建服務(wù)網(wǎng)站,將上述兩者連接成一個(gè)整體。
系統(tǒng)的整體框架如圖
圖所示:(1)首先城市地圖以DWG或DXF文件格式導(dǎo)入客戶端,由規(guī)劃設(shè)計(jì)者利用插件,并參照服務(wù)網(wǎng)站風(fēng)格庫管理模塊,將相應(yīng)參數(shù)賦予各個(gè)城市地物圖元,并另存為帶參數(shù)的DXF文件;(2)規(guī)劃設(shè)計(jì)者將DXF文件經(jīng)過網(wǎng)站的項(xiàng)目管理模塊上傳到服務(wù)器,并立即被服務(wù)端獲??;(3)服務(wù)端執(zhí)行自動(dòng)生成腳本,調(diào)用文件格式轉(zhuǎn)換工具、材質(zhì)庫、CGA規(guī)則庫等快速、自動(dòng)地生成規(guī)劃方案;(4)服務(wù)端將方案文件傳入到服務(wù)網(wǎng)站供客戶端下載。整個(gè)過程,規(guī)劃設(shè)計(jì)者只需在客戶端內(nèi)(熟悉的AutoCAD平臺下)為圖元賦予適當(dāng)?shù)膮?shù)即可,無需編寫任何規(guī)則腳本或建立模型庫,規(guī)劃方案會(huì)在服務(wù)網(wǎng)站后臺自動(dòng)生成并提供下載。
3 基于屬性塊的城市圖元參數(shù)管理技術(shù)
3.1 圖元與參數(shù)的綁定
參數(shù)化設(shè)計(jì)的首要條件是地理空間數(shù)據(jù)與非地理空間數(shù)據(jù)相關(guān)聯(lián)。AutoCAD平臺雖未直接提供實(shí)現(xiàn)該功能的機(jī)制,但借助屬性塊[4, 5]可以間接實(shí)現(xiàn)。然而,手工創(chuàng)建屬性塊的步驟缺非常繁瑣:1)繪制代表城市地物的幾何圖元;2)為每一個(gè)參數(shù)創(chuàng)建對應(yīng)的屬性定義(Attribute Definition);3)同時(shí)選中幾何圖元與屬性定義,創(chuàng)建并插入塊。當(dāng)涉及到大量城市地物需綁定參數(shù)時(shí),手工交互量將變得異常龐大。為此,本文采用Visual Lisp語言,整合上述步驟,提出了一種快速創(chuàng)建屬性塊的方法,其具體流程如圖所示:
該方法首先手動(dòng)將一個(gè)或者若干個(gè)需要相同參數(shù)集的圖元選入選擇集SS。其次,從指定的文件中導(dǎo)入?yún)?shù)集PAS,每個(gè)參數(shù)都包含“屬性”、“提示文字”、“默認(rèn)值”三個(gè)字段。接著,求出SS的中心點(diǎn)坐標(biāo)P,并為每個(gè)參數(shù)創(chuàng)建一個(gè)屬性定義ATTDEFS,以P點(diǎn)為中心自上而下依次排列。然后將ATTDEFS連同SS一起,創(chuàng)建一個(gè)塊BLOCK。當(dāng)然建立的塊并不會(huì)在繪圖區(qū)顯示,最后還需要按照原坐標(biāo)插入塊參照REF,至此整個(gè)流程結(jié)束。圖中實(shí)線框表示的是基本步驟,虛線框表示的是可選步驟。其中,更改和讀取注冊表內(nèi)的設(shè)置,主要用于讓用戶選擇不同的屬性塊創(chuàng)建方式,比如可以選擇為多個(gè)選中圖元?jiǎng)?chuàng)建一個(gè)屬性塊,也可以選擇分別為每個(gè)圖元?jiǎng)?chuàng)建一個(gè)屬性塊等;“插入提示文字”,便于規(guī)則設(shè)計(jì)者理解所創(chuàng)建的每個(gè)屬性定義的含義,方便后期的維護(hù);“修改塊參照的顏色和圖層屬性”是為了便于識別和統(tǒng)一管理。由本方所述方法最終生成的屬性塊如圖所示。整個(gè)綁定流程中,除第一步“選擇圖元集”需要少量手動(dòng)交互外,其他步驟均由程序自動(dòng)完成,大大提高了創(chuàng)建屬性塊的效率,使規(guī)劃設(shè)計(jì)者得以從繁瑣的操作中解脫出來。
3.2 參數(shù)的組織與管理
從綁定的流程可見,需要從外部文件導(dǎo)入一個(gè)參數(shù)集。這種依賴外部文件的管理方式不夠直觀、操作繁瑣、難以保證外部文件格式的正確性。因此需將參數(shù)集的組織與管理整合到AutoCAD平臺中來,并提供友好的交互對話框。目前,可以設(shè)計(jì)AutoCAD對話框的語言有:DCL、VBA、ObjectDCL和OpenDCL[6]。DCL并不是一個(gè)可視化的編程環(huán)境;VBA雖是可視化的,但在與Lisp/VisualLisp進(jìn)行大量數(shù)據(jù)通信時(shí),速度和穩(wěn)定性難以保證[7];ObjectDCL與OpenDCL均是可視化的對話框制作工具,提供了類似于MFC的消息響應(yīng)機(jī)制,且能打包成獨(dú)立的VLX可執(zhí)行文件。但ObjectDCL是商業(yè)化產(chǎn)品,因此功能類似的開源免費(fèi)語言O(shè)penDCL是本文合適的選擇。
(a)原始圖元
(b)整體模式的屬性塊
(c)獨(dú)立模式的屬性塊
圖3 屬性塊效果示意
本文利用OpenDCL開發(fā)的對話框界面如圖所示。在屬性定義選項(xiàng)面板下,設(shè)置了一個(gè)GRID屬性列表,用于顯示整個(gè)參數(shù)集。表中一行代表一個(gè)參數(shù),包含“屬性”、“提示”、“默認(rèn)值”三個(gè)字段,分別對應(yīng)屬性定義(Attribute Definition)的三個(gè)要素。對話框提供了三種導(dǎo)入?yún)?shù)集的方式:(1)從外部文件導(dǎo)入,界面提供了“打開”、“保存”、“另存”、“關(guān)閉”等操作外部文件的按鈕;(2)手動(dòng)輸入,界面提供了手動(dòng)創(chuàng)建一條參數(shù)的按鈕,同時(shí)還可以直接在界面上對參數(shù)進(jìn)行排序、刪除、修改等操作;(3)從系統(tǒng)剪切面板粘貼,當(dāng)用戶從外部復(fù)制了一組參數(shù)集到系統(tǒng)剪切面板后,單擊“粘貼”按鈕即可使其快速輸入列表;(4)從AutoCAD繪圖區(qū)屬性塊實(shí)體上吸取,通過該功能用戶可以直接從圖上得到想要的參數(shù)集。
4 總結(jié)
本文針對現(xiàn)有規(guī)劃技術(shù)手段落后、已有參數(shù)化設(shè)計(jì)系統(tǒng)門檻又較高的問題,提出將參數(shù)管理與自動(dòng)化生成相分離的參數(shù)化設(shè)計(jì)系統(tǒng)架構(gòu)思路,重點(diǎn)研究了圖元與參數(shù)的綁定、參數(shù)的組織與管理技術(shù)。該部分的作用是使規(guī)劃設(shè)計(jì)人員能夠在熟悉的AutoCAD平臺下快速地為各城市圖元添加屬性,為后面的參數(shù)化三維建模提供條件。
參考文獻(xiàn):
[1] Müller P, Vereenooghe T, Wonka P, et al. Procedural 3D Reconstruction of Puuc Buildings in Xkipché[C]. EG, 2006.
[2] Müller P, Wonka P, Haegler S, et al. Procedural modeling of buildings[J]. ACM Trans. Graph. 2006, 25: 614-623.
[3] Parish Y I H, M U Ller P. Procedural modeling of cities[C]. New York, NY, USA: ACM, 2001.
[4]虞自奮. 屬性塊在工程圖形中的研究與應(yīng)用[J]. 天津冶金. 2008(3): 28-30.
[5]郭平. AutoCAD中的\"屬性塊\"及其應(yīng)用[J]. 電子設(shè)計(jì)工程. 2011, 19(6): 30-32.
[6]蘭度. AutoCAD可視化對話框開發(fā)工具OpenDCL使用簡介[J]. 城市勘測. 2009(6): 87-89, 92.
[7]胡長鵬,張巨儉,劉瑞璞. 基于VLISP和OpenDCL的西裝智能CAD系統(tǒng)的實(shí)現(xiàn)[J]. 天津工業(yè)大學(xué)學(xué)報(bào). 2010, 29(5): 33-36.
作者簡介:
吳寧(1984-),男,博士,研究方向?yàn)槌鞘幸?guī)劃新技術(shù)應(yīng)用研究;
陳秋曉**(1972-),通訊作者,男,博士、副教授。
*基金項(xiàng)目:
“國家國際科技合作計(jì)劃”項(xiàng)目(2010DFA92720) 及\"863\"項(xiàng)目(2009AA12Z121)資助