FME高级培训手册-6.GIS与CAD数据互操作.pdf
《FME高级培训手册-6.GIS与CAD数据互操作.pdf》由会员分享,可在线阅读,更多相关《FME高级培训手册-6.GIS与CAD数据互操作.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、FME 高级培训手册1/39 目录引言 .2培训数据.2在 CAD文件中存储属性.3在一个外部的表中存储属性.6存储属性为注记.10 创建面标注(Create Area Labels).10 从面标注中提取(Extract from Area Labels).19 创建线性标注.28 从线性标注中提取.30 用符号分类属性.33 创建符号.34 从符号中提取属性.38 结束 .39 FME 高级培训手册2/39 引言本课程涵盖了将GIS数据转化为 CAD 数据或 CAD 转化为 GIS的方法,并强调了传统的CAD 绘图上,为属性存储的所作的努力。我们将探讨如何将GIS属性存储为 CAD 属性,
2、连接到外部表、注记及符号体系和如何将提取的数据在不丢失信息的情况下写回地理信息系统(GIS)中。专题讨论会的前提条件参加者都应该对FME Desktop、创作工作空间和更常见的FME 转换器比较了解。培训数据我们将使用以下FME 培训的数据集:?DataProperties*.mif?DataRoadsMajorRoads.dgn?DataRoadsRoadLine.mif FME 高级培训手册3/39 在 CAD 文件中存储属性AutoCAD Map3d 和较新版本的Bentley MicroStation中,都允许在要素自身中存储属性。用这种方法来存储GIS属性是非常简单的。1、启动 Wo
3、rkbench,打开工作空间对话框来创建一个新的工作空间。2、选择 MapInfo MIF/MID作为源格式,选择 DataPropertiesparcel_K24.mif作为源数据集。2、选择 Autodesk AutoCAD Map 3D Object Data作为目标格式,点击OK 来创建工作空间。你的工作空间应该看起来像这个样子:4、点击绿色播放键来进行转换5、设置目标文件为:OutputworkshopsCADparcels_object.dwg。FME 高级培训手册4/39 6、一旦转换完成,在FEM Viewer中设置文件格式为Autodesk AutoCAD Map 3D Ob
4、ject Data,来打开源文件,如下所示:你会注意到,所有的属性都赋给了AutoCAD 数据。FME 高级培训手册5/39 7、关闭 FME Viewer,打开 Bentley View。在文件打开对话框中,选择parcels_object.dwg 文件。点击菜单上的 i 按钮来打开属性对话框,点击一个质心来查看它的属性。注意,地块的属性不能被看到。这个对象数据只有在AutoCAD Map3d或 FME Viewer中才是可见的,这就限制了它的应用。AutoCAD也有一个选项来存储数据作为扩展实体数据(Extended Entity Data)。这些属性可以在正式的AutoCAD中读出,虽然
5、 AutoCAD没有提供一个接口来做这些。Safe公司也提供了一个免费的 VBA 宏允许你添加或编辑扩展实体数据,这个宏可以在下面网址上下载:http:/ tributes_in_Autodesk_Map.FME 高级培训手册6/39 在一个外部的表中存储属性MicroStation 也允许在一个外部的表中存储属性,通过igds_linkage格式属性连接到几何要素上。同时,手工的创建一个连接是可能的,最简单的方法是使用FME 的Bentley Geographics 读写器。通过 Geographics writer 创建的连接和表可以实际应用在MicroStation 中,甚至在没有附加地
6、理信息的情况下。1、启动 Workbench,打开工作空间对话框来创建一个新的工作空间。2、选择 MapInfo MIF/MID 作为源格式,选择DataPropertiesparcel_K24.mif 作为源数据集。3、选择 Bentley MicroStation GeoGraphics 作为目标格式,点击 Settings按钮。设置 Database Type 为MDB,点击 Access MDB File 选项后面的,按钮。设置输出目标数据的位置为OutputworkshopsCADparcels_geo.mdb。保留所有的其它设置为默认值,点击OK,退出这个对话框。点击OK关闭 Ne
7、w Workspace对话框,并创建了一个工作空间。4、点击运行按钮,开始转换。当FME 为这个 MicroStation 文件请求一个目标文件时,设置这个文件为 OutputworkshopsCADparcels_geo.dgn。FME 高级培训手册7/39 在 MicroStation中查看属性5、创建一个新的ODBC 连接。打开控制板 管理工具 数据源(ODBC).6、选择 User DSN选项卡,点击MS Access Database,然后点击 Add,按钮。7、选择 Microsoft Access Driver(*.mdb)点击 Finish按钮。8、设置 Data Source
8、 Name 为 parcels,选择Database中的 Select按钮。FME 高级培训手册8/39 9、选择工作空间创建parcels_geo mdb 文件,点击三次OK退出 ODBCData Source Administrator 界面。10、启动 MicroStation,然后打开工作空间创建的parcels_geo.dgn文件。11从菜单项中,选择Settings Database Connect 菜单。选择ODBC作为数据库服务(Database Server),输入parcels作为连接字串(Connect String)12 在菜单中,选择Tools Database来打开
9、数据库菜单条。13 在Database菜单条上选择 Review Database Attributes of Element 图标。FME 高级培训手册9/39 14、选择地块的质心来显示它的属性。FME 高级培训手册10/39 存储属性为注记很多时候,数据从GIS转换到 CAD来创建制图输出。在这种情况下,GIS属性被转化为CAD文件中的注记。并且用来制图的CAD 文件也经常作为GIS 数据的源文件。在接下来的几个工作空间中,我们将探讨创建和提取多边形和线要素的属性作为注记的例子。创建面标(Create Area Labels)在这个练习中,我们将使用三个属性在多边形中创建标注。、启动 W
10、orkbench,使用 MapInfo MIF/MID 作为源格式,Autodesk AutoCAD DWG/DXF作为目标格式创建一个工作空间。设置源数据为:DataPropertiesparcel_K24.mif。、添加一个几何过滤器(GeometryFilter)来分离出线和点。把点连接到Concatentor转换器上,并添加属性 LOT,PLAT 和SOURCE到这个连接,通过“n”添加一个回车换行来分开。、添加一个LabelPointReplacer转换器来连接 Concatenator 的输出。设置 Label Attribute为_concatenated,Label Heigh
11、t为10。FME 高级培训手册11/39 3、创建两个目标要素,Parcels 和Labels。连接 Parcels到 GeometryFilter 的Line输出端口,Label到LabelPointReplacer 的Labelpoint 输出端口。5、运行这个工作空间,设置目标数据集为:OutputworkshopsCADparcels_label1.dwg。FME 高级培训手册12/39 6、在 Bentley View中打开文件 parcels_label1.dwg,验证标注文本。7、首先我们注意到我们已经设置文本高度为10,而文本的实际大小为3.03。FME 通过回车把这个文本打碎
12、成多个部分,但是对于标注把文本大小的设置作为整个文本的大小来对待。8、为了对文本大小有更大的控制,我们对工作空间进行一些修改。移除Concatenator,复制两个 LabelPointReplacer,垂直排列。修改上面的 LabelPointReplacer转换器的 Label Attribute 值为 LOT,中间的值为 PLAT,下面的值为SOURCE。更改所有的 Label Height为5。9、我们可以将这些新的转换器连接起来,运行这个工作空间,不过所有的标注将会放置在同一点上。所以我们将给这些标注一个位移,使它们易于阅读。在 GeometryFilter 和 顶 部 的Label
13、PointReplacer 之 间 添 加 一 个 Offsetter 转 换 器。在GeometryFilter 和下面的 LabelPointReplacer之间添加另一个。FME 高级培训手册13/39 10、打开上面的Offsetter 的属性,设置 Y Offset为7.5。保持 X和Z的值为 0。对于下面的 Offsetter 转换器进行同样的设置,只是把Y的值设置为-7.5。11、先前的标注以默认的底部左对齐放置,但是标注中心对齐的话会更好看些。在LabelPointReplacers的右边添加一个AttributeCreator 转换器,把他们全部连接起来。打开属性,添加一个属
14、性autocad_justification,赋值为 autocad_middle_middle。连接 AttributeCreator到标注目标要素上。12、设置输出数据集为OutputworkshopsCADparcels_label2.dwg,运行这个工作空间。FME 高级培训手册14/39 13、在 Bentley View 中打开文件 parcels_label2.dwg 文件。标注比之前有了很好的分离,有合适的大小,并且是希望的对齐方式。如果标注全部是一个单一元素,在CAD中编辑会更方便。在写入之前,我们可以聚合文本,不过这样写入的文本作为自定义块或单元,在文本编辑前需要展开。目前
15、,FME 不能写多文本到 AutoCAD中,但是可以写入到MicroStation 中。14、在 Workbench 中打开之前的工作空间,选择 Destination Data Add Dataset菜单。设置它的格式为Bentley MicroStation Design(v8),目标数据集设置为:OutputworkshopsCADparcels_label3.dgn。当弹出对话框,提示是否想添加一个新的要素类时,点击 No。FME 高级培训手册15/39 15、打开 Label目标要素类的属性,设置Dataset参数为 parcels_label3 DGNV8。16、对 Parcels
16、目标要素类进行相同的操作。现在所有的要素被写入到MicroStation 文件,而不是 AutoCAD文件中。17、移除 LabelPointReplacers和AttributeCreator 转换器。添加一个 CoordinateExtractor 转换器,并且设置 X Attribute 为x、Y Attribute 为 y、Z Attribute 为 z。18、右键点击转换器,选择Duplicate来复制下这个转换器。重复创建另一个拷贝。连 接 刚 复 制 的 一 个 CoordinateExtractor 转 换 器 到 每 个 Offsetter,另 一 个 直 接 连 接 到Ge
17、ometryFilter 的 POINT 输出端口。FME 高级培训手册16/39 19、我们已经移除了Labeler转换器,所以我们需要复制属性信息到文本串属性中。添加一个AttributeCopier,连接它到上面的CoordinateExtractor 上。打开属性,复制 LOT到igds_text_string上。20、复制两个这个转换器,连接它们到另外的CoordinateExtractors 上。打开属性,设置中间的AttributeCopier,复制 PLAT 到igds_text_string。设置下面的AttributeCopier,复制 SOURCE到igds_text_s
18、tring。21、现在我们定义了位置和文本字串名称,我们想连接所有的三个标注为一个节点。添加一个Aggregator,连接它到这三个AttributeCopy 上。打开属性,设置 Group By参数为 PARCEL_ID,这对于每个标注是唯一的,设置List Name为igds_text_elements。22、然而,我们不想写出一个聚类要素,所以我们需要用一个点来替换聚类几何。添加一个CenterPointReplacer,连接它到 Aggregator来把几何替换为一个点。FME 高级培训手册17/39 23、我们需要设置更多的属性来正确的写入复合文本。添加一个AttributeCrea
19、tor,打开属性。设置igds_type 为 igds_multi_text,igds_text_size 为 5,igds_number_of_strings 为 3,igds_justification 为7。24、连接 Label 目标要素类到AttributeCreator,保存工作空间为Create Labeled Parcels 3.fmw。25、运行工作空间,在Bentley View 中验证结果。FME 高级培训手册18/39 我们现在对于这三行文本只有一个标注FME 高级培训手册19/39 从面标注中提取(Extract from Area Labels)创 建 面 标 注
20、是 相 当 简 单 的。从 现 有 的 标 注 中 提 取 GIS属 性 有 点 复 杂。我 们 将 在parcels_label2.dwg文件中提取标注保存到ESRI Access Geodatabase 中。1、打开 Workbench,添加一个新的源数据集。选择Autodesk AutoCAD DWG/DXF格式作为源数据格式,选择Outputworkshopparcels_label2.dwg作为源数据集。2、添加一个新的目标数据集。选择ESRI Geodatabase(MDB)作为目标数据集的格式,选择Outputworkshopparcels_geo.mdb 作为目标数据集。当询问
21、你是否想添加一个新的要素类时,选择No。3、右键点击 Parcel源要素类,选择 Duplicate(As Destination)选项。打开结果中Parcel 目标要素类的属性,设置运行的集合类型为geodb_polygon。选择 User Attribute 选项卡,创建用户属性 Lot、Plat和Source。4、因为地块输出为多边形,我们需要从Lot 边界线中创建多边形。添加一个AreaBuilder转换器连接到 Parcels源要素类上。FME 高级培训手册20/39 5、我们将覆盖多边形上的标注来转移标注内容,所以添加一个PointOnAreaoverlayer 到工作空间。连接
22、AreaBuilder 的 AREA输出端口到 PointOnAreaoverlayer 的AREA 输入端口,Label源要素类到 POINT输入端口。打开转换器属性,设置List Name为_list。6、现在我们已经把所有的标注附到了多边形上,但是我们不能从标注上提取信息,直到我们确定哪个标注相当于哪个属性。所以如果我们通过他们的Y坐标分类标注,可以知道我们放置 Lot在最上面的 LabelPointReplacer上,Plate放置在中间的上,Source放置在最下面一个上;我们知道它们的顺序是Lot、Plat、Source。幸运的,AutoCAD Reader向我们提供了这个标注的一
23、个包含Y坐标的属性。7、打开标注源要素的属性,选择Format Attributes 选项卡。选中 autocad_alignment_x、autocad_alignment_y 和 autocad_text_string 选项,在 Workbench中暴露这些属性。FME 高级培训手册21/39 8、添加一个 ListSorter到工作空间,连接它到PointOnAreOverlayer 的AREA 输出端口。打开属性,设置List Attribute 为_list.autocad_alignment_y。设置 Sorting Type为Numeric,设置Sorting Order 为De
24、creasing。9、现在这个列表从顶到底来分类,我们想提取属性值。添加一个ListIndexer,连接它到ListSorter,设置 List attribute 为_list,设置 List Index 为0。10、我们将获取列表属性_list0.autocad_text_string,提交它到属性autocad_text_string。添加一个 AttributeRename r,重命名 autocad_text_string 为 Lot,连接它到 ListIndexer上。FME 高级培训手册22/39 11、复制两个ListIndexer 和 AttributeRenamer 转换器
25、,按ListIndexer、AttributeRenamer、ListIndexer和AttributeRenamer 次序把它们连接起来。设置第二个 ListIndexer的 List Index 为1,第三个 ListIndexer的List Index 为2。设置第二个AttributeRenamer,重命名 autocad_text_string为 Plat,第三个 AttributeRenamer,重命名autocad_text_string为Source。12、连接 Parcels目标要素类到最后一个AttributeRenamer 上。13、保存工作空间为Extract Area
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FME 高级 培训 手册 GIS CAD 数据 操作
限制150内