原文发布时间:2012-05-04

翻译:jason

Autocad Map 3D Object Data读模块操作模式说明

内容介绍

如何设置转换方式没有固定标准,它取决于源数据模式和目标数据的结构。

一般情况下,AutoCAD Map 3D Object Data毫无疑问是Auto CAD的三维地图对象数据。对象数据允许属性存放在数据表中,但数据结构却非常自由。在数据集中,任何特定的空间要素(或实体)都可以在不限数量的数据表(或空表)中无限制地存放属性记录。

因此,FME提供了很多不同的读取模式。这样用户就有更多的选择来布局工作空间的,然后在Workbench中查看数据模式。

示例数据

以下是一些示例。这些工作空间的示例数据是一张德克萨斯州的地图,其包含州、县边界线以及许多的道路网络。

上图为示例数据。该州的边界线为黑色,县边界线为红色,道路为蓝色。参考的坐标系统为LL83。边界要素存放在“Boundaries”图层,并与“County ”和“State”数据表连接。

数据源最重要的是所有要素为线要素,县与县之间的边界线(或县和州的外边界线)为含有两条记录的单一要素——记录为县边界(或一条记录为县边界,另一条记录为州边界)。

如上图所示:特写位置。箭头所指的弯曲部分是“county”数据表中一条包含两条记录的单线;一条记录为“San Saba”县,一条记录为Lampasas县。

运行模式

这三种不同的读模式为“按实体分组”,“原关系”,和“用对象数据分组”。当将数据集增加到工作空间(或Inspector)时,在参数设置对话框中选择模式。

如上所示:生成一个新的工作空间。点击“参数设置”按钮,弹出数据对象设置对话框。

如上所示:对象数据设置对话框。在对话框顶部选择三种不同的模式。

显然,这些设置会直接影响新生成空间的版面,因此在工作空间生成以后就不能再更改读模式(或一旦读模块被添加到工作空间,就不能再更改)。

“按实体分组”模式

在创建工作空间时,对于数据集中的每一个数据图层,“按实体分组”模式会将其分为不同的类型。

数据表属性与相关的每个特性依附于要素,这种方式是一种很好的模式,用于向GIS相关的数据格式写入数据,如Mif/Mid 或Shape。但对于保留数据源模式结构,这种方式效果不好,因此如果想回写相同的数据格式,就不能使用这种方式。

然而,由于对象数据格式的巨大灵活性,需要考虑一些问题:
考虑 #1):是否每个实体(要素)包含的记录大于1,特别是在同一张表中多于1条记录——那么就可以生成表结构。例如,以下是单个要素的同一张表中包含两条记录的情况:


考虑 2#)因为有可能不同要素的记录在不同的数据表中,源数据类属性列表将会变得繁杂,包含所有可能的属性。

例如,以下的情况:

要素类中存在的所有要素将拥有所有可能附加的属性,不管其是否为空值。

考虑 #3)因为不同的数据表包含相同字段名是可能的,因此用一个“前置表名称”的选项来区分它们。
例如,考虑一下方案:

如上所示:参数设置对话框的前置表选项
在我们的示例数据中,不存在表名冲突。然而模式将会有州和县字段(尽管有些要素不具有州字段),加上要素是两个县之间的边界线,因此其会有列表属性来存放这两个县的名称。

如同边界要素,道路要素也有要素类,但是没有数据,因为其没有关联的数据表。

如上所示:Workbench中的源模式。

如上所示:在FME Viewer中的数据显示了指定的列表的结构和内容。

如上所示:由于Shape数据不能接收列表结构的数据,调整工作空间,将列表属性变成用逗号分割的单个属性(可以用转换器ListConcatenator变为列表属性)。

如上所示:在输出Shape数据集中,州、县边界如图所示。

如上所示:县之间的边界如图所示。注意此处州属性为空值。

“原关系”模式 

“原关系”模式将基于相同空间实体和数据库记录的对象作为单独的要素,用一个属性来标记它们作为相关的要素,每个要素类会分到各个数据层。
        事实上,使用原关系数据模式对于用户来讲是最适合的。由于其空间数据和属性数据是存放在独立的表中,因此写入数据库很有用。也称此种模式为“关系”模式。此模式也适合将数据写入到特定的CAD格式,比如当属性数据和空间数据是单独存放在CAD数据中时。

在此模式中,我们没有必要担心任何“按实体分类”模式的考虑,因为分配多条记录到单一要素,仅仅会存放到数据库表要素类。类似于每个表存放一个单独的要素类,所以处理复杂的模式不会出现问题,尽管不同的表中存在同名字段,这也不会出现冲突字段。然而,在工作空间中当用户频繁地合并属性记录返回到要素中时,可能会出现。

