1、1)使用ArcGIS桌面,即ArcMap,加载矢量数据; (2)在ArcMap环境中,利用SketchUp插件工具,将所需要建模的区域导入SketchUp中。 (3)在SketchUp创建模型。 (4)在SketchUp中将模型转成ArcGIS的Multipatch模型要素文件并保存于Personal GeoDatabase(后面统称为PGDB)中。 软件环境 ? ArcGIS桌面产品和服务器产品; ? SketchUP 6专业版三维建模软件(建议安装版本6 pro); ? SketchUp ESRI插件; ? 以及图像处理软件Photoshop,用来制作材质文件
2、 软件安装及配置步骤 (1)安装ArcGIS Desktop软件,如ArcInfo。(过程略) (2)安装草图大师Goolge SketchUp 6 Pro软件。(过程略) (3)安装SketchUp6 ESRI 插件 1.双击“SketchUp6ESRI.exe”,开始安装, 2.接受协议,点击“Next” 3.第一个组件“GIS Plugin”,使用户能够在SketchUp中将模型以Multipatch要素的形式导入GDB。第二个组件“3D Analyst SketchUp 3D Symbol Support”,用户可以在ArcMap中将GIS数据导入Sketc
3、hUp中。 上述两个组件的安装位置尽量不要改变,可能会导致在SketchUp中导出3D模型失败。 4.执行组件安装 (4)在ArcGIS环境中激活SketchUp6 ESRI插件 1.启动ArcMap界面,在工具栏上右键,单击“Customize” 2.点击“Add from file”,找到SketchUp ArcGIS Plugin安装目录下的Features To SKP.dll 3.添加插件动态库后,在Toolbars项中可以找到SketchUp6的功能项。 4.选中“SketchUp 6 Tools”组件以后,在桌面上会弹出组件的功能按钮。
4、 三维建模 一、建立个人Geodatabase 1.通过ArcCatalog,创建一个Personal Geodatabase。 2.在Personal Geodatabase新建一个Feature class,命名,选择面要素,并为其指定一个投影坐标系,这里我们选择的是WGS 84 Web墨卡托投影。添加高程height字段。 二、建模区域矢量化,通过插件导出至SketchUp 1.Arcmap中加载面图层及影像数据,根据影像将所需建模区域矢量化,并添加高程字段值height。 2.浏览矢量化数据 在ArcScene中浏览矢量化数据,右
5、键属性/Extrusion选项卡/选height字段显示。 在ArcGlobe中加入ArcGIS.COM的影像数据,右键属性/Globe Extrusion选项卡/选height字段显示。 3.完成后,选中需要建模的矢量数据,通过SketchUp ESRI插件将面图层导出为skp文件格式。 系统将自动读出所选择矢量要素所在的FeatureClass,并且提供自动建模选项。 ? Elevate by field:依据属性字段,设置建筑物高程。 ? Extrude by field:依据属性字段,设置建筑物高度。 ? Name Group using:为导出数据,选择
6、分组名称。 ? Launch SketchUp on completion:操作结束后,模型自动在SketchUp运行程序中打开。 ? Filename:指定导出模型文件的路径和名称。 3.单击确定,导出结束,弹出成功导出的提示对话框。导出后,原始的空间参考将被带入到SketchUp环境中。 hy101 hy001 hy102 hy015 hy109 hy110 hy111 三、通过SketchUp建立三维场景模型 1.将导出模型加载到建模空间内
7、 2.在SketchUp中添加适当的纹理。 需要特别注意的是,在SketchUp中贴纹理的标准单元是模型个体。 可以在选中状态下,右键/炸开,依次对每个面进行贴图。 四、SketchUp导出生成Multipatch。 该步骤需要谨慎对待,只有在SketchUp操作空间中被选中的模型,才能以独立Multipatch要素导出。未被选中的模型也会被导出成Multipatch要素导出,但是将作为一个整体要素存在于Multipatch图层中。 同时,SketchUp中支持模型组合功能,一旦模型被组合后,将丢失对应矢量数据源的ID值信息,这样就无法在后期添加原始矢量数据的
8、属性信息。该问题后面会介绍。 1.SketchUp直接导出Multipatch 1.选择需要导出的模型,点击“文件/导出/3D模型”。 2.在指定导出模型的保存路径时,需选择的文件类型为“ESRI MultiPatch(*.mdb)” 3.单击导出后,系统将弹出导出高级选项 该对话框中主要有三个重要选项,介绍如下: ? “Store SketchUp Data in Feature”:将SketchUp模型,对应的存储于Multipatch模型要素中。 ? “Use Selected Items Only”:仅导出及转换被选中的模型。 ? “Create”
9、创建PGDB(.mdb)。 4.单击“Create”,系统将弹出提示对话框,提示用户创建Multipatch图层(Feature Class),此时,我们可以看到,原始数据的空间参考确实带入到了SketchUp环境中,并且在整个过程中将一直延续该空间参考。 如果需要增加额外字段,可单击“Add Field” 基本的字段类型,均可以在“Type”下拉菜单中找到(该插架对Type下拉菜单中的Geometry和Raster两种字段类型支持不好,一旦选择,系统将会报错)。本例中,新建三个字段,如下图 5.单击“OK”后,字段添加完毕,返回到导出模型的初始窗口 6.再次点击“
10、OK”,导出完成 2.ArcGIS+SketchUp导出Multipatch 1.通过ArcCatalog手工创建一个Personal Geodatabase,同时新建一个Multipatch的Feature Class,如下图 2.Multipatch feature class需要设置该图层的必要字段,需要添加的字段如下图所示: 序号 字段名称 字段类型 备注 1 SUSourceFeatureID LongInteger 原始数据的唯一ID值 2 SUSourceFeatureClass Text 原始数据的图层名称 3 SUInst
11、anceName Text 在SketchUp环境中的图层名称 4 SketchUpData Blob 可保存SketchUp的模型字段 3.SketchUp导出skp到Multipatch。 选择需要导出的模型,点击“文件/导出/3D模型”。 在指定导出模型的保存路径时,选择创建的Personal Geodatabase” 单击导出后,系统将提示是否替换PGDB,单击“是”。 在高级选项框中,选中已经建好的Multipatch Feature Class单击OK,导出完成。 3.ArcGIS工具导入Multipatch 该方法导出的Mul
12、tipatch, 1.先用 ArcCatalog 建立一个 mdb 文件Personal Geodatabase 2.在ArcToolbox中Import 3D file工具导入sketchUp到Multipatch。 ? Import Files:选中选用导入的sketchUp。 ? Output Multipatch Feature Class:选中Personal Geodatabase,将会新建Multipatch Feature Class。 ? Spatial Reference:空间参考同sketchUp。 3.单击OK,成功导入SketchUp到
13、Multipatch中,在ArcCatalog中可直接浏览Multipatch要素。 五、Multipatch说明 1.在ArcMap中加载原始矢量数据和Multipatch数据,红色外边框的数据为Multipatch数据,下层为原始矢量图层 2.建立这两个数据的关联性,在目标层Multipatch层上右击,依次选择“Joins and Relates——Join”,弹出如下窗口 上图中,“2”项为属性图层,“1”和“3”项中选择属性值能够匹配的关联字段。点击“OK”后,
14、查看关联结果如下 这一操作的目的在于通过两个图层的公共字段,为目标层关联属性表,但值得注意的是,这个属性的关联仅仅是关系上的链接,并没有对实际数据作出改动。 3.此时,需要在Multipatch图层上右击,选择“Data——Export Data”,将模型重新输出一次即可 单击OK,Multipatch模型要素图层就创建完毕了。 4.Multipatch模型的几个显示效果。 ArcCatalog的3D View预览 ArcScene展示 ArcGlobe展示 常见问题 SketchUp ESRI插件不可用 安装了ArcGIS和SketchUp的插
15、件后,在c:\program files\ArcGIS目录中会生成一些文件,将它们都复制到ArcGIS的目录后,由ArcGIS导出SketchUp的功能才能正常使用。经测试,ArcGIS 9.3 也可以正常使用。 ArcGIS9.3桌面环境下建模过程 SketchUp6ESRI插架是针对ArcGIS9.2定制的。目前广大用户的ArcGIS版本几乎都是ArcGIS9.3或更高级版本。该插件与ArcGIS9.3软件的兼容性和数据的兼容性成为用户关注的焦点。 下面将介绍,该插件在ArcGIS9.2与9.3这两个版本中使用的不同。 ? ArcGIS9.3桌面创建的PGDB无法被ArcGI
16、S9.2桌面支持。 因此,在SketchUp6ESRI插件无法正常创建PGDB。首先,需要通过ArcCatalog手工创建一个PGDB,同时新建一个Multipatch的Feature Class,如下图 ? 字段设置:在新建MultiPatch图层,需要设置该图层的必要字段,需要添加的字段如下图所示 序号 字段名称 字段类型 备注 1 SUSourceFeatureID LongInteger 原始数据的唯一ID值 2 SUSourceFeatureClass Text 原始数据的图层名称 3 SUInstanceName Text 在SketchU
17、p环境中的图层名称 4 SketchUpData Blob 可保存SketchUp的模型字段 特别说明:如果原始数据中的属性需要加载到创建的的模型中去,SUSourceFeatureID字段的建立非常有必要。 ? 纹理添加,要精确到面。 在SketchUp中为模型添加纹理时,需要选中建筑物的面,逐一添加,否则在导出Multipatch数据使,纹理将不被继承。 ? 空间参考 ArcGIS9.3环境下,通过SketchUp插件导出的Multipatch图层没有空间参考,需要手工添加空间参考(建议选择数据源空间参考)。否则,将无法加载到ArcGlobe的三维场景中.
18、ArcGIS导出SketchUp 导出SketchUp时,必须选中需要导出的矢量数据,导出时候,原始的空间参考将被带入到SketchUp环境中。 SketchUp没有导出成 mdb 格式的选择 如果使用的是 SketchUp Pro 7 的话,直接打开skp文件,再先导出命令的话,里面是没有导出成*.mdb格式的选择的。将SketchUp 插件安装目录C:\Program Files (x86)\Google\Google Sketchup 6\Exporters文件夹下Skp2MP.dll和SkpWriter.dll拷贝到SketchUp Pro 7安装目录下C:\Program
19、Files (x86)\Google\Google SketchUp 7\Exporters。 SketchUp导出时Error: Microsoft jet数据库引擎找不到输入表或查询 SketchUp 导出mdb文件时,出现“Microsoft jet数据库引擎找不到输入表或查询”的错误时,可以先用 ArcCatalog 建立一个 mdb 文件,再里面建立一个 Mulitpatch Feature Class的对象。然后在 SketchUp 中导出时直接选择这个文件和表名就可以导出模型了。 也可以通过ArcToolbox中3D Analyst Tool/Conversion/Fr
20、om 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导出时War
21、ning: SketchUp data could not be saved with feature 在Personal Geodatabase中Multipatch feature class需要设置该图层的必要字段,需要添加的字段如下图所示: 序号 字段名称 字段类型 备注 1 SUSourceFeatureID LongInteger 原始数据的唯一ID值 2 SUSourceFeatureClass Text 原始数据的图层名称 3 SUInstanceName Text 在SketchUp环境中的图层名称 4 SketchUpData Blob 可保存SketchUp的模型字段






