周春波,吳歡,魏偉,吳淑丹
(1.江西省水土保持科學(xué)研究院,江西南昌 330029; 2.江西環(huán)境工程職業(yè)學(xué)院,江西贛州 341000)
基于AutoCAD的地下管網(wǎng)圖形屬性一體化方案
周春波1?,吳歡2,魏偉1,吳淑丹1
(1.江西省水土保持科學(xué)研究院,江西南昌 330029; 2.江西環(huán)境工程職業(yè)學(xué)院,江西贛州 341000)
描述了AutoCAD的數(shù)據(jù)庫模型,在詳細(xì)闡述DWG/DXF制圖規(guī)范(MSD)和AutoCAD屬性數(shù)據(jù)存儲方式的基礎(chǔ)上,提出了通過嚴(yán)格按照MSD所定義的數(shù)據(jù)結(jié)構(gòu),對地下管網(wǎng)數(shù)據(jù)進(jìn)行有效地存儲與組織,來實現(xiàn)圖形與屬性的一體化。在此基礎(chǔ)上開發(fā)了基于AutoCAD的地下管網(wǎng)系統(tǒng),實現(xiàn)了數(shù)據(jù)編輯、數(shù)據(jù)查詢、數(shù)據(jù)統(tǒng)計、輔助分析和數(shù)據(jù)質(zhì)量檢查等基本功能,同時,該系統(tǒng)所生產(chǎn)的地下管線數(shù)據(jù)可以輕松地實現(xiàn)面向ArcGIS的數(shù)據(jù)轉(zhuǎn)換。
AutoCAD二次開發(fā);屬性數(shù)據(jù);圖形屬性一體化;GIS;數(shù)據(jù)轉(zhuǎn)換
地下管網(wǎng)信息是一種重要的城市基礎(chǔ)空間信息數(shù)據(jù),城市地下空間規(guī)劃、地下管網(wǎng)運行建設(shè)和維護(hù)管理、城市應(yīng)急管理、解決城市馬路拉鏈等問題都需要現(xiàn)勢、準(zhǔn)確和完整的地下管網(wǎng)信息[1]。當(dāng)前,隨著人們對地下管網(wǎng)信息重要性的認(rèn)識不斷提高,國內(nèi)地下管網(wǎng)信息化建設(shè)正如火如荼,全國各地紛紛組織開展了城市地下管網(wǎng)普查工作,積極推進(jìn)城市地下管網(wǎng)信息化建設(shè)[2],建立健全城市的地下管網(wǎng)數(shù)據(jù)庫。
AutoCAD軟件具有編輯功能強(qiáng)大、操作簡單以及可二次開發(fā)等優(yōu)點,近年來已被廣泛地應(yīng)用于地下管網(wǎng)普查和系統(tǒng)建設(shè)中,其主要被用于數(shù)據(jù)處理與數(shù)據(jù)建庫。也有人嘗試?yán)闷錁?gòu)建中小城市的地下管網(wǎng)系統(tǒng),這些系統(tǒng)有的將地下管網(wǎng)屬性數(shù)據(jù)以擴(kuò)展數(shù)據(jù)形式存儲[3];有的通過創(chuàng)建具有特定屬性和方法的自定義實體,以實現(xiàn)地下管網(wǎng)圖形與屬性數(shù)據(jù)融合與同步聯(lián)動的效果[4];有的利用外部數(shù)據(jù)庫(Access、SQLServer等)存儲地下管網(wǎng)屬性數(shù)據(jù)[5]。這些系統(tǒng)雖然大都實現(xiàn)了數(shù)據(jù)處理與智能成圖等基本功能,能夠滿足城市地下管網(wǎng)數(shù)據(jù)采集、更新與管理的一般需求,但在數(shù)據(jù)互操作以及海量數(shù)據(jù)的管理等方面仍存在不足。
因此,本文在探討AutoCAD環(huán)境下屬性數(shù)據(jù)的存儲方式的基礎(chǔ)上,提出一種行之有效的圖形屬性一體化方案,實現(xiàn)地下管網(wǎng)圖形與屬性的一體化。
DWG是AutoCAD的數(shù)據(jù)文件格式,其實質(zhì)是一個小型的數(shù)據(jù)庫。每個AutoCAD圖形文件都對應(yīng)著一個數(shù)據(jù)庫(Database)對象,這個數(shù)據(jù)庫對象包含了AutoCAD中的所有圖形對象和非圖形對象,數(shù)據(jù)庫中的每一個對象都用唯一的句柄(Handle)進(jìn)行標(biāo)識[6]。DWG數(shù)據(jù)庫包含圖形對象和非圖形對象。
圖形對象是指具有圖形表達(dá)的對象,如直線、多段線、圓、文本和圖塊等實體,均為AutoCAD自帶的實體類型。此外,還可以創(chuàng)建自定義實體對象,即從基類(AcD-bObject和AcDbEntity)中派生出具有特定意義和表現(xiàn)的實體對象,但這只能在ObjectARX開發(fā)環(huán)境下實現(xiàn)。
非圖形對象是指對象字典和符號表等不具有圖形表達(dá)的對象。符號表和對象字典是用于存儲數(shù)據(jù)庫對象的容器,符號表的類型是固定的,不能添加和修改符號表對象;對象字典是用于存儲非圖形對象的一般的容器對象,符號表只能存取固定符號表記錄對象,而對象字典可以存儲多種由數(shù)據(jù)庫對象基類(DbObject)派生的對象,字典中也可以存放字典對象,常保存于對象字典中的對象有數(shù)據(jù)表和擴(kuò)展記錄。字典又分為命名對象字典(Named Object Dictionary,NOD)和對象擴(kuò)展字典(Extension Dictionary)兩種,命名對象字典用于保存整個圖形文件的相關(guān)信息,對象擴(kuò)展字典則保存對象的信息數(shù)據(jù)。
3.1 DWG/DXF制圖規(guī)范(MSD)
DWG/DXF制圖規(guī)范(Mapping Specification for DWG/DXF,MSD)是Esri公司在2008年制定的用于對DWG或DXF文件的信息進(jìn)行編碼,使其具備非圖形屬性的GIS要素類和ArcGIS軟件中所定義的地理空間坐標(biāo)系統(tǒng)的一項數(shù)據(jù)規(guī)范。該規(guī)范利用標(biāo)準(zhǔn)的DWG/DXF數(shù)據(jù)結(jié)構(gòu)來定義模式、存儲數(shù)據(jù),并定義一個地理空間坐標(biāo)系統(tǒng)。DWG要素類與ArcGIS要素類的映射關(guān)系如圖1所示,通過該圖可以了解MSD要素類在DWG數(shù)據(jù)庫中的組織方法和各關(guān)鍵部位之間的相互關(guān)系。
圖1 MSD要素類映射關(guān)系(引自MSD技術(shù)白皮書)
MSD定義的要素類型包括MSD要素類結(jié)構(gòu)、要素類型、要素查詢、字段名及其默認(rèn)值4種類型。MSD可定義的對象類型包括坐標(biāo)系統(tǒng)、要素類集合、要素類、要素類型、要素屬性值、字段和實體屬性值等。依據(jù)MSD制圖規(guī)范定義的MSD要素類可被ArcGIS識別為GIS要素類。
3.2 AutoCAD屬性數(shù)據(jù)的存儲方式
AutoCAD本身提供了一些存儲非圖形數(shù)據(jù)的方法,如塊屬性數(shù)據(jù)和實體擴(kuò)展數(shù)據(jù)等。此外,還可以通過鏈接外部關(guān)系型數(shù)據(jù)庫的方式來存儲實體的屬性數(shù)據(jù)。下面簡要介紹幾種常見的方法。
(1)直接應(yīng)用特性存儲
AutoCAD中的每個圖元都有相應(yīng)的操作方法和特性。直接應(yīng)用特性存儲屬性數(shù)據(jù),就是有效地利用圖元的空置特性存放用戶自定義屬性數(shù)據(jù)。例如,塊參照的“Z比例”特性和二維多段線的“厚度”特性等,這些特性在二維繪圖系統(tǒng)中幾乎不會被使用,因此,可以利用這兩個特性來存儲屬性數(shù)據(jù),如可將要素實體編碼存放在塊參照的“Z比例”特性中,系統(tǒng)便可以通過該特性數(shù)據(jù)來識別該圖塊的要素類型。這種方式巧妙地使用了AutoCAD的特性,其缺點是可存儲的屬性數(shù)據(jù)少,不適宜較多屬性數(shù)據(jù)項的存儲。
(2)塊屬性數(shù)據(jù)
塊屬性數(shù)據(jù)是在插入塊時輸入的屬性數(shù)據(jù)。為了能在插入塊時輸入該塊的屬性數(shù)據(jù),用戶必須在定義塊時定義屬性的樣式。但是,塊屬性數(shù)據(jù)只有塊圖元才可定義,其他圖元則不能使用,塊屬性的使用范圍有較大的局限性。雖然也可以為其他圖元單獨定義一個屬性塊,以存儲其屬性數(shù)據(jù)內(nèi)容,然則這種方式并未將圖元對象與屬性塊關(guān)聯(lián),極容易因誤操作導(dǎo)致屬性數(shù)據(jù)丟失。
(3)鏈接外部數(shù)據(jù)庫
AutoCAD可以將其圖形對象與外部數(shù)據(jù)庫表中的數(shù)據(jù)相鏈接[7,8]。其原理是,通過使用ODBC(開放式數(shù)據(jù)庫連接)和OLE DB來訪問外部數(shù)據(jù)庫,如Microsoft Access、Excel、SQL Server和Oracle等,將數(shù)據(jù)庫的表記錄鏈接到圖形對象,以實現(xiàn)圖形對象與數(shù)據(jù)庫對象之間的通信,即可以獲取圖形對象存儲在數(shù)據(jù)庫中的屬性信息。通過將句柄與其他屬性數(shù)據(jù)組成的關(guān)系表同時存入數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)庫與DWG圖形的雙向通信,既可從圖形對象查找其屬性數(shù)據(jù),亦可根據(jù)數(shù)據(jù)庫表記錄查找對應(yīng)的圖形實體。
(4)自定義實體對象
自定義實體是ObjectARX開發(fā)中的一種特有的數(shù)據(jù)類型,通過繼承AcDbObject和AcDbEntity類,可以派生具有特定的屬性與操作方法的實體對象。自定義實體類型具有較好的封裝性,并具有較高的保密性,其存儲的屬性數(shù)據(jù)內(nèi)容難以在程序之外被查看。
(5)擴(kuò)展數(shù)據(jù)
AutoCAD的擴(kuò)展數(shù)據(jù)包括實體擴(kuò)展數(shù)據(jù)和對象擴(kuò)展字典。實體擴(kuò)展數(shù)據(jù)能夠存儲的數(shù)據(jù)量有限,每個實體附加的實體擴(kuò)展數(shù)據(jù)不能超過16K,它可以存儲多種數(shù)據(jù)類型的信息,包括字符串、點、實數(shù)、整數(shù)和實體句柄等。而對象擴(kuò)展字典則沒有數(shù)據(jù)大小的限制,并且可以定義比擴(kuò)展數(shù)據(jù)更多的屬性數(shù)據(jù)結(jié)構(gòu)。實體擴(kuò)展數(shù)據(jù)使用頗為廣泛,例如,CASS測圖軟件使用了實體擴(kuò)展數(shù)據(jù)存儲地形要素的屬性數(shù)據(jù),AutoCAD軟件本身的開發(fā)亦使用了實體擴(kuò)展數(shù)據(jù)。
表1列出了上述5種屬性存儲方式的可存儲數(shù)據(jù)類型、數(shù)據(jù)大小、數(shù)據(jù)安全性以及使用范圍等5個方面的對比。
AutoCAD屬性數(shù)據(jù)存儲方式對比 表1
上述5種方法中,使用最多的當(dāng)屬擴(kuò)展數(shù)據(jù)和鏈接外部數(shù)據(jù)庫方式,這兩種存儲方式各有優(yōu)缺點。
數(shù)據(jù)庫方式的優(yōu)點是可支持存儲的數(shù)據(jù)類型豐富,數(shù)據(jù)查詢檢索快,并且支持“SQL”查詢;其缺點是圖形與屬性的關(guān)聯(lián)過程比較復(fù)雜,在執(zhí)行刪除等操作時,容易產(chǎn)生圖形與屬性之間的不一致性,另外,當(dāng)外部屬性數(shù)據(jù)庫內(nèi)存放的數(shù)據(jù)量過大時,圖形與屬性數(shù)據(jù)的聯(lián)動效率便會降低,影響使用的效果,導(dǎo)致的結(jié)果是用戶往往并不太愿意去使用這個數(shù)據(jù)庫。
擴(kuò)展數(shù)據(jù)的優(yōu)點是與圖形與屬性結(jié)合緊密,無須對其進(jìn)行關(guān)聯(lián),有利于圖形屬性的一體化操作,維護(hù)數(shù)據(jù)的邏輯一致性,并且這種方式與MSD制圖規(guī)范內(nèi)對屬性數(shù)據(jù)的定義規(guī)則相符合,許多測圖軟件采用了這種方式來組織GIS數(shù)據(jù);擴(kuò)展數(shù)據(jù)的缺點是對儲存在DWG文件中的屬性數(shù)據(jù)進(jìn)行查找、編輯、統(tǒng)計、分類時,其效率較低[40]。
3.3 地下管網(wǎng)圖形屬性一體化
所謂圖形屬性一體化,就是建立圖形數(shù)據(jù)與屬性數(shù)據(jù)之間的強(qiáng)聯(lián)系,一旦其中任何一方發(fā)生改變,另一方也會隨之變化。在AutoCAD中實現(xiàn)地下管網(wǎng)圖形屬性一體化,可通過將屬性數(shù)據(jù)附著于圖形實體的方式實現(xiàn),使用實體擴(kuò)展數(shù)據(jù)或?qū)ο髷U(kuò)展字典,將管網(wǎng)要素的屬性數(shù)據(jù)依附于管網(wǎng)圖形實體上,使圖形與屬性之間形成一種緊耦合關(guān)系。這對于圖形與屬性的一體化操作十分有益,例如在圖形數(shù)據(jù)的裁剪輸出時,若圖形和屬性數(shù)據(jù)分開存放,不僅要知道圖形數(shù)據(jù)的范圍,還需要明確屬性數(shù)據(jù)的范圍,而圖形屬性一體化存儲則省去了這個麻煩,所見即所得。本文所采取的方案是通過嚴(yán)格按照DWG/DXF制圖規(guī)范(MSD)所定義的數(shù)據(jù)結(jié)構(gòu),對地下管網(wǎng)數(shù)據(jù)進(jìn)行有效地存儲與組織,來實現(xiàn)圖形與屬性的一體化。
在數(shù)據(jù)的存儲方面,將地下管網(wǎng)系統(tǒng)中的通用屬性數(shù)據(jù)如要素實體編碼、要素連接關(guān)系等存儲在實體擴(kuò)展數(shù)據(jù)中,而地下管網(wǎng)特有屬性數(shù)據(jù)內(nèi)容,如管線類型、材質(zhì)、尺寸等,則存放在實體的擴(kuò)展字典中。
在數(shù)據(jù)的組織方面,為每一類管網(wǎng)要素賦予一個唯一的要素實體編碼,這樣就生成了一個唯一的標(biāo)識,通過建立要素實體編碼與要素類的對照關(guān)系,便可以將地下管網(wǎng)DWG圖形實體組織為類似于GIS要素類的要素實體。
具體方案如圖2所示。
圖2 圖形屬性一體化方案
3.4 基于AutoCAD的地下管網(wǎng)系統(tǒng)
本文開發(fā)的地下管網(wǎng)系統(tǒng)采用AutoCAD 2012為基礎(chǔ)開發(fā)平臺,在數(shù)據(jù)層面,依據(jù)行業(yè)技術(shù)規(guī)范與數(shù)據(jù)標(biāo)準(zhǔn),建立地下管網(wǎng)數(shù)據(jù)存儲結(jié)構(gòu),將地下管網(wǎng)的圖形和屬性數(shù)據(jù)以DWG圖形進(jìn)行管理,實現(xiàn)了圖幅管理和文件目錄管理功能;在應(yīng)用層面,結(jié)合多方面的需求,以實際生產(chǎn)應(yīng)用為目標(biāo),實現(xiàn)了數(shù)據(jù)編輯、數(shù)據(jù)查詢、數(shù)據(jù)統(tǒng)計、輔助分析、數(shù)據(jù)質(zhì)量檢查等多種功能。
圖3 基于AutoCAD的地下管網(wǎng)系統(tǒng)主界面
3.5 面向GIS的數(shù)據(jù)轉(zhuǎn)換
單個的DWG文件難以高效地管理城市的地下管網(wǎng)數(shù)據(jù),采用空間數(shù)據(jù)庫管理海量管網(wǎng)數(shù)據(jù)是行之有效的解決辦法,因此,地下管網(wǎng)數(shù)據(jù)面向GIS的數(shù)據(jù)轉(zhuǎn)換(入庫)功能顯得尤為重要。一般常用的DWG數(shù)據(jù)入庫方法有:基于中間文件的讀取轉(zhuǎn)換、直接轉(zhuǎn)換法和基于FME的語義轉(zhuǎn)換法[10~12]。
本文按照MSD標(biāo)準(zhǔn)制定的數(shù)據(jù)結(jié)構(gòu),具有面向ArcGIS的特性,能自動被ArcGIS識別為只讀要素類。使用ArcGIS提供的數(shù)據(jù)轉(zhuǎn)換工具,可以很方便地將DWG中的管網(wǎng)要素類轉(zhuǎn)換至地理空間數(shù)據(jù)庫。Arc-GIS提供了3種工具來實現(xiàn)CAD要素類向地理數(shù)據(jù)的轉(zhuǎn)換,分別是“CAD至地理數(shù)據(jù)庫(Geodatabase)”工具、“要素類至要素類”工具和“數(shù)據(jù)合并”工具。
以本系統(tǒng)創(chuàng)建的某城市地下管網(wǎng)DWG數(shù)據(jù)為例,利用“CAD至地理數(shù)據(jù)庫(Geodatabase)”工具,將CAD數(shù)據(jù)集中的12個自定義管網(wǎng)要素類轉(zhuǎn)換成文件地理數(shù)據(jù)庫(gdb格式),轉(zhuǎn)換前后的要素類如圖4所示。檢查轉(zhuǎn)換后GIS要素類的要素數(shù)量,與DWG圖形中數(shù)量完全一致,要素類屬性數(shù)據(jù)結(jié)構(gòu)齊全,說明DWG圖形中的管網(wǎng)要素已全部成功轉(zhuǎn)換至地理數(shù)據(jù)庫中,轉(zhuǎn)換過程無數(shù)據(jù)損失。將數(shù)據(jù)庫中的管網(wǎng)要素類加載到ArcMap中(如圖5所示),可以查看每個要素實體的屬性數(shù)據(jù),還可以進(jìn)行符號化、數(shù)據(jù)查詢統(tǒng)計等其他操作,整個轉(zhuǎn)換過程輕松、簡便,無需人工干預(yù)。
圖4 轉(zhuǎn)換前后數(shù)據(jù)內(nèi)容
圖5 在ArcMap中加載數(shù)據(jù)庫中的管網(wǎng)數(shù)據(jù)
當(dāng)然,該轉(zhuǎn)換方法具有一定的局限性,由于其基于Esri的MSD規(guī)范實現(xiàn),所以只能完成DWG管網(wǎng)數(shù)據(jù)向ArcGIS空間數(shù)據(jù)庫的快速轉(zhuǎn)換,但仍然為地下管網(wǎng)數(shù)據(jù)的快速入庫提供了一種簡單易行的方法。
基于AutoCAD平臺開發(fā)地下管網(wǎng)系統(tǒng),具有開發(fā)成本低,數(shù)據(jù)使用率高等優(yōu)點。本文提出的地下管網(wǎng)系統(tǒng)圖形屬性一體化方案具有較好的操作性,能夠解決地下管網(wǎng)信息化建設(shè)過程中存在的一些問題,具有一定的應(yīng)用價值。
[1] 江貽芳,顧旭東,孫維志.城市地下管線信息管理系統(tǒng)建設(shè)若干問題探討[J].工程勘察,2006(9):58~61.
[2] 李學(xué)軍.城市地下管線探測與管理技術(shù)的發(fā)展及應(yīng)用[J].城市勘測,2010(4):6~11.
[3] 楊小兵.利用ObjectARX開發(fā)小型地下管線信息管理系統(tǒng)[J].城市勘測,2010(4):74~76.
[4] 王乾,李剛,趙海民.ObjectARX自定義實體的地下管線前端采集系統(tǒng)開發(fā)[J].測繪學(xué),2010(5):214~216.
[5] 王哲.基于CAD二次開發(fā)技術(shù)的晉城巿供水管網(wǎng)管理系統(tǒng)的硏究[D].太原:太原理工大學(xué),2012.
[6] 李長勛.AutoCAD ObjectARX程序開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2005.
[7] 馬榮華,黃杏元.GIS認(rèn)知與數(shù)據(jù)組織研究初步[J].武漢大學(xué)學(xué)報·信息科學(xué)版,2005(6):539~540.
[8] 張保鋼.海量城市空間數(shù)據(jù)的文件管理方法及應(yīng)用[J].測繪通報,2002(9):48~50.
[9] 楊永崇等.基于空間信息網(wǎng)格的數(shù)字地圖分幅(塊)方法[J].測繪科學(xué),2010(2):201~203.
[10] 張保鋼,羅曉燕.超特大城市地形圖數(shù)據(jù)建庫分區(qū)設(shè)計[J].測繪通報,2007(8):8~9.
[11] 劉德兒,王亮.基于地理要素編碼的數(shù)字地形圖入庫方法及應(yīng)用[J].測繪標(biāo)準(zhǔn)化,2009(2):8~12.
[12] GB/T 13923-2006.基礎(chǔ)地理信息要素分類與代碼[S].
Graphic Attributes Integration Scheme of Underground Pipe Network Based on AutoCAD
Zhou Chunbo1,Wu Huan2,Wei Wei1,Wu Shudan1
(1.Jiangxi Provincial Institute of Soil and Water conservation,Nanchang 330029,China; 2.Jiangxi Environmental Engineering Vocational College,Ganzhou 341000,China)
This paper describes the AutoCAD database model,based on elaborate Mapping Specification for DWG/ DXF(MSD)and AutoCAD attribute data stored on the proposed MSD through strict accordance with the defined data structures,underground pipe network data effective storage and organization,to achieve the integration of graphics and attributes.On this basis,the development of the underground pipe network system based on AutoCAD,to achieve a data editing,data query,statistics,assisted analysis and data quality checks and other basic functions,while the system is produced by underground pipeline data can be easily achieved for ArcGIS data conversion.
secondary development of AutoCAD;attribute data;integration of graphic and attribute;GIS;data conversion
1672-8262(2014)06-87-05
P208.2
B
2014—05—20
周春波(1989—),男,助理工程師,主要從事水土保持監(jiān)測工作。
江西省水利科技項目(KT201109)