如上所示:在示例工作空间中,将数据写入到Oracle数据库中。

如上:在“原关系”模式的初始工作空间就像这样。注意每一个图层为一个要素类,每一个图层对应一张表(CountyData,,StateData)。也要注意格式属性autocad_od_entity_key,它是标记属性数据和空间数据的标志。Layer0是所有AutoCAD数据的默认图层。

如上所示:如果没有连接Oracle数据库,就只能放到VisualLizer中查看数据。它将会显示没有用户属性的要素,但会有一个列表(autocad_map_odtable{}),加上entity key。

如上所示:该表的记录很明显是作为FME非几何要素的读取。它是与以上空间要素相关的StateData表的记录。

这是较为合适的模式,用于读取对象数据和将对象数据写入相同的格式。非几何要素的表记录可以作为一张表来写入,实体要素可以作为一个图层来写入。由于格式属性(autocad_od_entity_key)对于对象数据写模块是一样的,因此会自动连接。举个例来说,执行重投影而不希望改变格式,或执行表的连接或分割。

“用对象数据分组”模式

“用对象数据分组”模式几乎与“按实体分组”刚好相反,不需要获取每个图层的要素类,而是得到每张表的要素类,进入工作空间的数据是每张表的要素类的每条记录。正是由于此原因,每个对应很多条记录的AutoCAD实体会在数据中重复出现很多次。

例如,下面的情况,一个要素连接两条记录:

这样的处理在FME中是很低效的,因为实际上会出现很多实体,需要处理很多次。另一方面来讲,当对于简单数据集中的单一实体存在多种地理对象(比如数据中的州县边界线)的情况,这又是一个很适用的模式。

然而,数据表要素类只是问题的一部分。对于没有关联记录的实体(即没有对象数据)也需要输出,因此新的工作空间中也有包含无对象数据实体的要素类。进一步来说,用户可能在一个图层上疑惑哪些需要读入而哪些需要忽略,因此让图层上的所有对象都输出,无论它们是否已经通过对象数据要素类输出。

这样明显可能会出现重复对象并做无用功,但是如同我们的开发人员所讲,这并不是无效的,它能够在处理目前的AUTODESK_MAP对象数据读模块时,确保向后兼容。

如上所示:“用对象数据分组”模式向工作空间中添加数据。注意每张表(CountyData, StateData)的要素类都包含属性,每个图层(Roads, Boundaries)的要素类都不包含属性——尽管一些实体可能关联了对象数据——用数据表要素类来区分它们。

如上所示:在该例中,如果不希望重复输出边界数据,将该要素类设为无效。

如上所示:输出结果在此处有两个要素;州边界和县边界。但这是正确的,因为它们被写入到了两个要素类。事实上还可以:

同上: ...添加转换器AreaBuilders 到工作空间,它可以:

同上:...分割每个要素类的面要素。如果没有重复要素,就不能达到此结果。

该读模式对于读取对象数据类型再回写到相同格式的数据集也是适用的(例如执行坐标系统的重投影)。重复要素并不是问题,因为写对象数据时,含有重复实体关键字的空间要素会被丢弃。输出结果可能是一个实体,但是包含很多条记录——满足该规则:每一行只匹配一个实体。然而我们仍然推荐使用“原关系模式”。

Q+A
Q)FME的哪个版本可以使用该功能?
A)FME 2008以及更新的版本

Q)为什么如今的安装程序会询问Autodesk RealDWG许可协议?
A)是的。我们使用AUTOCAD_OD 读模块之下的Autodesk RealDWG 2008 SDK。用户需要接受该协议才能获得AUTOCAD_OD格式的使用权。

Q)是否可以使用这种格式读取非对象的DWG/DXF数据集?
A)可以。除非有具体原因,不然我们还是建议用AutoCAD DWG/DXF (aka ACAD)读模块和写模块。

Q)什么级别的FME许可才能使用AUTOCAD_OD?
A)就像AutoCAD DWG/DXF,FME Base Edition中可以使用新格式。

Q)新的对象数据读模块适用于UNIX系统吗?
A)否,仅仅适用于Microsoft Windows平台(大概是因为SDK)。

Table Of Contents

Q)当执行打散操作时,具有属性数据的块要素会发生什么?
A)哦-这是复杂的。整个块可以只含有一条记录或块中的每个实体只包含同一条记录,或两者皆是。如果块参照关联对象数据,它就会附加到块的插入点。如果块参照被分成了多个部分,并且每个部分关联了对象数据,那么块就会被打散,块的每部分关联的对象数据将会附加到所有由块的各部分生成的要素。通常在执行对象数据转换时,用户不想打散块,因为这样会导致entity/record keys的冲突。

原文地址:

