利用Sketchup和ArcGIS进行建模1.双击“SketchUp6ESRI.exe”,开始安装,2.接受协议,点击“Next”3.第一个组件“GISPlugin”,使用户能够在SketchUp中将模型以Multipatch要素的形式导入GDB。第二个组件“3DAnalystSketchUp3DSymbolSupport”,用户可以在ArcMap中将GIS数据导入SketchUp中。上述两个组件的安装位置尽量不要改变,可能会导致在SketchUp中导出3D模型失败。4.执行组件安装(4)在ArcGIS环境中激活SketchUp6ESRI插件1.启动ArcMap界面,在工具栏上右键,单击“Customize”2.点击“Addfromfile”,找到SketchUpArcGISPlugin安装目录下的FeaturesToSKP.dll3.添加插件动态库后,在Toolbars项中可以找到SketchUp6的功能项。4.选中“SketchUp6Tools”组件以后,在桌面上会弹出组件的功能按钮。三维建模一、建立个人Geodatabase1.通过ArcCatalog,创建一个PersonalGeodatabase。2.在PersonalGeodatabase新建一个Featureclass,命名,选择面要素,并为其指定一个投影坐标系,这里我们选择的是WGS84Web墨卡托投影。添加高程height字段。二、建模区域矢量化,通过插件导出至SketchUp1.Arcmap中加载面图层及影像数据,根据影像将所需建模区域矢量化,并添加高程字段值height。2.浏览矢量化数据在ArcScene中浏览矢量化数据,右键属性/Extrusion选项卡/选height字段显示。在ArcGlobe中加入ArcGIS.COM的影像数据,右键属性/GlobeExtrusion选项卡/选height字段显示。3.完成后,选中需要建模的矢量数据,通过SketchUpESRI插件将面图层导出为skp文件格式。系统将自动读出所选择矢量要素所在的FeatureClass,并且提供自动建模选项。Elevatebyfield:依据属性字段,设置建筑物高程。Extrudebyfield:依据属性字段,设置建筑物高度。NameGroupusing:为导出数据,选择分组名称。LaunchSketchUponcompletion:操作结束后,模型自动在SketchUp运行程序中打开。Filename:指定导出模型文件的路径和名称。3.单击确定,导出结束,弹出成功导出的提示对话框。导出后,原始的空间参考将被带入到SketchUp环境中。三、通过SketchUp建立三维场景模型1.将导出模型加载到建模空间内。2.在SketchUp中添加适当的纹理。需要特别注意的是,在SketchUp中贴纹理的标准单元是模型个体。可以在选中状态下,右键/炸开,依次对每个面进行贴图。四、SketchUp导出生成Multipatch。该步骤需要谨慎对待,只有在SketchUp操作空间中被选中的模型,才能以独立Multipatch要素导出。未被选中的模型也会被导出成Multipatch要素导出,但是将作为一个整体要素存在于Multipatch图层中。同时,SketchUp中支持模型组合功能,一旦模型被组合后,将丢失对应矢量数据源的ID值信息,这样就无法在后期添加原始矢量数据的属性信息。该问题后面会介绍。1.SketchUp直接导出Multipatch1.选择需要导出的模型,点击“文件/导出/3D模型”。2.在指定导出模型的保存路径时,需选择的文件类型为“ESRIMultiPatch(*.mdb)”3.单击导出后,系统将弹出导出高级选项该对话框中主要有三个重要选项,介绍如下:?“StoreSketchUpDatainFeature”:将SketchUp模型,对应的存储于Multipatch模型要素中。?“UseSelectedItemsOnly”:仅导出及转换被选中的模型。?“Create”:创建PGDB(.mdb)。4.单击“Create”,系统将弹出提示对话框,提示用户创建Multipatch图层(FeatureClass),此时,我们可以看到,原始数据的空间参考确实带入到了SketchUp环境中,并且在整个过程中将一直延续该空间参考。如果需要增加额外字段,可单击“AddField”基本的字段类型,均可以在“Type”下拉菜单中找到(该插架对Type下拉菜单中的Geometry和Raster两种字段类型支持不好,一旦选择,系统将会报错)。本例中,新建三个字段,如下图5.单击“OK”后,字段添加完毕,返回到导出模型的初始窗口6.再次点击“OK”,导出完成2.ArcGIS+SketchUp导出Multipatch1.通过ArcCatalog手工创建一个PersonalGeodatabase,同时新建一个Multipatch的FeatureClass,如下图2.Multipatchfeatureclass需要设置该图层的必要字段,需要添加的字段如下图所示:序号字段名称字段类型备注1SUSourceFeatureIDLongInteger原始数据的唯一ID值2SUSourceFeatureClassText原始数据的图层名称3SUInstanceNameText在SketchUp环境中的图层名称4SketchUpDataBlob可保存SketchUp的模型字段3.SketchUp导出skp到Multipatch。选择需要导出的模型,点击“文件/导出/3D模型”。在指定导出模型的保存路径时,选择创建的PersonalGeodatabase”单击导出后,系统将提示是否替换PGDB,单击“是”。在高级选项框中,选中已经建好的MultipatchFeatureClass单击OK,导出完成。3.ArcGIS工具导入Multipatch该方法导出的Multipatch,1.先用ArcCatalog建立一个mdb文件PersonalGeodatabase2.在ArcToolbox中Import3Dfile工具导入sketchUp到Multipatch。?ImportFiles:选中选用导入的sketchUp。?OutputMultipatchFeatureClass:选中PersonalGeodatabase,将会新建MultipatchFeatureClass。?SpatialReference:空间参考同sketchUp。3.单击OK,成功导入SketchUp到Multipatch中,在ArcCatalog中可直接浏览Multipatch要素。五、Multipatch说明1.在ArcMap中加载原始矢量数据和Multipatch数据,红色外边框的数据为Multipatch数据,下层为原始矢量图层2.建立这两个数据的关联性,在目标层Multipatch层上右击,依次选择“JoinsandRelates——Join”,弹出如下窗口上图中,“2”项为属性图层,“1”和“3”项中选择属性值能够匹配的关联字段。点击“OK”后,查看关联结果如下这一操作的目的在于通过两个图层的公共字段,为目标层关联属性表,但值得注意的是,这个属性的关联仅仅是关系上的链接,并没有对实际数据作出改动。3.此时,需要在Multipatch图层上右击,选择“Data——ExportData”,将模型重新输出一次即可单击OK,Multipatch模型要素图层就创建完毕了。4.Multipatch模型的几个显示效果。ArcCatalog的3DView预览ArcScene展示ArcGlobe展示常见问题SketchUpESRI插件不可用安装了ArcGIS和SketchUp的插件后,在c:\programfiles\ArcGIS目录中会生成一些文件,将它们都复制到ArcGIS的目录后,由ArcGIS导出SketchUp的功能才能正常使用。经测试,ArcGIS9.3也可以正常使用。ArcGIS9.3桌面环境下建模过程SketchUp6ESRI插架是针对ArcGIS9.2定制的。目前广大用户的ArcGIS版本几乎都是ArcGIS9.3或更高级版本。该插件与ArcGIS9.3软件的兼容性和数据的兼容性成为用户关注的焦点。下面将介绍,该插件在ArcGIS9.2与9.3这两个版本中使用的不同。?ArcGIS9.3桌面创建的PGDB无法被ArcGIS9.2桌面支持。因此,在SketchUp6ESRI插件无法正常创建PGDB。首先,需要通过ArcCatalog手工创建一个PGDB,同时新建一个Multipatch的FeatureClass,如下图?字段设置:在新建MultiPatch图层,需要设置该图层的必要字段,需要添加的字段如下图所示序号字段名称字段类型备注1SUSourceFeatureIDLongInteger原始数据的唯一ID值2SUSourceFeatureClassText原始数据的图层名称3SUInstanceNameText在SketchUp环境中的图层名称4SketchUpDataBlob可保存SketchUp的模型字段特别说明:如果原始数据中的属性需要加载到创建的的模型中去,SUSourceFeatureID字段的建立非常有必要。?纹理添加,要精确到面。在SketchUp中为模型添加纹理时,需要选中建筑物的面,逐一添加,否则在导出Multipatch数据使,纹理将不被继承。?空间参考ArcGIS9.3环境下,通过SketchUp插件导出的Multipatch图层没有空间参考,需要手工添加空间参考(建议选择数据源空间参考)。否则,将无法加载到ArcGlobe的三维场景中.ArcGIS导出SketchUp导出SketchUp时,必须选中需要导出的矢量数据,导出时候,原始的空间参考将被带入到SketchUp环境中。SketchUp没有导出成mdb格式的选择如果使用的是SketchUpPro7的话,直接打开skp文件,再先导出命令的话,里面是没有导出成*.mdb格式的选择的。将SketchUp插件安装目录C:\ProgramFiles(x86)\Google\GoogleSketchup6\Exporters文件夹下Skp2MP.dll和SkpWriter.dll拷贝到SketchUpPro7安装目录下C:\ProgramFiles(x86)\Google\GoogleSketchUp7\Exporters。SketchUp导出时Error:Microsoftjet数据库引擎找不到输入表或查询SketchUp导出mdb文件时,出现“Microsoftjet数据库引擎找不到输入表或查询”的错误时,可以先用ArcCatalog建立一个mdb文件,再里面建立一个MulitpatchFeatureClass的对象。然后在SketchUp中导出时直接选择这个文件和表名就可以导出模型了。也可以通过ArcToolbox中3DAnalystTool/Conversion/Fromfile/Import3Dfile工具,将SketchUp导入到mdb中。SketchUp导出时Error:GeometricSpatialReference在ArcMap中的坐标系是Unkown或WGS84之类GeographicCoordinateSystems的时候,导入到SketchUp中编辑再导出时会出现Error:GeometricSpatialReference的错误。经测试,只有使用ProjectedCoordinateSystems才能在SketchUp中正常导出。SketchUp导出时Warning:SketchUpdatacouldnotbesavedwithfeature在PersonalGeodatabase中Multipatchfeatureclass需要设置该图层的必要字段,需要添加的字段如下图所示:序号字段名称字段类型备注1SUSourceFeatureID