利用VBA自动计算建筑面积和占地面积的方法研究

摘要:本文通过南方CASS测绘得到的地形图或由其它软件测得但以转为南方CASS的地形图(DWG格式的图形)后,在AUTOCAD2006中通过对图形属性的分析,利用VBA编程自动计算建筑面积和占地面积的方法研究,提高了各种图形建筑面积和建筑占地面积计算的功效,为建设用地的指标控制提供了准确的数字依据。
关键词:建筑面积 占地面积 建筑物 房屋构面线 VBA
1 概述
“保护耕地就是保护我们的生命线”,在我国耕地资源日趋贫乏的严峻的形势下,经济发展建设用地的需求量却在不断增加,为确保社会经济的可持续发展,每个地方的建设用地指标国家已进行了严格的控制,在这样的一种用地形势十分严峻的背景下,有的企业急需发展却批不到土地,有的企业批到了地却闲置或没有严格按建设用地指标去开发建设,不能有效的发挥土地的经济价值,所以目前要从建设用地指标管理着手,利用好每一块土地。本文利用VAB编程自动计算建筑面积和占地面积的方法进行了研究,高效地准确地计算每一宗地的建筑占地面积和建筑面积,从而为建设用地使用指标的管理提供可靠的数学依据。
VBA即Visual Basic for Application, 从语言结构上讲, 它是VB(Visual Basic)的子集,他们具有相同的语言结构。VBA是一种完全面向对象体系结构的编程语言,其使用方便、功能强大的特点,很多应用程序均嵌入该语言作为开发工具。在AUTOCAD的基础上采用VBA语言作为二次开发的工具,VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。VBA作为AUTOCAD有效的开发语言,具有以下的优势:
1、Visual Basic编程环境易学易用;
2、AUTOCAD VBA运行在与AUTOCAD相同的处理空间;
3、允许快速开发程序和及时受到设计的反馈;
4、可以单独存在,也可以嵌入到图形中,这使得开发者在应用程序时有极大的灵活性;
5、VBA还可以同其他使用VBA的应用程序集成。
2 程序流程设计

