注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐小屋

 
 
 

日志

 
 

ArcGIS三维建模  

2012-05-12 16:19:17|  分类: ARCGIS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ArcGIS三维建模

流程概括

(1)使用ArcGIS桌面,即ArcMap,加载矢量数据;

(2)ArcMap环境中,利用SketchUp插件工具,将所需要建模的区域导入SketchUp中。

(3)SketchUp创建模型。

(4)SketchUp中将模型转成ArcGISMultipatch模型要素文件并保存于Personal GeoDatabase(后面统称为PGDB)中。


环状建模流程图

 

软件环境

?  ArcGIS桌面产品和服务器产品;

?  SketchUP 6专业版三维建模软件(建议安装版本6 pro);

?  SketchUp ESRI插件;

?  以及图像处理软件Photoshop,用来制作材质文件。

软件安装及配置步骤

(1)安装ArcGIS Desktop软件,如ArcInfo。(过程略)

(2)安装草图大师Goolge SketchUp 6 Pro软件。(过程略)

(3)安装SketchUp6 ESRI 插件

1.双击“SketchUp6ESRI.exe”,开始安装,

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.接受协议,点击“Next

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

3.第一个组件“GIS Plugin”,使用户能够在SketchUp中将模型以Multipatch要素的形式导入GDB。第二个组件“3D Analyst SketchUp 3D Symbol Support”,用户可以在ArcMap中将GIS数据导入SketchUp中。

上述两个组件的安装位置尽量不要改变,可能会导致在SketchUp中导出3D模型失败。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

4.执行组件安装

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

  

(4)ArcGIS环境中激活SketchUp6 ESRI插件

1.启动ArcMap界面,在工具栏上右键,单击“Customize

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.点击“Add from file”,找到SketchUp ArcGIS Plugin安装目录下的Features To SKP.dll

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

3.添加插件动态库后,在Toolbars项中可以找到SketchUp6的功能项。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

4.选中“SketchUp 6 Tools”组件以后,在桌面上会弹出组件的功能按钮。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

三维建模

一、建立个人Geodatabase

1.通过ArcCatalog,创建一个Personal Geodatabase

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.在Personal Geodatabase新建一个Feature class,命名,选择面要素,并为其指定一个投影坐标系,这里我们选择的是WGS 84 Web墨卡托投影。添加高程height字段。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

二、建模区域矢量化,通过插件导出至SketchUp

1.Arcmap中加载面图层及影像数据,根据影像将所需建模区域矢量化,并添加高程字段值height

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.浏览矢量化数据

ArcScene中浏览矢量化数据,右键属性/Extrusion选项卡/height字段显示。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

ArcGlobe中加入ArcGIS.COM的影像数据,右键属性/Globe Extrusion选项卡/height字段显示。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

3.完成后,选中需要建模的矢量数据,通过SketchUp ESRI插件将面图层导出为skp文件格式。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

系统将自动读出所选择矢量要素所在的FeatureClass,并且提供自动建模选项。

?  Elevate by field:依据属性字段,设置建筑物高程。

?  Extrude by field:依据属性字段,设置建筑物高度。

?  Name Group using:为导出数据,选择分组名称。

?  Launch SketchUp on completion:操作结束后,模型自动在SketchUp运行程序中打开。

?  Filename:指定导出模型文件的路径和名称。

3.单击确定,导出结束,弹出成功导出的提示对话框。导出后,原始的空间参考将被带入到SketchUp环境中。


ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

三、通过SketchUp建立三维场景模型

1.将导出模型加载到建模空间内。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.SketchUp中添加适当的纹理。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

需要特别注意的是,在SketchUp中贴纹理的标准单元是模型个体。

可以在选中状态下,右键/炸开,依次对每个面进行贴图。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

四、SketchUp导出生成Multipatch

该步骤需要谨慎对待,只有在SketchUp操作空间中被选中的模型,才能以独立Multipatch要素导出。未被选中的模型也会被导出成Multipatch要素导出,但是将作为一个整体要素存在于Multipatch图层中。

