白曉明,張小波,陳軍勝,單萍
(成都市勘察測繪研究院,四川成都 610081)
建筑項目規劃核實是城市規劃部門進行城市規劃管理的重要內容,主要內容有容積率、建筑密度、綠地率、建筑間距及退界距離、建筑高度及層數、停車位及配套設施等方面。不同城市規劃部門要求測繪單位承擔規劃核實測繪的具體內容不盡相同,以成都市為例,規劃管理部門要求在測繪成果報告中須反映每個建筑基底面積、各類綠地面積、建筑間距及退界距離的實測值與設計值的差異情況等。采用手動統計方法來完成上述指標的核算內業工作量巨大,容易出現人為錯、漏。下面將系統闡述通過編制CAD輔助程序快速、自動核算上述控制指標的方法。
按成都市規劃管理部門要求,指標核算成果分為三類:建筑基底面積成果,綠化面積成果,間距、平面尺寸成果;其中“建筑基底面積”是指建筑物接觸地面的自然層建筑外墻或結構外圍水平投影面積。各類指標核算成果樣例如圖1所示。
建筑規劃核實外業測繪完畢后,內業CAD繪制地形圖,繪制基底輪廓線并將其放置在“基底范圍”圖層,基底范圍內標注建筑棟號、名稱、結構層數文字并放置相應圖層,綠化構面并放置相應綠化類別圖層,加載規劃控制線,加載坐標放線間距(尺寸)標注、設計外墻及軸線,對照放線標注位置標注實測間距(尺寸)。通過以上步驟形成“指標核算工作圖”(以下簡稱“工作圖”)。此工作圖即可作為指標核算成果的信息來源。

圖1 指標核算成果樣例
由于指標核算需要的信息來源于CAD工作圖,因此,指標核算程序可基于AutoCAD平臺,采用LISP語言及OpenDCL Studio界面編輯工具進行二次開發。
由于工作圖中的基底范圍線及建筑名稱、棟號、結構、層數文字均位于規定圖層(工作圖中基底范圍及注記樣例見圖2),故獲取基底指標信息程序的思路是通過基底范圍線獲得建筑名稱、棟號、結構、層數及面積信息。功能實現的主要代碼如下(LISP語言):

圖2 基底范圍及注記樣例

按照成都市規劃技術管理規定,綠地類別分為集中綠地、植草磚(綠茵)停車位、架空層綠地、地下室半地下室屋頂綠化、樹池、樹陣、游泳池、景觀廣場、籃球場、網球場、全民健身活動場所;其中植草磚(綠茵)停車位的折算率為20%,其余折算率均為100%。

圖3 綠化范圍樣例
由于工作圖中各類綠地范圍線均位于相應綠地類別圖層(工作圖中綠化樣例見圖3),故自動獲取綠化指標信息的核心方法是獲得每類綠地圖層中的全部綠地對象的面積。功能實現的主要LISP代碼如下:

按照規定的綠地類別,循環調用上述定義的ReadLdArea函數,即可獲得所有類別的綠地面積。
從圖1中“實測間距、平面尺寸成果表”可知,建筑的間距(尺寸)信息是按棟管理,“標注”分為“間距”、“平面尺寸”兩類,“實測標注”與“放線標注”一一對應,“標注位置”反映了標注對象兩端標注點處的實體內容。由于在不同項目“工作圖”中,“實測標注”、“放線標注”、“被標注的對象”、“基底范圍”四者之間平面關系各不相同,無法通過程序直接確定“標注”的棟歸屬、“實測標注”與“放線標注”對應關系、標注類別、標注位置等4項內容,故需要通過“標注對象屬性錄入”環節來確定上述4項內容,從而實現間距(平面尺寸)指標信息的自動核算,流程如圖4所示。

圖4 “標注對象”屬性錄入及其指標信息自動核算設計流程
(1)“棟”屬性錄入:人工先選定建筑基底范圍,獲得基底對象,再選定屬于該棟的“實測標注”,獲得“實測標注”對象選擇集,從而確定“實測標注”的棟歸屬。錄入棟屬性的主要LISP代碼如下:

(2)“標注類別”屬性錄入:先人工選定同類別的實測標注對象,再將指定的“標注類別”存入已選定的標注對象。錄入“標注類別”屬性的主要LISP代碼如下:


