刘朝辉
河北九华勘查测绘有限责任公司,河北 保定 071000
AutoCAD软件作为大比例尺地形图测绘的一个基础平台,有着非常广泛的应用,其图形要素的属性都以外挂数据库方式管理。为了使地形数据与GIS系统进行对接,对CAD数据进行GIS转换是非常必要的。由于CAD的实体(点、线或面)及符号(以块的形式组织)完全不同于GIS的数据组织格式,这些都要求找到一套较好的方案进行批量无缝的转换。
对于上述情况,ArcGIS提供了CAD转换到Feature Class的几种实现方法,每种方法都有其适用的场合、优势。
CAD文件是由诸如颜色、线型、线宽、符号等静态图形特征组织后的图层集合,其图层并没有象GIS中的图层那样组织严密,实体/元素都包含在一个单一的文件中,属性数据的主要描述图层和注记。
ArcGIS在读取CAD文件的时候,没有按照CAD的数据组织方式分层,而是根据要素类型分层,将所有同一类型的要素放置到一个图层上来。图层信息存储在layer字段。
在CAD转换为FeatureClass的时候要素在转换过程中,除了要素CAD的数据转化为FeatureClass,还要将属于同一图层的要素打散,按照Layer字段值再次分层。在ArcGIS下有多种方式实现CAD转featureClass。现有的功能包括:数据互操作扩展提供的export data功能,gp等。
在ArcGIS下有多种方式实现CAD转featureclass。现有的功能包括:数据互操作扩展提供的export data功能,gp以及gp提供的示例。
这种做法比较繁琐,分层导入每次都要去设置过滤属性,效率比较低下,全手工操作,对作业人员提出了很高的要求,不适合大规模生产。
本文提出了一种新的数据转换方式,其主导思想是:将CAD数据进行分层处理,按地形类型及实体类型分层,在AutoCAD下进行编辑和查错,将编辑好的数据生成文本文件,根据各层对数据的不同要求,将扩展属性放入文本文件中,利用ArcEngine+c#开发转换程序,将文本文件直接生成shp文件。
下面是具体的作业流程:
如果AutoCAD文件的层比较乱,或者各种地物混在一个层中,就需要采用人工或程序自动提取的办法,将数据分类分层。
1)图面表示应满足相关规范或规定对1:500或1:1000地形图的要求,实体属性应满足1:500或1:1000基础地理信息数据的要求。全要素组织地形,相邻分幅的数据必须作接边处理,且分层必须统一;
2)文字注记应保持其完整性,如“长安大街”,应为一个整体,可通过软件进行查询;
3)对于图例符号,必须遵照相关国家标准制作和使用图例及线型,且图例和线型不能被打散;
4)建筑物、绿地、水系、桥梁、接图表等面状数据必须封闭为一个整体,面状数据要有高程;
5)因不同格式的数据表达方式不同,所有信息(包括扩展属性)必须可读、可提取,不能使用不能读取的外部参照或型文件。
3.2.1 分层
序号 CAD层名 要素类 集合特征 说明1 主要建筑 主要建筑 面 建筑物2 次要建筑物 次要建筑物 面 棚房、简易房等3 水系 河流、湖泊 面 河流、湖泊等4 绿地 绿地 面 绿地、苗圃、花坛等5 独立地物 独立地物 点 路标、电力通讯杆等6 道路中心线 道路中心线 线 道路中心线7 注记 注记 点 道路名称、单位名称等
3.2.2 数据库结构
1)主要建筑物属性表结构
字段名 字段类型 备注Handle Char(20)材质 Char(8)楼层 Integer楼高 Decimal(8,2)高程 Decimal(8,2)……
2)道路中心线属性表结构
字段名 字段类型 备注Handle Char(20)名称 Char(100)………
3)次要建筑物、绿地(水系)属性表结构
字段名 字段类型 备注Handle Char(20)名称 Char(100)……
4)独立地物属性表结构
字段名 字段类型 备注Handle Char(20)块名 Char(20)旋转角 Decimal(8,6)……
5)注记属性表结构
字段名 字段类型 备注Handle Char(20)注记内容Char (100)字高 Decimal(8,2)字宽 Decimal(8,2)……
1)在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,检查CAD图形数据,确保每一建筑物注记存在且唯一(包含材质和楼层,其中楼层为1时不能省略);
2)检查CAD图形网格线附近的建筑物确保建筑物形状正确且闭合(主要是由于分幅产生的建筑物分隔错误);
3)使用程序单独提取“建筑物和注记”层,并另存为“建筑物和注记.dwg”文件;
4)使用程序对建筑物进行拓扑检查,以下是具体命令及说明:
各命令运行顺序:
注意:以上检查请多次重复使用直至没有错误。
5)使用程序给建筑物添加扩展属性。
1)新建“绿地”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使地形图绿地在“绿地”层下并且保证绿地都是闭合的;
2)单独提取“绿地”层,并另存为“绿地.dwg”文件;
3)使用程序对绿地进行拓扑检查,以下是具体命令及说明:
智能家居和样板房的诸多理论设想和人性化设计都已经硕果累累,但是其展示和体验效果却始终不尽如人意,在设计和展示之间存在较大的鸿沟,需一个传达媒介来提升体验感。本文基于Unity3D 平台,结合虚拟样板房的设计理念及概念,设计和实现了一个具备沉浸式、交互式体验感的样板房设计和智能家居的展示系统,有助于客户更真实地体验样板房和智能家居设计效果、设计师修改家装设计和建造者调整建筑方案。
运行顺序:
注意:以上检查请多次重复使用直至没有错误。
新建“独立地物”层,根据要素名称提取这三层要素,并另存为“独立地物.dwg”文件。
1)新建“水系”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使河流,湖泊等水系置于“水系”层下并且保证水系都是闭合的;
2)单独提取“水系”层,并另存为“水系.dwg”文件;
3)使用程序对水系进行拓扑检查,以下是具体命令及说明:
注意:以上检查请多次重复使用直至没有错误。
1)新建“道路”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使道路置于“道路”层下并且保证道路都是闭合的;
2)单独提取“道路”层,并另存为“道路.dwg”文件;
3)使用程序对道路进行拓扑检查,以下是命令及说明:
注意:以上检查请多次重复使用直至没有错误。
1)新建“道路中心线”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使道路中心线置于“道路中心线”层,在十字路口、丁字路口处道路中心线断开;
2)单独提取“道路中心线”层,并另存为“道路中心线.dwg”文件;
3)对道路添加扩展属性(道路名称)。
在CAD下将各层数据分别输出txt文件,再转为.shp文件入库。
利用该转换方式将CAD数据转换ArcGIS的数据,不仅保证数据的完整性和可使用性,且转换效率也有很大提高,能够进行大批量的自动处理。借助此方式我们可以实现CAD与GIS的数据交互,为GIS在工程设计领域进行双向集成提供了技术基础。
[1]陈建飞,等.地理信息系统导论[M].北京:科学出版社,2010.
[2]陈建飞,等.基于VBA的ArcObjects编程——面向任务的方法[M].北京:科学出版社,2010.
[3]邱洪刚等.ArcGIS Engine开发从入门到精通[M].北京:人民邮电出版社,2010.
[4]《1:5001:10001:2000地形图图式》GB/T7929-1995[S].北京:中国标准出版社,1996.