3 图形处理与选择集的构造整合
目前我国测绘软件种类繁多、功能独特,有的用AutoCAD为平台进行二次开发,如南方CASS等,有的完全自主开发,如Walk、清华山维等,无论是前者还是后者,它自身的软件中都没有自带统计建筑面积的工具,再加上由于绘图人员的不注意,或说是不专业,导致地形图本身就有一定的问题,例如:在南方CASS中修改建筑属性和层数的时候,很多人就是直接把建筑的注记修改了,而没有修改里面的扩展数据,这对面积的自动计算带来了一定的困难。但采用二次开发可以解决在AUTOCAD中建筑面积统计的问题。
3.1 图形检核编辑
参与建筑占地和建筑面积计算的图形由于进行了转换、接边、插入、剪切等处理,从而使图形产生了多余的房屋结构注记和重叠的房屋线,有的肉眼能看见,有的看不见,而且相同图形中的同类文字、线型在分层、属性方面有所差异,所以在面积计算之前对图形进行以下处理:
a、对有缺口的建筑物进行封闭处理。
b、删除建筑物内多余的结构注记,每个建筑物只需一个结构注记。
c、建筑物内的结构注记与层次注记尽量为一整体注记。
d、面积计算区域内的所有建筑物与建筑物结构注记必须分别分布在同一个层内,而且所有建筑物线型属性和结构注记属性要分别保持一致,如:不能有的是TEXT注记,有的是MTEXT注记等,有的是line 线型有的是pline 线型等。
e、其它不参与面积计算的构筑物或其它线型不能与同属性(属性以南方CASS的属性为标准)。
3.2 选择集的构造整合
对图形进行了上述处理后,还要过滤选择集中的但位于面积计算区域外的建筑物实体,自动删除重叠结构注记和重叠房屋构面线,提取房屋结构注记和房屋构面的线属性信息。
3.2.1选择集多边形坐标表的生成
VBA选择集在进行多边形选择时,经测试多边形中有重复点时,选择集操作失败。一般在进行计算面积时,选取的多边形是宗地的界址线或人为临时绘制的多边形,界址线在宗地图的前期制作过程中进行了多次调整,如有的地方加点,有的地方减点,经过多次拖动的界址线就出现了重复点的情况,利用多边形坐标表中相邻点的距离小于某一数值就认为是重合点或密集点,程序自动进行剔除,保证选择集操作成功。
3.2.2 选择集外建筑面积的剔除
参与建筑面积和建筑占地面积计算的图形的选择集多边形是宗地图界址线或人为临时绘制的多边形,有时选择集多边形由于绘制误差等原因压盖了部分区域之外的建筑物,导致面积计算产生差错,为此要对所有建筑物内的结构注记的脚点进行分析,从图形结构分析,多边形内的任意点向任意方向做一条射线,它与多边形的交点是奇数,多边形外的任意点向任意方向做一条射线,它与多边形的交点是偶数,通过交点的奇偶性判断,可以剔除多边形之外的建筑物,保证了面积计算的准确性。
3.2.3重叠结构注记的删除
由于图形接边等情况引起的结构注记重叠,眼睛不易识别,要求能自动识别剔除重叠注记或近距离注记,如两注记完全重叠或相距在肉眼完全能看清的距离内时进行剔除。
3.2.4重叠房屋线的剔除
地形图测绘时由于图形接边引起的眼睛无法识别的重叠房屋构面线,面积计算时要求能自动识别剔除。根据经验在实际测绘中面积完全相同的房子出现的可能性极少,如果相同则认为是同一个房子的重叠,根据这一思路对房子面积进行逐一比较,就可以剔除重叠房屋构面线。
3.2.5选择集过滤信息的提取
我们对参与面积计算的选择集进行操作时有二种信息需自动识别提取,一种是房屋结构信息,即房屋结构注记所在图层名和注记方式等,另一种是房屋线所在的图层名和线型信息等。二种信息主要是通过提取图形上的房屋结构注和房屋构面线,对其进行分析并提取相关信息,通过所需信息的提取,可以在自动解算时从选择集中过滤大部分无用的实体,为面积的正确与快速计算提供了保障。
4 面积计算方法研究
4.1 面积计算方法
利用各种方法在AutoCAD重新生成新的能计算出面积的实体即封闭多段线,然后利用CAD的AREA命令进行计算,立即提取CAD系统变量中的面积,然后利用从建筑物结构注记中提取建筑物的层次,这样就可以计算出建筑物的占地面积和建筑面积。
4.1.1利用房子的构面线计算面积
本方法适用于利用南方CASS测绘的图形数据,利用房子的构面线和房子的构面线的属性自动计算建筑占地面积和建筑面积。要求所有建筑物结构注记和层数注记与房子的构面线的属性(即扩展数据)一致。面积计算结果可以与生成的面积计算文件进行核对。对房屋构面线建立选择集时设立了以下过滤条件;
FilterType(0) = 0
FilterData(0) = “LwpolyLine”
FilterType(1) = 8
FilterData(1) = “JMD”
FilterType(2) = 1000
FilterData(2) = “sxdm” ’其中sxdm是代表所有的房屋属性代码
SSet.Select acSelectionSetAll, , , FilterType, FilterData
“其中FilterType(0) = 0和FilterData(0) = “LwpolyLine”规定必须选取连续的多段线,FilterType(1) = 8和 FilterData(1) = “JMD”规定房屋必须在南方CASS规定的居民地层(“JMD”),FilterType(2) = 1000FilterData(2) = “sxdm”规定选择的多段线都市房屋的构面线。
4.1.2 利用房子的注记(结构注记和层数注记)和房屋构面线计算面积
本方法适用于非南方CASS软件测绘的图形数据(指已转换为南方CASS的图形数据)南方CASS软件测绘的已丢失属性的图形数据,利用房子结构注记和层数注记进行属性重构,然后用上述方法计算面积。要求所有建筑物结构注记和层数自己必须在同一层上,房屋构面线可以不完全一致,面积计算结果可以与生成的面积计算文件进行核对。房屋构面线建立选择集时选择过滤条件同上,注记选择集过滤代码如下;
FilterTyp(0) = 0
FilterDat(0) = “Text”
FilterTyp(1) = 8
FilterDat(1) = “JMD”
ssSet.SelectByPolygon acSelectionSetCrossingPolygon, objPnt, FilterTyp, FilterDat
注记方式和图层名可以通过交互式方式进行提取,“objPnt”是指定的一条房屋构面线,以上的代码含义是:在指定的房屋构面线内检索结构注记和层数注记。
4.2 面积计算粗差剔除
4.2.1用房屋面积大小异常剔除粗差
房屋的占地面积和建筑面积都应大于0平方米,一般还用到占地面积大于1方米,房屋的占地面积也应小于一个数字,一般用占地面积用小于1000平方米,这些常数可由用户自己设置。
4.2.2 用多次计算核对检验剔除粗差
多次面积计算时都生成了面积数据文件,对面积文件中的每幢房子的面积数据进行核对,面积值跳跃较大的房屋和结构不一致的房屋可作为重点检查对象,可以按提供的脚点坐标人为剔除错误边界线并进行修改。
4.2.3 用南方CASS自带的功能计算的结果与此计算结果比较剔除粗差
可以利用“计算宗地内建筑面积”和“注记建筑占地面积”这两功能,就可得出房屋建筑面积的一些结果,和本程序的计算结果作比较,若面积值跳跃较大,则需检查。“计算宗地内建筑面积”是计算这个选择集的总的占地面积(不记房屋附属结果面积),若指定的边界不是宗地边界,我们应该把此边界线变为的权属线,再计算总的占地面积,最后与本程序计算的总面积对比。“注记建筑占地面积”功能是把所有房屋的的面积标注出来,以便人工的检查错误。
4.3面积计算时注意的一些问题
面积计算计算之前一定要做好图形的处理工作,特别是拓扑关系的检查,防止房屋构面线出现的重叠、交叉、包含等错误情况,还有就是注记与属性的一致性检查,这些图形的检查工作是保证面积计算正确的保证。面积计算之后还一定要进行检查,防止出现错误。
5应用实例
笔者在沧水浦碾子湖工程中用此程序对工程区域的房屋的占地面积和建筑面积进行了统计,并且取得了良好的效果,节约了人力、物力、财力,为工程的顺利开展提供了很好的帮助。
将4个程序文件(包括配置文件)复制到cad安装目录\support\*,依据cad版 本将acad2006doc.lsp文件名中得2006改为cad的版本,如acad2008doc.lsp,启动cad,界面上会增加一个“房屋面积统计系统”菜单项。执行菜单下的“图形预处理”命令,等处理完成后,检查图形,把标注出来的拓扑关系错误的地方改正。再执行菜单下“面积统计”命令,即可得到Excel的统计表格了,检查统计好的数据。

