“三维”可能是最直接、最易于理解、最有需要的一个前期分析中的功能了,我们都希望从测绘CAD直接能看到三维空间——ArcGIS可以办到,不要看本篇文章很长,但是后面熟练起来,真的真的很快。
作为一名有独立探索精神的技术流博主,我希望我以后的文章都比较精简,节约大家的时间。(我自己确实对于长文章没有耐心)
以下粘贴至Sid编写的操作文档《Arcgis等技术在城乡规划中的应用》,比较有用的技术可能是ArcGIS三维数据导出至Sketch。
本次重新排版文章,还增加了部分的操作视频。
导入CAD
快速建模
01 生成三维地形
无测绘数据
LSV(localspaceviewer)等下载高程,“*.tif”为黑白图,高程信息储存为像素值
ii. 从栅格生成TIN,三维地形
1) 定义数据框坐标系为投影坐标系,同时数据框属性中常规选项卡单位改为m-选中已添加的高程“*.tif”-右键-数据-导出数据-空间坐标系-数据框-确定并自动加载新tif文件(不能用ArcCatalog右键-属性-坐标系更改为投影坐标系,因为tif的真实坐标系仍然为地理坐标系,不满足下一步的计算,会报错)
2) ArcToolBox-3D Analyst工具-转换-由栅格转出-栅格转TIN-z容差输入1(大致可用,0.1时最接近原始高程数据信息,依据精度需要输入)
iii. 生成TIN之后
选中TIN图层-右键-属性-符号系统(设置高程分级区间、显示-添加:可以按需添加、勾选等高线视图、坡度、坡向视图等)
一、 数据准备
官方测绘数据常见类型:*.dwg(CAD文件),按需打开以下信息所在图层
1. 建筑外轮廓
2. 建筑层数
i. 非纯数字后面再处理,如“砖4”
ii. 最好纯数字,如“4”
iii. 注记都需要位于建筑轮廓内,可手动移动、全选更改文字大小等实现
3. 道路(路侧线、路中线)
4. 河流
5. …………
二、 导入ArcScene/ArcGlobe
1. *.dwg定义坐标系
2. 一般导入polygon、annotation数据即可
3. 按属性选择不同要素分在不同的图层,并设置合适的显示效果
4. 生成建筑基底
5. 要素转面,生成建筑基底
6. 检查
多生成的面删除,未生成的补绘等:编辑工具条-开始编辑
三、 添加高度信息
1. 打开建筑基底属性表,添加高度字段,数据类型可选择短文本
2. 链接建筑高度/层数信息(参考)
i. 选择建筑外轮廓图层-右键-连接和关联-连接
ii. 连接面板-“要将哪些内容连接到图层”下拉-选择“基于空间位置的另一图层的数据”-……-选择所有属性汇总
iii. 检查连接,工具栏-查询-点击相应的建筑基底
3. 处理建筑层数/高度信息,打开建筑高度注记属性表,高度信息储存在Text字段
i. 纯数字注记,不要处理
ii. 非纯数字注记(如"6F"),需额外处理
n 添加高度字段,数据类型可选择短文本
n 查看命名规则,如1层为“砖”,其他层为“砖x”,检查是否有异常值等
n 提取单数字注记
1)使用编程语句(VB、Python)
2)使用Excel(推荐)
4. 填写高度字段
i. 打开建筑基底属性表
ii. 开始编辑-右键高度字段-字段计算器-建筑基底.高度字段=建筑层数.高度字段-停止编辑
四.调整符号显示系统,输出建筑高度专题图、建筑材料专题图
五、 拔高建筑
选中建筑基底-右键-属性-拉伸-拉伸值或表达式-右侧计算器按钮(表达式构建器)-选择高度字段或层数字段*3(平均层高3m)-确认-拉伸方式-将其添加到各要素的基本高度/最大高度-确认/应用
六、 落到3维地形中
选中建筑基底-右键-属性-基本高度-从表面获取高程-在自定义表面上浮动-选择生成的地形TIN-确认
七、 另存为3D数据文件
1. 需要将生成的建筑分成几类或不需要分类
选中建筑基底-检查分组字段/添加分组字段(不分类也需要添加,默认短整型-值为随意数字)
2. ArcToolbox-3D Analyst工具-转换-3D图层转要素类-……(选择分组字段)-自动加载
3. 导出3D底图到其他软件
DAE是广泛使用的3D模型格式,可以导入Sketch(对于大量建筑导入效率低,因为DAE文件是用三角形储存每个面,导入SKETCH默认将同面的三角形合并,所以需要处理)、Lumion等
(若转为3D数据文件(上一步)时未考虑分组,则依据Object_ID字段将每栋建筑单独导出)
ArcToobox-转换工具-转为Collada
ii. to SKP
n 插件
其实有插件可以用(SketchUp6ESRI.exe,安装后-自定义-工具条激活),但是对于大量的建筑导出效率低下
n FME软件(效率超级快,但是不大实用,软件很大且需破解)
n 曲线救国
n From Dwg/Dxf To Skp(推荐方法)
(这也是“因为打好组的DAE文件,Sketch不能很好地支持”)
(建筑的基本高程信息也会保留,也就是说建筑不是在一个平面,而是像ArcScene中,落在地形上的)
(不过建筑底面没法看,共面未合并,不过也无伤大雅)
n From DAE To Skp
完成to DAE格式后,直接使用Sketch-文件-导入-dae
!!!经测试,只能一栋楼、一栋楼导入!!!也就是说,3D图层转为3D要素-转换为DAE时,需要按照Object_ID进行分组,因为打好组的DAE文件,Sketch不能很好地支持(提示导入失败,或者卡顿)