Sketchup+ArcGIS三维建模与管理
一.软件安装及其说明
1.需要安装的软件及其安装:
这份报告主要涉及到的有三个需要安装的软件ArcGIS9.3(或9.2) 、Sketchup6.0和SketchUp6 ESRI 插件。
ArcGIS是本专业大家耳熟能详的重要软件,这里就不再介绍,主要介绍一下Google Sketchup软件,它是一套直接面向设计方案创作过程的设计工具,其创作过程不仅能够充分表达设计师的思想而且完全满足与客户即时交流的需要,它使得设计师可以直接在电脑上进行十分直观的构思,是三维建筑设计方案创作的优秀工具。
现在ArcGIS已经出到了10而sketchup已经出现了8.0版本,但是由于插件只有sketchup6版本的,这一版本的插件和ArcGIS9.2配合是最好的,所以可以的情况下尽可能安装ArcGIS9.2,这样会省去很多不必要的麻烦。因为我的电脑操作系统是win8专业版,此版本不支持9.2版本,所以我只能安装9.3.
ArcGIS和Sketchup的安装就不再赘述了,SketchUp6 ESRI插件安装有一些关键步骤需要注意!如图所示的安装界面:
其中,第一个组件“GIS Plugin”,使用户能够在SketchUp中将模型以Multipatch要素的形式导入GDB。 第二个组件 “ 3D Analyst SketchUp 3D Symbol Support ” ,用户可以在ArcMap中将GIS数据导入SketchUp中。所以GIS Plugin安装在Sketchup的安装目录下,3D Analyst SketchUp 3D Symbol Support 安装在ArcGIS的安装目录下,不能安装错路径,否则Sketchup和ArcGIS是无法连接起来的。
2.在ArcGIS环境中激活SketchUp6 ESRI插件
插件安装完成后,sketchup不用再进行任何设置就已经可以导出mdb文件,但是ArcGIS是要设置的。我们在三维建模前应该选择在哪里打地基,这项工作可以由ArcMap完成,所以我们需要在ArcMap中设置以导出数据到Sketchup中。设置很简单,在工具栏处点击右键单击“Customize” ,如下图:
点击“Add from file”,加载SketchUp插件安装后,为ArcGIS产品添加的动态库文件“FeaturesToSkp.dll” :
添加插件动态库后,在Toolbars项中可以找到SketchUp6的功能项,选中“SketchUp 6 Tools”组件以后点击关闭,就会出现如下图标:
另外,为了使用方便我还设置了快捷键,点击Customize界面的Keyboard(中间下方)就可以设置了。
至此,ArcGIS就可以和Sketchup进行联合的建模与管理了。
二.Sketchup与ArcGIS联合三维建模流程
Sketchup是一款三维建模能力十分强大且操作简便的软件,ArcGIS又是一款管理数据和空间分析的王牌软件,但其模型构建和编辑能力并不强,把两者结合起来正好可以优势互补,在一个数字化的建筑或规划项目中,这样的软件组合有利于不同工作人员的分工,建筑设计师只需要用他们熟悉的Sketchup建模即可,而数据管理与分析人员可以通过ArcGIS进行各种空间分析和数据管理。
将Sketchup和ArcGIS结合的流程如下:
(1)使用ArcGIS桌面,即ArcMap,加载矢量数据;
(2)在ArcMap环境中,利用SketchUp插件工具,将所需要建模的区域导入SketchUp中。
(3)在SketchUp创建模型。
(4)在SketchUp中将模型转成ArcGIS的Multipatch模型要素文件并保存于Personal GeoDatabase中。
二.利用ArcGIS与SKetchup结合样例
1.数据来源
在ArcMap中矢量格式的数据才可以导出到Sketchup中,所以我们获得的数据要先进行转化,成为ESRI支持的Shapefile或GeoDatabase。一般栅格数据要进行矢量化,对于其他类型的矢量数据(如:CAD矢量文件,dwf格式数据),虽然ArcMap可以加载,但是它们往往不含有空间坐标,所以要在ArcCatalog中新建GeoDatabase或shp文件,导入这些数据,然后再添加空间参考。新建方法很简单,在目标目录下新建一个Personal GeoDatabase,按照ArcCatalog给的提示,一步步加载原始数据和空间参考。生成完成后,就可以用ArcMap加载,导入Sketchup了。
2.从ArcMap中导出数据
首先在ArcMap中加载想要建模的矢量数据,就是上面所说的从GeoDatabase或Shp文件,同时应该给它添加高程属性(Height) 如下图:
并给部分Polygon的Height属性添加属性值:
选中要导出的要素,按ctrl +s(我自己设置的快捷键)弹出如下对话框:
系统将自动读出所选择矢量要素所在的FeatureClass,并且提供自动建模选项。Elevate by field:依据属性字段,设置建筑物高程。 Extrude by field:依据属性字段,设置建筑物高度,即对其做拉伸。 Name Groupusing:为导出数据,选择分组名称。本例中勾选了Extrude by field
导出至Sketchup的结果如下:
其中突出的部分为在导出前给Polygon的Height属性赋予高度值的,然后勾选Extrude by field的结果,接下来设计师就可以在Sketchup中对它进行建模了。
3.Sketchup建模结果导出MultiPatch
用sketchup建模虽然简单易学,但是有一些绘图和设计的基本功才能设计出美观大方的模型,我在这方面就没什么天分了,所以就简单对这个模型做一些添加修改就可以了。
首先,想要对导出来的模型直接编辑是不行的,因为导入的数据都是以群组为单位存在的。要进行对面的操作,要选中一个群组,然后对它进行炸开操作,否则不能对面进行各种建模(画图,伸展等):
然后就可以对群组中的单个面进行编辑了。
编辑结束后,一定要对编辑结束的模型做创建群组操作,否则无法被导出,原因在于在su里面新建的建筑或其他地物,都是由面组成的,它们不是一个整体:
另外,本例中我并没有进行特别多编辑,仅是添加了两栋建筑物。
接下来就要把这些模型导出了,这又是关键的一步,因为稍有不慎,导出的结果就会不正确。只有在SketchUp操作空间中被选中的模型,才能以独立Multipatch要素导出。未被选中的模型也会被导出成Multipatch要素导出,但是将作为一个整体要素存在于Multipatch图层中。
导出的步骤应该如下:
首先,必须新建一个GeoDatabase,里面新建MultiPatch用来存储导出的数据。新建过程中一定要添加如下字段,原因在下一节解释:
序号 |
字段名称 |
字段类型 |
备注 |
1 |
SUSourceFeatureID |
LongInteger |
原始数据的唯一ID值 |
2 |
SUSourceFeatureClass |
Text |
原始数据的图层名称 |
3 |
SUInstanceName |
Text |
在SketchUp环境中的图层名称 |
4 |
SketchUpData |
Blob |
可保存SketchUp的模型字段 |
接下来,将模型导入这个新建的MultiPatch中:
点击确定后出现:
最后,选中刚才手动新建的MultiPatch,出现以下对话框表面成功了:
接下来就可以在ArcScene里面查看了,并且地物都是可以单独选中的:
导出后并没有结束,把从ArcMap中导出的数据也加入ArcScene,然后对它们做空间连接操作,让原图中高程、周长等属性也出现在新建的MultiPatch中:
四.常见错误及处理方法
1.不新建一个Geodatabase或新建了没有添加MultiPatch的情况下,从Sketchup中直接导出mdb会出现以下错误:
这是版本问题导致的,开头的时候就已经说过,Sketchup6和ArcGIS9.2的契合是最好的,所以如果用户使用的是ArcGIS9.2就不会出现这种问题。出现这种问题也是可以解决的,那就是新建Geodatabase并添加MultiPatch。
2.导出Multipatch时会出现以下的提示:
同样,在ArcGIS9.2的情况下直接导出一般不会出现这种问题。出现这种情况后,虽然能够导出,但是建模的一些信息会丢失,解决方案就是在新建Multipatch时要添加以下这些属性:
序号 |
字段名称 |
字段类型 |
备注 |
1 |
SUSourceFeatureID |
LongInteger |
原始数据的唯一ID值 |
2 |
SUSourceFeatureClass |
Text |
原始数据的图层名称 |
3 |
SUInstanceName |
Text |
在SketchUp环境中的图层名称 |
4 |
SketchUpData |
Blob |
可保存SketchUp的模型字段 |
3.在Sketchup中选中导出有时会出现以下的问题:
这表示编辑完后的建筑没有创建群组,导出会导致编辑部分丢失。解决方案就是一定要在导出前保证待导出的模型都是群组。
Sketchup+ArcGIS三维建模与管理的更多相关文章
- 规划设计系列3 | SketchUp+实景三维,方案现状一起看
将SketchUp中建立的模型与实景三维模型进行集成,既可以充分发挥实景三维在地理空间记录方面的优势,又可以去除SketchUp在周边环境设计上的不足. 同时借助Wish3D Earth丰富的场景浏览 ...
- 基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发
基于点云的3ds Max快速精细三维建模方法及系统的制作方法[技术领域][0001]本发明涉及数字城市三维建模领域,尤其涉及一种基于点云的3d ...
- “2014年CityEngine三维建模与设计精英培训班”——全国巡回举办
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJjZ2lzX2FsbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- 在Qt中使用AnyCAD三维建模控件
AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...
- TurboCAD Pro for Mac(二维绘图和三维建模工具)破解版安装
1.软件简介 TurboCAD Pro 是 macOS 系统上一款二维绘图和三维建模工具,具备强大的绘图和设计特性,加上强大的创建复杂的三维模型的工具,三维 OpenGL 的渲染,和超过 11, ...
- 【Microstation】三维建模基础及软件入门到精通实验教程目录
@ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 MicroStation是一款非常不错的二维和三维设计软件,由奔特力(Bentley)工程软件系统有限公司开发的一款软件.在C ...
- 三维建模:方法之CSG与B-Rep比较
源自于百度百科:实体造型--- 三维模型特征表示方法: 计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型.表面模型和实体模型.如果按照表示物体的方法进行分类,实体模型基本 ...
- Stages — 研发过程可视化建模和管理平台
Stages 是德国Method park公司的产品,用于帮助企业定义.管理.发布.控制.优化其研发过程,同时使其研发过程符合CMMI.ASPICE.ISO26262等标准.Stages的核心理念是把 ...
- 人脸三维建模A Morphable Model For The Synthesis Of 3D Faces(三维人脸合成的变形模型)
Abstract摘要 In this paper, a new technique for modeling textured 3D faces is introduced. 3D faces can ...
随机推荐
- JavaScript判断鼠标滑轮是向下还是向上滚动
我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...
- nginx日志分析手机使用频次
__author__ = 'similarface' from collections import defaultdict import glob ip = r"?P<ip>[ ...
- 主成分分析(PCA)原理及R语言实现
原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及 ...
- semantic-ui使用gulp执行build-css报错
1.执行gulp build-css报错 [09:40:49] Starting 'build-css'... Building CSS Potentially unhandled rejection ...
- 【转】 Linux进程间通信
一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别 ...
- android上传文件到wamp服务器
1.php server(wamp)部分 建立unload.php页面代码如下 <?php move_uploaded_file($_FILES["file1"][" ...
- 怎么在Form1调用Form2中的成员?
第一种情况,form1和form2有关系,也就可以说成是form1里面有个事件,通过这个事件来打开form2在这个情况下这么写form2 f2 = new form2(这里写form1中的变量值)f2 ...
- 简单的Hibernate入门简介
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...
- NodeJS几个值得学习的开源框架
1.Primus Primus,是Transformer的创造者,并且也被称为通用包装器实时框架.Primus里包含了大量的用于Node.js的实时框架,并 且它们都拥有各种不同的实时功能.此外,Pr ...
- $(document).ready(function (){}) , $(function(){}) , $().ready(function(){}) , jquery(function(){}) , (function($){})(jquery)有什么区别
$(document).ready(function(){...}) , $().ready(function(){...}) , $(function(){...}) , jquery(funct ...