羅國夫 鄭禮飛 蔣霖


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