http://fmepedia.safe.com/articles/Samples_and_Demos/Reading-Data-with-the-AutoCAD-Map-3D-Object-Data-Reader

如何使用AutoCAD Map 3D Object Data读模块相关推荐

  1. [新书推荐]Autodesk地理信息系统解决方案——FDO、MapGuide、AutoCAD® Map 3D二次开发指南...

    MapGuide及其相关技术一直缺乏中文资料,针对这种现状,最近Autodesk上海研究院出版了一本新书,系统的介绍了Autodesk地理信息系统解决方案,包括FDO.MapGuide.Map3D等等 ...

  2. AutoCAD Map 3D 2011 发布

    也许还有人不知道,AutoCAD Map 3D 2011已于近日发布.下面是这一版本的主要功能介绍: Highlights & Enhancements Point Clouds(点云) – ...

  3. AutoCAD Map 3D 2013正式版发布

    AutoCAD Map 3D 2013版已经正式发布.困扰n多人的DWG到AIMS(或者说MapGuide)的问题在这个版本中得到了解决,在Map 3D中可以直接发布DWG文件到AIMS,不经过任何格 ...

  4. AutoCAD Map 3D 2011 Update 1 – released!

    In our continuing effort to improve quality, performance and respond to our customer's needs, we hav ...

  5. AutoCAD Map 3D对ArcGIS shp文件的操作详解!

    在之前的一篇推文中,介绍了用AutoCAD Map 3D将多段线转换为shp格式线或面文件,实际上,AutoCAD Map 3D作为CAD和GIS的桥梁,它对GIS数据格式的操作远不止这些. 例如:A ...

  6. autocad map 3d 2022 地图绘制软件

    autocad map 3d 2022是由Autodesk公司推出的一款专业地图绘制工具,基于AutoCAD软件基本要素打造而出,支持直接访问来自各类资源的 CAD.GIS 和光栅数据格式,无需数据拷 ...

  7. AutoCAD Map 3D 2013新功能视频中文版

    此版本的 AutoCAD Map 3D 包括以下新要素: 准备布局图纸以供公众查看 观看视频 (3:25) 将显示地图与视口关联. 使用"显示管理器"控制可见性. 为每个视口/地图 ...

  8. dwg转shp最快的方法,AutoCad Map 3d实至名归!

    " AutoCAD Map 3D是一款专业的地图绘制.土地规划和技术设施管理的工具,软件是根据AutoCAD的基础上进行制作的,通过地理空间工具进行了绘制的增强,设计者在可以在熟悉的Auto ...

  9. Autodesk AutoCAD Map 3D 2022最新下载

    资源链接:Autodesk AutoCAD Map 3D 2022下载 Autodesk AutoCAD Map 3D 2022是一款功能强大且最领先的创建和管理空间数据的工程软件,该软件工具将计算机 ...

最新文章

  1. 【转】ubuntu下实用的三款录屏软件
  2. cordova常用命令
  3. git怎么读_【杂谈】怎么使用有三AI完成系统性学习并赚钱
  4. QPushButton hover配置
  5. [html] input上传文件可以同时选择多张吗?怎么设置?
  6. python自然语言分析 何翠仪_如何用 Python 中的 NLTK 对中文进行分析和处理?
  7. (转)getElementByID getElementsByName getElementsByTagName用法详解
  8. scala写入mysql_spark rdd转dataframe 写入mysql的实例讲解
  9. Kubernetes学习笔记及重点知识解析
  10. python PIL库的getdata()函数
  11. c语言吃豆豆游戏,高手帮我改下我的吃豆豆游戏吧
  12. wake-on-lan java_大神教你用Python实现Wake On Lan远程开机功能
  13. wordpress目录文件结构
  14. Python中的sys.argv是什么含义
  15. halcon测量总结
  16. 量子信息-学习记录13
  17. idea设置java-google-style
  18. 相聚“矿业之都”,2020全球区块链算力大会金句集锦正式出炉
  19. ICPC nangchan I. Max answer
  20. 《Python编程从入门到实践》学习笔记7:用户输入和while循环

热门文章

  1. android sim卡槽,一加5怎么装卡/插卡 一加手机5 SIM卡安装图文教程
  2. Windows 7 更新补丁大包子
  3. 如何理解论文中常见的Top-1错误率和Top-5错误率?
  4. Windows 无法连接到打印机.打印后台程序服务没有运行
  5. 检测ip是否为中国php,PHP判断IP是中国IP还是外国IP
  6. 在Ubuntu 20.04 拆分pdf文档
  7. stm32正常运行流程图_stm32初始化流程图解析
  8. nginx 静态资源优化配置
  9. FUZ-2204-7环形dp
  10. python如何计算个人gpa_GPA计算Python