建筑立面面积自动测算方法研究与算法实现 | ![]() |
2. 福建省测绘院,福建 福州,350100;
3. 福建省地质测绘院,福建 福州,350100
2. Fujian Surveying and Mapping Institute, Fuzhou 350100, China;
3. Fujian Geologic Surveying and Mapping Institute, Fuzhou 350100, China
建筑立面图是城市建筑物外观装修和景观改造设计与施工中的重要依据[1]。在景观改造项目建设前期,往往需要利用数字地形图高效、准确地对范围内大量的建筑物进行立面面积预估,以供决策者预估工作量、评估风险[1]。建筑立面测绘完成后,也需要高效、准确地计算、汇总真实的立面总面积,用于工程决算。人工计算、汇总建筑立面面积费时、费力,不能满足高效决策支持、工程决算的需要。因此,通过开发程序,快速、自动、准确地从地形图中估算出房屋立面面积,并从大量的立面图成果中自动搜索立面边界,精算出立面总面积具有重要的作用。
目前,已有一些针对相关问题的自动处理算法[2-12]。例如,廖维荣[2]基于Visual Basic for Applications(VBA)编程,根据CAD图层中的房屋面积及楼层数注记,实现了房屋建筑面积的自动统计;丁立等[3]基于Visual Basic Script进行二次开发,以分类统计各种建筑结构的房屋建筑面积;马红[4]利用大比例尺地形图、航空航天遥感影像和数字高程模型等历史地理信息资源,提取城市拆迁工程范围内的建筑物信息,并判定其建成年代、估算其占地面积,为主管部门提供决策依据;郭振华等[5]基于AutoCAD的扩展属性,实现了多边形面积的统计汇总。何鑫星等[6]基于AutoCAD选择集,对四川省农村不动产测绘项目中的大批量户产权信息进行了自动化比对分析。以上算法虽然是对建筑占地面积、建筑面积进行自动计算、汇总,但都为建筑物立面工作量预估提供了基础。
建筑立面成果图中一般没有明确的、封闭的多边形来表示边界,而是图层、线型、颜色各异的墙体、门窗、栅栏等部件。改变手工绘制每个立面边界的传统方式,采用算法自动进行立面面积精算,其实质是从中自动搜索出边界并汇总的问题[7],常见的有k-近邻法[8]、网孔边界算法[9]、凸壳内缩法[10]、搜索盒边界搜索算法[11]、行列边界搜索算法[12, 13]等。其中,行列边界搜索算法在AutoCAD中的实现最简单。
综上,本文基于建筑立面改造区域已有的数字地形图,通过获取区域内所有房屋及其附属物的CASS扩展属性、结构注记、层数注记和基底周长等信息,自动计算、汇总出建筑立面面积,实现立面测绘的快速估算;基于批量立面测绘成果,通过行列边界搜索算法自动搜索立面边界,并计算、汇总出批量的立面测绘成果工作量,为工程决算提供依据。
1 基于数字地形图的建筑立面面积自动预估 1.1 建筑立面面积自动估算方法如图 1所示,房屋主体①为混合结构3层建筑,建筑立面面积计算公式为:建筑基地对应的多段线边长×3 m/层×相应的层数注记3[14]。②为柱廊,③、⑤为阳台,④为飘楼,结构信息均需要从多段线的扩展属性中获取得到,因房屋主体已经计算过立面面积,此类附属结构不再计算立面面积。
![]() |
图 1 房屋及其附属物示例 Fig.1 Example of House and Its Appurtenances |
AutoCAD实体扩展数据是AutoCAD为每个实体预留了最大16 KB的空间来存储其自定义的数据内容,其格式包含一个类型描述和一个类型值的数据对[14]。如表 1所示,类型值对应CASS数字地形图中的内部6位数编码,前4位定义了地物名称,后两位根据需要再区分同一地物的不同类型[15]。
表 1 常用扩展数据及其含义 Tab.1 Common Extension Data and Their Meanings |
![]() |
由表 1可以看出,通过扩展属性可以获取建筑物的结构、层数信息,并与图面注记的结构、层数相互检核。另外,扩展类型值编码前4位为1443~ 1447的表示围墙、栅栏、铁丝网等,可以通过该信息剔除不计算立面面积的建筑附属物。
当建筑物与其他建筑物相邻共墙时,将该共墙等分,只统计该共墙面积的1/2,或按与一个建筑共墙,相应扣减1/8的该建筑物立面总面积进行概略统计。当建筑物同时具有图面结构、层数注记,但与扩展属性中的结构、层数类型值不一致时,可能是作业员经常采用CASS的“加入实体编码”,复制其他房屋的注记到新绘房屋上作为注记,造成房屋扩展属性错误,此时应采用图面注记作为计算依据,并在自动估算过程中用不同颜色加以区分,以供人工核对。
1.2 程序流程及实现程序采用VBA生成AutoCAD的dvb文件,直接嵌入AutoCAD,以工具栏的形式配合CASS软件使用,交互良好,简单易用,响应速度快,程序流程见图 2。程序运行结果以excel表格形式汇总每一栋房屋的立面面积。采用该算法进行建筑立面面积估算,自动化程度高,结果准确,对决策者快速掌握统计区域内的工作量具有较大帮助。
![]() |
图 2 建筑立面面积自动估算流程 Fig.2 Automatic Estimation Process of Building Facade Area |
2 基于行列搜索算法的建筑立面面积精算 2.1 行列搜索算法自动确定立面边界
行列边界搜索算法就是先通过行搜索得到行搜索边界,再进行列搜索得到列搜索边界,将行、列搜索的边界合并,得到准确的边界[11]。行列边界搜索算法对平面中变密度、不规则的离散点(如油田注水开发井)的边界能够自动、准确追踪[12]。
步长用来确定搜索的范围大小。步长太小,程序运行费时;步长过大,将无法搜索到建筑局部的凹凸,降低边界搜索的精度。实际中,步长一般在0.05~0.2 m间,或根据以下公式计算建筑物的平均边长,步长取平均边长的0.01~0.05倍较为合适。
$d=\frac{\sqrt{A}}{\sqrt{n-1}} $ | (1) |
式中,d是所有建筑物的平均边长(单位:m);A是所有建筑物的面积(单位:m2);n是建筑物的数量。
在建筑立面测量中,对立面图上的任何AutoCAD对象集(包括点、多段线或多边形)进行行列搜索即可得到较为准确的立面边界。图 3(a)为某房屋立面图,包含了房屋主线、门窗、装饰物、空调架等部件,并没有绘制立面的整体外围多段线,因此无法直接获得立面面积。
![]() |
图 3 行列搜索算法示意图 Fig.3 Diagram of Row and Column Searching Algorithm |
此时,根据步长对整个立面图均匀作垂切线,并计算每个切线与建筑相交处的最大点(Xi,Ymax)和最小点(Xi,Ymin),再逐个连接它们,获得列搜索的立面边界,如图 3(b)所示,图中右边阳台部分由于凹入屋檐以内,只进行列搜索无法发现并内缩。同理,根据步长对整个立面图均匀作水平切线,并计算每个切线与建筑相交处的最大点(Xi,Ymax) 和最小点(Xi,Ymin),再逐个连接它们,获得行搜索的立面边界,可以发现垂直方向上的凹凸,但无法发现左下角立柱的凹凸,如图 3(c)所示。将列、行搜索的立面边界进行组合,取其最小的边界,得到最终的立面边界。
2.2 程序流程及实现与立面面积估算相同,采用VBA开发方式,用户指定批量立面文件所在的路径、步长等参数后,程序自动逐个打开文件夹下的所有立面文件,采用AutoCAD自带的IntersectWith方法进行相交判断,完成行列搜索后保存立面边界线并输出立面编号、面积到excel文件中,精算每一栋房屋的立面面积。
3 工程实践及算法分析本文以湄洲岛国家旅游度假区某传统村落立面改造项目为例进行实验,该项目共涉及96栋民房的立面测绘工作,在测绘之前利用本文方法对该项目进行了立面工作量自动预估,并在测绘完成之后进行了立面面积精算。
该项目的几种典型的立面边界自动搜索结果见图 4。采用本文方法能比较精确地搜索到立面上的细微凹凸,房顶装饰物、室外台阶不属于房屋主体,不计入立面边界。
![]() |
图 4 行列搜索算法的立面边界结果 Fig.4 Facade Boundary Results of Row and Column Searching Algorithm |
由表 2可知,程序预估立面工作量、程序自动精算的立面工作量与人工统计结果均比较接近。这说明预估、精算的立面工作量较为准确,满足工程实际需要。
表 2 本文方法自动测算结果 Tab.2 Automatic Estimation Results of the Proposed Method |
![]() |
4 结束语
本文采用AutoCAD的VBA开发方式,通过自动获取数字地形图上房屋的CASS扩展属性、结构注记、层数注记和基底周长等信息,估算建筑立面面积;基于批量立面测绘成果,通过行列边界搜索算法自动搜索立面边界,并精算立面测绘实际工作量,为科学决策、工程决算提供依据。相关研究成果也可以为建筑拆迁量估算、建筑占地面积统计、绿地面积统计等工作提供参考。
[1] |
何屹雄, 花向红, 许承权, 等. 全站仪建筑物立面图测量方法研究及工程实践[J]. 测绘地理信息, 2017, 42(1): 10-13. |
[2] |
廖维荣. 分类房屋面积自动统计的程序实现[J]. 无线互联科技, 2015(8): 54-55. DOI:10.3969/j.issn.1672-6944.2015.08.026 |
[3] |
丁立, 琚锋, 吴盛, 等. 大比例尺地形图在房屋面积统计中的应用[J]. 城市勘测, 2018(1): 148-150. DOI:10.3969/j.issn.1672-8262.2018.01.037 |
[4] |
马红. 历史地理信息资源在拆迁工作的应用实践[J]. 测绘通报, 2020(S1): 218-220. |
[5] |
郭振华, 薛兰格. 基于Auto CAD扩展属性的多边形面积统计汇总应用[J]. 北京测绘, 2014(3): 57-60. |
[6] |
何鑫星, 王小娟, 李卓. 基于AutoCAD选择集的自动化图元搜索方法[J]. 地理空间信息, 2021, 19(2): 96-99. DOI:10.3969/j.issn.1672-4623.2021.02.025 |
[7] |
Galton A, Duckham M. What Is the Region Occupied by a Set of Points?[C]. International Conference on Geographic Information Science, Münster, Germany, 2006
|
[8] |
Moreira A J C, Santos M Y. Concave Hull: A K-Nearest Neighbours Approach for the Computation of the Region Occupied by a Set of Points[C]. Proceedings of the Second International Conference on Computer Graphics Theory and Applications, Barcelona, Spain, 2007
|
[9] |
王建军, 肖俊, 黄龙传. 基于"网孔法"的点云数据边界提取技术的应用[J]. 洛阳理工学院学报(自然科学版), 2009, 19(2): 30-34. DOI:10.3969/j.issn.1674-5043.2009.02.008 |
[10] |
李雯静, 李少宁, 邱佳, 等. 凸壳内缩法进行多密度离散点群边界检测[J]. 测绘科学, 2014, 39(9): 126-129. |
[11] |
胡志刚, 秦启飞. 基于凸包的最小体积有向包围盒生成算法[J]. 湖南大学学报(自然科学版), 2019, 46(2): 105-111. |
[12] |
袁满, 袁志华. 一种基于行列法离散点边界搜索算法[J]. 计算机应用研究, 2010, 27(11): 4 130-4 132. |
[13] |
尹晓喆, 田枫, 郭玲玲, 等. 基于行列搜索的边界井追踪算法在油田开发中的应用研究[J]. 计算机与数字工程, 2016, 44(8): 1 446-1 450. |
[14] |
许承权, 黄小琴, 施政. 消费级无人机倾斜摄影测量1∶500测图方法及精度研究[J]. 测绘地理信息, 2020, 45(1): 117-120. |
[15] |
许承权, 滕明星. 一种新的立体测图方法[J]. 城市勘测, 2019(2): 143-146. |