同时,SketchUp中支持模型组合功能,一旦模型被组合后,将丢失对应矢量数据源的ID值信息,这样就无法在后期添加原始矢量数据的属性信息。该问题后面会介绍。

1.SketchUp直接导出Multipatch

1.选择需要导出的模型,点击“文件/导出/3D模型”。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

2.在指定导出模型的保存路径时,需选择的文件类型为“ESRI MultiPatch(*.mdb)

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

3.单击导出后,系统将弹出导出高级选项

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

该对话框中主要有三个重要选项,介绍如下:

?  Store SketchUp Data in Feature:SketchUp模型,对应的存储于Multipatch模型要素中。

?  Use Selected Items Only:仅导出及转换被选中的模型。

?  Create:创建PGDB(.mdb)

4.单击“Create”,系统将弹出提示对话框,提示用户创建Multipatch图层(Feature Class),此时,我们可以看到,原始数据的空间参考确实带入到了SketchUp环境中,并且在整个过程中将一直延续该空间参考。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

如果需要增加额外字段,可单击“Add Field

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”
 

基本的字段类型,均可以在“Type”下拉菜单中找到(该插架对Type下拉菜单中的GeometryRaster两种字段类型支持不好,一旦选择,系统将会报错)。本例中,新建三个字段,如下图

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

5.单击“OK”后,字段添加完毕,返回到导出模型的初始窗口

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

6.再次点击“OK”,导出完成

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

2.ArcGIS+SketchUp导出Multipatch

1.通过ArcCatalog手工创建一个Personal Geodatabase,同时新建一个MultipatchFeature Class,如下图

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

2Multipatch feature class需要设置该图层的必要字段,需要添加的字段如下图所示:

序号

字段名称

字段类型

备注

1

SUSourceFeatureID

LongInteger

原始数据的唯一ID

2

SUSourceFeatureClass

Text

原始数据的图层名称

3

SUInstanceName

Text

SketchUp环境中的图层名称

4

SketchUpData

Blob

可保存SketchUp的模型字段

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

3.SketchUp导出skpMultipatch

选择需要导出的模型,点击“文件/导出/3D模型”。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

在指定导出模型的保存路径时,选择创建的Personal Geodatabase

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

单击导出后,系统将提示是否替换PGDB,单击“是”。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

在高级选项框中,选中已经建好的Multipatch Feature Class单击OK,导出完成。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

3.ArcGIS工具导入Multipatch

该方法导出的Multipatch

1.先用 ArcCatalog 建立一个 mdb 文件Personal Geodatabase

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

2.ArcToolboxImport 3D file工具导入sketchUpMultipatch

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

?  Import Files:选中选用导入的sketchUp

?  Output Multipatch Feature Class:选中Personal Geodatabase,将会新建Multipatch Feature Class

?  Spatial Reference:空间参考同sketchUp

3.单击OK,成功导入SketchUpMultipatch中,ArcCatalog中可直接浏览Multipatch要素。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览” 

 

五、Multipatch说明

1.在ArcMap中加载原始矢量数据和Multipatch数据,红色外边框的数据为Multipatch数据,下层为原始矢量图层

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

2.建立这两个数据的关联性,在目标层Multipatch层上右击,依次选择“Joins and Relates——Join”,弹出如下窗口

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

上图中,“2”项为属性图层,“1”和“3”项中选择属性值能够匹配的关联字段。点击“OK”后,查看关联结果如下

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

这一操作的目的在于通过两个图层的公共字段,为目标层关联属性表,但值得注意的是,这个属性的关联仅仅是关系上的链接,并没有对实际数据作出改动。

3.此时,需要在Multipatch图层上右击,选择“Data——Export Data”,将模型重新输出一次即可

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

单击OKMultipatch模型要素图层就创建完毕了。

4Multipatch模型的几个显示效果。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcCatalog3D View预览

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcScene展示

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

ArcGlobe展示

常见问题

SketchUp ESRI插件不可用

