基于VBA巧用南方CASS的实体扩展属性
摘要:说明了地籍调查与建库中存在的问题,引入实体扩展属性的概念,以房屋属性为例,通过分析CASS数据的dxf文件的存储结构,基于VBA巧用南方CASS的实体扩展属性,设计程序,通过将获取的扩展属性的存储格式进行转换,实现了将ArcGIS转换成CASS文件的扩展属性进行拆分,使扩展属性与单个要素相关联,将其转换为CASS标准格式,方便在CASS中查看属性的功能。
关键字:CASS  实体扩展属性  dxf文件  VBA  ArcGIS
引言
地籍调查与建库是项相当繁琐的工作,涉及大量的图形编辑与属性录入[1]。如果直接在ArcGIS中修改会比较复杂并且耗时,而且ArcGIS操作对作业人员素质要求较高。考虑到CASS 具有很强的图形编辑功能,并能挂接属性且属性与图形能以面向对象的方式操作[2],在变更调查中容易维护数据的逻辑一致性。因此,我们一般是将ArcGIS数据转换成CASS数据进行修改,可是直接从ArcGIS输出的CASS数据,不能查看属性。经过分析认为,从ArcGIS转换得到的数据,其属
性并没有丢失,只是存储的方式和CASS存储的方式不同。本文基于VBA巧用南方CASS的实体扩展属性,实现了在CASS中方便查看属性的功能。
1 技术路线
CASS中不严格区分要素几何类型,没有拓扑关系。属性数据存储在单个实体的扩展实体数据中。扩展实体数据是在常规的图形数据基础上增加的按一系列分类代码组合而成的数据块,它与常规实体数据一起构成内容更加广泛的实体数据。
CASS格式数据的扩展实体数据(XData)是存储在DWG内部的要素附加属性信息。但是扩展属性是与单个要素关联的,而且是以数组方式存储,没有字段名。因此需要按照CASS相关的说明,确定各个属性存储的位置和种类。
以下都以房屋属性为例来说明问题。
CASS里,给实体增加了一个附加属性,用来对实体本身的属性作些更多更具体的描述和说明,该属性可以由用户根据实际的需要进行设置和添加。实体扩展属性存储在Attribute.def文件中,使用记事本打开它,将FWJGFWCS这两个字段写入文件中。格式如下:
  *RESRGN,3,面状居民地 
  FWJG,0,10,0,房屋结构
  FWCS,0,10,0,房屋层数
  SOUTH,0,9,0,实体代码
第一行中RESRGN表示图层名,数字3表示图层类型为面(1表示点、2表示线、3表示面、4表示注记);第二行起每行表示一个属性:第一项为属性代码,第二项为数据类型,第三项为数据字节长度,第四项为小数位数,第五项为文字说明。
1.1 CASS中的房屋扩展属性表示方法
CASS软件中画一结构为砖和层数是3vba 字符串转数组层的房屋,查看dxf文件中的扩展属性值显示为:
1001
SOUTH
1000
141121
1040
3.0
1001
FWJG
1000
1001
FWCS
1000
3
组码 1001 表示扩展数据的开始,组码1001下出现的10001040为其属性值,类型分别为字符串型和浮点型。如上第一个开始的数据组码1001的值为SOUTH,它下面有两个值,一个字符串型141121,一个是浮点型3.0。其中141121是常用的CASS编码,它存储于SOUTH下面的第一个字符串中,141121是表示砖房屋线编码,而浮点型数据3.0,即是该房屋的层数。第二个字段名为FWJG,代表房屋结构的字段名,其下组码1000的值是砖,即代表此房屋结构为,最后一个字段名为FWCS,代表房屋层数的字段名,其下组码1000的值是3,即代表此房屋层数为“3”
1.2 ArcGIS中转换出的房屋属性表示方法
ArcGIS要素属性值全部在.dbf文件中,字段类型有字符串型、整型、浮点型、逻辑型和日期型之分。每一字段又有长度和精度的概念,每一个属性结构即对应一种shp文件,每一个属性结构里面关于字段名、字段类型、长度、精度都有说明。
ArcGIS中,新建shp文件画一矩形,并在属性表中建立如下字段SOUTHFWJGFWCS。如:要显示一个结构为砖和层数是3层的房屋。
shp数据用Data Interoperability toolsQuick ExportSettingsExtended EntityData工具输出。打开从ArcGIS转换成的CASS文件,察看dxf文件中的扩展属性值显示为:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。