图3 预处理找出的错误房屋构面线

图4 统计结果
6结语
现在很多城市和地区都建立AUTOCAD图形(1:10000)的地图库,随着AUTOCAD和南方CASS的进一步普及,像这样的地图库会越来越丰富。所有,笔者相信此程序一定能在今后的建设用地管理、城乡规划、工程建设等方面发挥巨大的作用。
当然,此程序也还存在很多的不足,比如说:没有实现自动化修改的房屋构面线拓扑关系错误问题;没有考虑房屋的那些复杂的房屋附属影响房屋的建筑面积;此程序只适用于房屋构造简单的城镇和农村地区,不能处理复杂的建筑物等等。还希望广大的读者进一步改进此程序。
由于在测绘时每个人的习惯不同,测量的地形和测绘软件也千差万别,所以不管用哪一种方法计算出的面积都不一定是千真万确的,所以计算完成后一定要进行检查。

原创文章,作者:Editor,如若转载,请注明出处:https://www.diyilunwen.com/uncategorized/2010.html

(0)
EditorEditor
上一篇 2014年10月17日
下一篇 2014年10月17日

相关推荐

  • 浅谈如何开展高中日语教育

      摘要:应新课标要求,少数学校开展了以日语为第二语言的特殊课程,以日语代替英语。高中的日语学习与英语学习的地位是等同的,同样要参加高考。日语放在高中学习毕竟是全新的尝试,还需要教…

    未分类 2014年10月29日
  • 从《中国好声音》看当前电视选秀节目的现状与发展

    摘 要:近年来我国电视娱乐选秀类节目日渐低迷,“选秀已死”说法盛行。2012年《中国好声音》的热播打破了这种局面,创造了电视娱乐选秀节目的新高潮。本文分析了近年来电视娱乐选秀节目的…

    未分类 2014年10月10日
  • 地理教育绝不能停留于课本

     摘要:新课改提出了对每个学科科学改进教育形式的建议,要求高中高中课程中各个科目的教育形式多样化,强调创新教育形式的重要意义。现在所提倡的创新教育,就是以创新教育形式为重心,以启发…

    未分类 2014年10月24日
  • 读与写的有机结合锻炼写作思维能力

       摘要:尽管近几年的高考制度一直在改革,但是语文在高考中一直都是十分重要的科目。而在语文方面,写作对学生的成绩影响最大,所以写作能力的提升逐渐得到学生的重视。那么如何高效提升写…

    未分类 2014年10月12日
  • 世界,你好!

    欢迎使用WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!

    未分类 2014年8月8日
  • 关于初中体育网球教学的几点思考

    摘要:网球这项体育运动的历史悠久,发展时期也是起起伏伏,前些年的时候我国网球的发展相对于其他发达国家比较落后,但是随着我国经济的腾飞,人们对基础体育设施的要求不断提高,以及越来越多…

    未分类 2014年10月12日
  • 小班幼儿“攻击性”行为的个案研究

    【摘要】幼儿“攻击性”行为,是在幼儿园比较常见的反社会行为。有时伴随着言语还有动作的攻击,这些不经意的孩子间的“打闹”实际上已经构成了攻击性行为,必须要引起家长和老师的重视。小班幼…

    未分类 2014年10月10日
  • 播种习惯收获成功——浅谈低年级学生学习习惯的培养

    【摘要】教育学家认为,一个良好的学习习惯是人在自我神经系统内部存放的有利资本。作为低年级学生来讲,养成良好的学习习惯至关重要。因此,低年级学生的班主任教师就要尽可能的帮助学生形成良…

    未分类 2014年10月8日
  • 浅析幼儿在游戏中的行为表现对其心理发展的影响

    摘要:近几年来,人们对幼儿的心理健康发展有着颇高的关注,很多专家学者积极的去研究幼儿的心理发展。但是,幼儿的语言表达功能尚不完善,况且幼儿也有自己所创造的语言,这也是成年人无法理解…

    未分类 2014年10月24日
  • 宫腔粘连诊疗机制及其研究进展

    宫腔粘连概述宫腔粘连(intrauterine adhesions,IUA)是指因宫腔操作引起子宫内膜基底层甚至浅基层的损伤而造成宫腔或是宫颈管不同程度的粘连。(范宝光1)月经量减…

    未分类 2014年10月10日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注