安装了ArcGISSketchUp的插件后,在c:\program files\ArcGIS目录中会生成一些文件,将它们都复制到ArcGIS的目录后,由ArcGIS导出SketchUp的功能才能正常使用。经测试,ArcGIS 9.3 也可以正常使用。

ArcGIS9.3桌面环境下建模过程

SketchUp6ESRI插架是针对ArcGIS9.2定制的。目前广大用户的ArcGIS版本几乎都是ArcGIS9.3或更高级版本。该插件与ArcGIS9.3软件的兼容性和数据的兼容性成为用户关注的焦点。

下面将介绍,该插件在ArcGIS9.29.3这两个版本中使用的不同。

?  ArcGIS9.3桌面创建的PGDB无法被ArcGIS9.2桌面支持。

因此,在SketchUp6ESRI插件无法正常创建PGDB。首先,需要通过ArcCatalog手工创建一个PGDB,同时新建一个MultipatchFeature Class,如下图

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

?  字段设置:在新建MultiPatch图层,需要设置该图层的必要字段,需要添加的字段如下图所示

序号

字段名称

字段类型

备注

1

SUSourceFeatureID

LongInteger

原始数据的唯一ID

2

SUSourceFeatureClass

Text

原始数据的图层名称

3

SUInstanceName

Text

SketchUp环境中的图层名称

4

SketchUpData

Blob

可保存SketchUp的模型字段

特别说明:如果原始数据中的属性需要加载到创建的的模型中去,SUSourceFeatureID字段的建立非常有必要。

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

?  纹理添加,要精确到面。

SketchUp中为模型添加纹理时,需要选中建筑物的面,逐一添加,否则在导出Multipatch数据使,纹理将不被继承。

?  空间参考

ArcGIS9.3环境下,通过SketchUp插件导出的Multipatch图层没有空间参考,需要手工添加空间参考(建议选择数据源空间参考)。否则,将无法加载到ArcGlobe的三维场景中.

ArcGIS导出SketchUp

导出SketchUp时,必须选中需要导出的矢量数据,导出时候,原始的空间参考将被带入到SketchUp环境中。

SketchUp没有导出成 mdb 格式的选择

如果使用的是 SketchUp Pro 7 的话,直接打开skp文件,再先导出命令的话,里面是没有导出成*.mdb格式的选择的。将SketchUp 插件安装目录C:\Program Files (x86)\Google\Google Sketchup 6\Exporters文件夹下Skp2MP.dllSkpWriter.dll拷贝到SketchUp Pro 7安装目录下C:\Program Files (x86)\Google\Google SketchUp 7\Exporters

SketchUp导出时Error: Microsoft jet数据库引擎找不到输入表或查询

SketchUp 导出mdb文件时,出现“Microsoft jet数据库引擎找不到输入表或查询的错误时,可以先用 ArcCatalog 建立一个 mdb 文件,再里面建立一个 Mulitpatch Feature Class的对象。然后在 SketchUp 中导出时直接选择这个文件和表名就可以导出模型了。

也可以通过ArcToolbox3D Analyst Tool/Conversion/From file/Import 3D file工具,将SketchUp导入到mdb中。

SketchUp导出时Error: Geometric Spatial Reference

 ArcMap 中的坐标系是 Unkown  WGS84 之类 Geographic Coordinate Systems 的时候,导入到 SketchUp 中编辑再导出时会出现 Error: Geometric Spatial Reference 的错误。经测试,只有使用 Projected Coordinate Systems 才能在 SketchUp 中正常导出。

SketchUp导出时Warning: SketchUp data could not be saved with feature

Personal GeodatabaseMultipatch feature class需要设置该图层的必要字段,需要添加的字段如下图所示:

序号

字段名称

字段类型

备注

1

SUSourceFeatureID

LongInteger

原始数据的唯一ID

2

SUSourceFeatureClass

Text

原始数据的图层名称

3

SUInstanceName

Text

SketchUp环境中的图层名称

4

SketchUpData

Blob

可保存SketchUp的模型字段

ArcGIS三维建模 - 牙牙Joyfulteethヤヤ - “览”

  评论这张
 
阅读(3676)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018