(3)“標注對應關系”屬性錄入:將“實測標注”對象句柄存入與其對應的“放線標注”對象,從而建立“放線標注”與“實測標注”的對應關系。
①自動獲得與指定的“實測標注”對象相對應的“放線標注”對象:根據實測標注對象確定放線標注對象的實質是在工作圖中搜索與實測標注最佳匹配的放線標注。如圖5,標注點1、2分別為標注對象“實測1”的第一、二尺寸界線的起點,標注點3、4為標注對象“設計1”的第一、二尺寸界線的起點,按照以往工程實踐經驗,標注點1、3距離及2、4距離一般較小(除非建筑未按規劃修建),若小于給定的限差d,則可確定標注對象“設計1”是“實測1”的最佳匹配。

圖5 標注點樣圖
實際應用:已知實測標注“實測1”的圖元名變量fxty,給定標注點距離限差d,從工作圖中搜索到第1個放線標注對象,其圖元名變量為scty,判斷放線標注對象1是否為“實測1”的最佳匹配的LISP代碼如下:

若放線標注對象1不是實測標注的最佳匹配,則搜索第i個放線標注,重復使用上述代碼對放線標注對象i進行匹配性判斷。
②手工選定與“實測標注”對象相對應的“放線標注”對象:當按照①方法無法確定與“實測標注”對應的“放線標注”時,則需要通過人工選擇方式確定對應的“放線標注”。
③將“實測標注”對象句柄存入與其對應的“放線標注”對象:給定“實測標注”對象圖元,通過①或②方式獲得對應的“放線標注”對象,向“放線標注”對象添加“實測標注”對象句柄的LISP代碼如下:

(4)“標注位置”屬性錄入:“標注位置”描述了“標注”是什么之間的尺寸,例如“標注對象”是建筑外墻與用地紅線間的標注,則其“標注位置”是“外墻—用地紅線”。“標注位置”屬性錄入就是將標注位置的描述信息存入“標注對象”。
工作圖中的設計外墻、設計軸線、實測外墻、用地紅線等均位于規定的圖層。如圖5,當“標注對象”所標注的對象實體經過其標注點時,可以通過程序提取實體所在圖層名從而自動獲得標注位置信息;若實體未經過標注點,則需要人工確定“標注位置”信息。
完成“標注對象屬性錄入”后,工作圖中的每一“實測標注”對象就儲有了“基底句柄”、“標注類別”、“標注位置”信息,每一“放線標注”對象就儲有了“實測標注句柄”、“標注位置”信息。棟間距(平面尺寸)指標自動核算就是將基底范圍、放線標注、實測標注三者屬性自動關聯,從而獲得圖1中“實測間距、平面尺寸成果表”所需要的信息。實現步驟如下:
①獲得工作圖中第i個基底范圍對象句柄,并按照前面3所述方法獲得建筑名稱、棟號;
②搜索儲有基底句柄i的所有“實測標注”對象;
③根據②步中獲得的每一“實測標注”對象,搜索儲有該“實測標注”對象句柄的“放線標注”對象;
④提取每一“實測標注”對象的標注類別、標注值、標注位置及其對應“放線標注”對象的標注值、標注位置信息。
重復①~④步,從而獲得所有建筑的間距(平面尺寸)信息。
由于篇幅有限,功能實現的程序代碼就不贅述了。

圖6 自動化核算指標程序截圖
在充分理解規劃部門實際需求及測量作業方法的前提下,通過面積信息自動匯總、尺寸信息自動檢查及匹配、成果報告的自動化輸出等手段,實現規劃控制指標的自動化核算,避免了手工核算的繁瑣及低效率的操作,同時縮短了測繪審核人員對核算成果的審核時間,極大提高了工作效率與質量。
[1]成都市規劃管理局.成都市規劃管理技術規定[R].2008.
[2]李學志,方戈亮,孫力紅.Visual LISP程序設計(AutoCAD 2006)[M].北京:清華大學出版社,2006.
[3]湯俊.AutoCAD 2000高級應用與Visual LISP開發寶典[M].北京:人民郵電出版社,2001.
[4]蘭度.AutoCAD可視化對話框開發工具OpenDCL使用簡介[J].城市勘測,2009(6).
[5]李長勛.AutoCAD ActiveX二次開發技術[M].長沙:國防工業出版社,2005(6).
[6]曹洪飛,張帆,盧擇臨.AutoCAD VBA&VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2008.