羅國夫 鄭禮飛 蔣霖
[摘要]根據(jù)國標(biāo)《CB/T 17986.1 - 2000房產(chǎn)測量規(guī)范第1單元:房產(chǎn)測量規(guī)定》和《GB/T 17986.2 -2000房產(chǎn)測量規(guī)范第2單元:房產(chǎn)圖圖式》,利用AutoCAD圖元擴展實體數(shù)據(jù),使用Visual LISP語言,在Au-toCAD平臺上開發(fā)一套輕量化的房產(chǎn)測繪系統(tǒng),用于房產(chǎn)測繪生產(chǎn)和高校房產(chǎn)測繪課程教學(xué)。
[關(guān)鍵詞]房產(chǎn)測繪系統(tǒng);AutoCAD擴展實體數(shù)據(jù);Visual LISP
文章編號:2095-4085(2019)06-0012-03
隨著城市建設(shè)和房產(chǎn)交易在我國的發(fā)展,為房產(chǎn)確權(quán),發(fā)證提供服務(wù)的房產(chǎn)測繪變得尤為重要。目前市場的主流的房產(chǎn)測繪系統(tǒng)不論是在AutoCAD上進(jìn)行開發(fā),還是在地理信息系統(tǒng)軟件(Geographic Infor-mation System,簡稱GIS)上進(jìn)行開發(fā),普遍都使用了第三方數(shù)據(jù)庫或是GIS核心數(shù)據(jù)庫來管理房產(chǎn)測繪屬性數(shù)據(jù)。然而,房產(chǎn)測繪涉及的屬性數(shù)據(jù),數(shù)據(jù)數(shù)量相對比較少,數(shù)據(jù)量也比較小,關(guān)系簡單。為幾兆甚至幾百KB的數(shù)據(jù)而使用數(shù)據(jù)庫增加了軟件的體量,也增加了用戶使用成本,還造成用戶數(shù)據(jù)文件的繁雜。本系統(tǒng)嘗試使用AutoCAD圖元擴展實體數(shù)據(jù)代替數(shù)據(jù)庫來存儲房產(chǎn)測繪的屬性數(shù)據(jù)。
AutoCAD作為國際上最流行的CAD繪圖軟件在國內(nèi)的應(yīng)用廣泛。自11.0版本以后,Autodesk公司在AutoCAD引入了擴展實體數(shù)據(jù)的概念,為廣大用戶提供了更強的二次開發(fā)功能。借助擴展實體數(shù)據(jù),用戶可以很方便地在圖形實體中按不同的需求分門別類地存取不同的非圖形數(shù)據(jù),如房產(chǎn)測繪中的權(quán)屬人信息,面積計算方式,面積分?jǐn)傂畔?,設(shè)計人員關(guān)心產(chǎn)品的材料,重量,而財務(wù)人員則關(guān)心產(chǎn)品的成本,價格等。眾所周知,利用”塊”屬性可以存取非圖形數(shù)據(jù),而且這也是在AutoCAD 11.0版本以前用戶能夠在圖形中存取非圖形數(shù)據(jù)的唯一方法,而每個需要存取非圖形數(shù)據(jù)的圖元都轉(zhuǎn)換成塊不僅不方便,而且也不好現(xiàn)實,現(xiàn)在通過擴展實體數(shù)據(jù),非圖形數(shù)據(jù)的存取都可以依附在每一個實體數(shù)據(jù)之后,變得更加靈活,方便。帶有屬性的圖形,其文件無需有對應(yīng)第三方數(shù)據(jù)庫屬性文件即可存儲為一個標(biāo)準(zhǔn)的AutoCADDWG格式文件,數(shù)據(jù)存儲更為直觀,使用更為簡單。
1系統(tǒng)分析
房產(chǎn)測繪系統(tǒng)所針對的主要用戶是房地產(chǎn)測繪單位,其最終目標(biāo)是輔助測繪人員快速繪制出房屋的分層分戶平面圖,并以最新的國家標(biāo)準(zhǔn)為基礎(chǔ)計算出所測房屋的套內(nèi)面積和公共分?jǐn)偯娣e,統(tǒng)計各類信息,生成統(tǒng)計表格及自動配置圖形,以此提高圖形繪制和面積計算,分?jǐn)偟乃俣?,改善配發(fā)房產(chǎn)證的工作效率和工作質(zhì)量。要實現(xiàn)上述目標(biāo),系統(tǒng)至少需要實現(xiàn)以下6個方面的基本功能。
(1)繪圖功能 能便利的按規(guī)范繪制房產(chǎn)分層分戶圖。房屋丈量,繪圖時難免產(chǎn)生錯,漏等情況,系統(tǒng)還需便于修改繪制錯誤的部分。
(2)面積量算功能 面積量算是房產(chǎn)測繪的核心功能,確定每一功能區(qū)域的面積大小是最基本的功能。
(3)屬性錄入功能 實際房屋的每一區(qū)域都有特定的功能,或是屬于公共區(qū)域,或是屬于某一權(quán)屬單元,某些區(qū)域計算全部面積,某些區(qū)域只計算一半的面積。繪制房產(chǎn)圖時還需指定每一區(qū)域的功能屬性,哪個區(qū)域?qū)儆谀囊粰?quán)屬單元,哪一戶,公共區(qū)域分配到哪些區(qū)域等情況均需一一指定。
(4)分?jǐn)傆嬎愎δ?按規(guī)范或協(xié)議的規(guī)定進(jìn)行公共面積的分?jǐn)傆嬎愎ぷ鳌?/p>
(5)報表輸出功能能根據(jù)規(guī)范或?qū)嶋H需要輸出各種成果報表。
(6)出圖功能 按規(guī)范規(guī)定和實際需要輸出分層,分戶等圖件。
2系統(tǒng)的設(shè)計實現(xiàn)
2.1系統(tǒng)作業(yè)流程設(shè)計
規(guī)范的系統(tǒng)作業(yè)流程是搭建系統(tǒng)框架的前提,通過對房產(chǎn)測繪單位實際工作過程的分析,設(shè)計出房產(chǎn)測繪系統(tǒng)的主要流程,包括環(huán)境定制,房產(chǎn)繪圖,屬性錄入,面積分?jǐn)?,報表輸出,分戶圖輸出等具體過程。
2.2 系統(tǒng)模塊劃分與功能設(shè)計
2.2.1定義系統(tǒng)環(huán)境模塊
主要定義繪圖中用到的圖層,顏色,線型,字型,字高(根據(jù)比例尺)等。繪制房產(chǎn)圖主要是根據(jù)《GBT 17986.1-2000房產(chǎn)測量規(guī)范第1單元:房產(chǎn)測量規(guī)定》和《GBT 17986.2- 2000房產(chǎn)測量規(guī)范第2單元:房產(chǎn)圖圖式》規(guī)范中符號形狀,符號大小,線型粗細(xì)虛實等規(guī)定來繪制的,這些符號等繪圖規(guī)定事前根據(jù)規(guī)范進(jìn)行定義,簡化繪圖圖形屬性的設(shè)置和便于統(tǒng)一繪制。
2.2.2屬性錄入模塊
將分層圖中每一計算區(qū)域統(tǒng)一編號,定義為圖元號。將該區(qū)域面積系數(shù),圖元性質(zhì),共同層數(shù),所在層次,分組標(biāo)識,單元標(biāo)識(權(quán)屬信息)等信息錄入到該圖元號擴展實體數(shù)據(jù)。圖元號承載該面積區(qū)域的所有信息數(shù)據(jù),包括其對應(yīng)的計算面積區(qū)域的對應(yīng)計算面積的線。
2.2.3面積分?jǐn)偰K
將每一相同性質(zhì)區(qū)域的所有圖元進(jìn)行分組,并賦予組名。根據(jù)規(guī)范,指定共用組分?jǐn)偟降姆秶缬卸嗉壏謹(jǐn)?,系統(tǒng)將自動進(jìn)行多級分?jǐn)傆嬎恪?/p>
2.2.4報袁輸出模塊
按規(guī)范要求和實際需要輸出各種報表,圖元面積表(每個區(qū)域的實際面積表),分組面積表(功能性質(zhì)相同的每個區(qū)域統(tǒng)計為一個組)。共有建筑面積分?jǐn)傉J(rèn)定表(認(rèn)定每個公共區(qū)域的分?jǐn)偳闆r),分?jǐn)傁禂?shù)表,建筑面積結(jié)果表等。
2.2.5分戶圖輸出模塊
主要是實現(xiàn)根據(jù)分層圖和分?jǐn)傆嬎愫蠼ㄖ娣e結(jié)果表,按規(guī)范要求自動制作每一戶的分戶圖。以便打印輸出圖件。
3系統(tǒng)實現(xiàn)
3.1開發(fā)工具
LISP是ListProcessor(表處理程序)的縮寫,主要用于人工智能(AI)領(lǐng)域。AutoLISP是人工智能語言CommonLISP的簡化版本。Autodesk公司在Auto-CAD2.1版引入AutoCAD作為應(yīng)用程序編程接口(APl),用于擴展和自定義AutoCAD功能。借助Au-toLISP,用戶可以用適合編寫圖形應(yīng)用程序的強大的高級語言來編寫宏程序和函數(shù),并開發(fā)各種軟件包。AutoLISP易于使用,并且非常靈活,多年來一直是自定義AutoCAD的標(biāo)準(zhǔn)。從AutoCADR14開始,VisualLISP被引入到AutoCAD中,它增強并擴展了Au-toLISP語言,可以通過MicrosoftActiveXAutomation接口與對象交互,并擴展了AutoLISP響應(yīng)事件的能力。作為開發(fā)工具,Visual LISP提供了一個完整的集成開發(fā)環(huán)境(IDE),包括編譯器,調(diào)試器和其他工具。本系統(tǒng)使用VisualLISP開發(fā)。
3.2定義擴展實體數(shù)據(jù)
AutoCAD擴展實體數(shù)據(jù)是在常規(guī)的圖形數(shù)據(jù)基礎(chǔ)上增加的按一系列分類代碼組合而成的數(shù)據(jù)塊,它與常規(guī)實體數(shù)據(jù)一起構(gòu)成內(nèi)容更加廣泛的實體數(shù)據(jù)。由于不同的應(yīng)用場合要求存取不同的數(shù)據(jù),因此擴展實體數(shù)據(jù)按應(yīng)用類型分組,形式如下。
(-3(“AppName” (代碼.數(shù)據(jù)) (…))(“AppName”(代碣.數(shù)據(jù))(…))(…)))
其中,-3表示擴展數(shù)據(jù)開始,AppName是最大長度為31字節(jié)的字符串,為已經(jīng)登記的應(yīng)用類型名,部分代碼及對應(yīng)的數(shù)據(jù)類型見下表。
((-1.<圖元名:7ef76f60>)(0.“TEXT”)(330.<圖元名:7ef5ecc0>)(5.“D8E4”)(100.“AcDbEntitv”)(67.0)(410.“Model”)(8.“圖元號”)(62.3)(6.“Continuous”)(100.“AcDb-Text”)(10 99945.9 27120.7 0.0) (40.0.78)(1."170")(50.0.0)(41.0.5)(51.0.0)(7. “hztxt”) (71.O) (72.1) ( 11 99946.327120.7 0.O)(210 0.0 0.0 1.0)(100.“AcD-bText”)(73.0)(-3(“對應(yīng)面積線”(1005.“D8E2”))(“性質(zhì)”(1000.“主套內(nèi)”))(“面積系數(shù)”(1040.1.0)) (“相同層數(shù)”(1070. 1》(“面積注記”(1005.“D8E5”))(“層次”(1000.“9”))(“樓房單元”(1000.“1單元”))("分組標(biāo)識”(1000.“1單元住宅套內(nèi)”))(“單元標(biāo)識”(1000.“1單元九層902”)) (“戶型” (1000.“23”))))
將房產(chǎn)測繪中涉及到的屬性數(shù)據(jù)信息,按數(shù)據(jù)庫優(yōu)化方式優(yōu)化設(shè)計后,用AutoCAD擴展實體數(shù)據(jù)的應(yīng)用類型名AppName來表示其數(shù)據(jù)名稱列表,用(代碼.數(shù)據(jù))來表示數(shù)據(jù)。需要注意的是AutoCAD擴展數(shù)據(jù)規(guī)定,不同的代碼表示的數(shù)據(jù),其數(shù)據(jù)類型是不同的,如1000定義字符串類型,1040定義實數(shù)類型等。轉(zhuǎn)換關(guān)系(參見圖1)。
3.3 系統(tǒng)模塊開發(fā)及關(guān)鍵算法實現(xiàn)
按功能模塊先定義每一模塊與各模塊之間的數(shù)據(jù)接口,然后獨立開發(fā)每一模塊功能。根據(jù)AutoCAD圖元及其圖元擴展數(shù)據(jù)的數(shù)據(jù)離散特點,將面積計算的圖元線,圖元編號注記,面積注記等與該圖元號有關(guān)的各cad圖元的的句柄都記錄在圖元號的擴展實體數(shù)據(jù)里。這就將各面積計算線,各圖面注記數(shù)據(jù)等相關(guān)信息進(jìn)行了關(guān)聯(lián)。方便進(jìn)行編輯更新等操作時關(guān)聯(lián)數(shù)據(jù)統(tǒng)一更新。
共有建筑面積的分?jǐn)偹惴ā7课莨灿忻娣e逐區(qū)域,逐級分?jǐn)傆嬎?。將每一公用區(qū)域面積分?jǐn)偟礁鲬?yīng)分?jǐn)偟降墓δ軈^(qū),其實質(zhì)是將該公用組分?jǐn)偟竭@個功能區(qū)的所有區(qū)域(包括公用區(qū)域),每個區(qū)域分到的數(shù)據(jù)是該公攤區(qū)域的系數(shù)乘以各功能區(qū)域面積。多級分?jǐn)倳r,將功能區(qū)域內(nèi)公共區(qū)域分到的上一級的公共區(qū)域面積再分到功能區(qū)域內(nèi)公共區(qū)域應(yīng)分給的區(qū)域。依次類推,直到公共區(qū)域分給的區(qū)域內(nèi)沒有公共區(qū)域為止。由于每個區(qū)域分到的數(shù)據(jù)是該公攤區(qū)域的系數(shù)乘以各功能區(qū)域面積,不論是公共區(qū)域自身面積還是該公共區(qū)域分到上一級公共區(qū)域面積再往下分?jǐn)偟拿娣e。從各套內(nèi)區(qū)域的角度看,都是各公共區(qū)域的分?jǐn)傁禂?shù)乘以套內(nèi)區(qū)域面積后的累加。因此,在算法中,不再記錄各套內(nèi)區(qū)域分?jǐn)偟降墓矃^(qū)域面積,而是記錄該套內(nèi)區(qū)域每一級的分?jǐn)傁禂?shù),最后將分?jǐn)傁禂?shù)累加后再乘以套內(nèi)區(qū)域面積,即可得到該套內(nèi)區(qū)域應(yīng)分?jǐn)偟降墓矃^(qū)域總面積。
3.4系統(tǒng)應(yīng)用
基于AutoCAD圖元擴展實體數(shù)據(jù)的房產(chǎn)測繪系統(tǒng)運行在WINDOWS系統(tǒng),AutoCAD2006-2016版本平臺均可運行。目前已在廣西有色勘察設(shè)計研究院,南寧天脈測繪有限責(zé)任公司,廣西南寧佳球測繪有限責(zé)任公司等生產(chǎn)單位房產(chǎn)測繪項目生產(chǎn)全面應(yīng)用。在廣西建設(shè)職業(yè)技術(shù)學(xué)院,作為測量專業(yè)房產(chǎn)測繪課程教學(xué)軟件。
4結(jié)語
基于AutoCAD圖元擴展實體數(shù)據(jù)開發(fā)的房產(chǎn)測繪系統(tǒng)構(gòu)成簡單,只需一個編譯后的系統(tǒng)文件和菜單文件即可掛載在AutoCAD從2006-2016任一版本上運行。數(shù)據(jù)文件只需常規(guī)的AutoCAD DWG文件,無需鏈接額外的數(shù)據(jù)等文件。房產(chǎn)測繪分?jǐn)傆嬎?,分層分戶圖出圖操作簡單,極大的提高房產(chǎn)測繪的生產(chǎn)效率和成果質(zhì)量。
參考文獻(xiàn):
[1]陳伯雄,馮偉.Visual LISP for AutoCAD 2000程序設(shè)計——從學(xué)會到用好[M].北京:機械工業(yè)出版社,2000.
[2]郭朝勇.AutoCAD R14二次開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,1999.
[3]程效軍.測量工程LISP程序設(shè)計[M].上海:同濟大學(xué)出版社,2012.
[4]GBT 17986,1-2000房產(chǎn)測量規(guī)范第1單元:房產(chǎn)測量規(guī)定[S].
[5]GBT17986,2-2000房產(chǎn)測量規(guī)范第2單元:房產(chǎn)圖圖式[s].
[6]AUTODESK Sia Pte Ltd.Autodesk地理信息系統(tǒng)解決方案[M].北京:電子工業(yè)出版社,2011.
[7]楊平,裴亞波,倫小偉,基于GIS技術(shù)的房產(chǎn)測繪系統(tǒng)設(shè)計與實現(xiàn)[J].測繪通報,2005,(05):56-58.
[8]廖元焰,田傳浩,郭宗河,等.房地產(chǎn)測量(第3版,普通高等教育測繪類規(guī)劃教材)[M].北京:中國計量出版社,2016.
[9]洪波,地籍與房產(chǎn)測量[M].北京:測繪出版社,2010.
[10]李芹芳,張艷.地籍與房產(chǎn)測量[D].武漢:武漢大學(xué),2017.
[11]肖海蓉,任民宏,數(shù)據(jù)庫原理與應(yīng)用[M].北京:清華大學(xué)出版社,2016.
[12]鄭阿奇,劉啟芬,顧韻華.SQL Sever教程(第3版)[M].北京:清華大學(xué)出版社,2015.
[13]周明,董仁揚.Visual LISP程序設(shè)計及其應(yīng)用教程[M].上海:上??茖W(xué)技術(shù)文獻(xiàn)出版社,2008.
[14]謝書良程序設(shè)計基礎(chǔ)[M].北京:清華大學(xué)出版社,2010.
[15]呂永江,房產(chǎn)測量規(guī)范與房地產(chǎn)測繪技術(shù)一房產(chǎn)測量規(guī)范有關(guān)技術(shù)說明[M].北京:中國標(biāo)準(zhǔn)出版社,2001.