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