span8
span4
还有就是去建立一个翻译没有标准的方式,这一切都取决于架构的是在输出数据集所需的源数据和结构。
如果是一般的真,那么它是加倍的的AutoCAD Map 3D对象数据真实。对象数据允许属性被存储在数据表中,但在它的方法的数据结构特别自由,和一个数据集内的任何特定的空间特征(或实体)可以在任何数量的数据表的具有任何数量的属性记录(或无 at all).
鉴于此,我们采取在FME的方法是提供多个不同的读取模式,使得用户具有工作区的布局的更广泛的选择以查看数据模式在工作台。
一些例子的工作区跟随。对于这些工作区的样本数据集是地图德克萨斯州的。该地图包括州和县界外加一些代表国家路网功能。
示例数据集的说明。
国家大纲是黑色,县界红色和道路blue.The数据的坐标系纬度/龙NAD 83。
边界特征存储在一个名为层边界和有联系的所谓县和状态数据表。
路的功能是存储在名为道路层上。路网是仅空间数据,没有属性或对象的数据表。
有关源数据,重要的是,所有的功能都线的几何形状,和两个县(或一个县和国家轮廓)之间的边界是有两个数据记录的一个功能 - 每个县(或一个县 and one for the state).
特写镜头这个特别曲折的部分是一行,在县数据表中有两条记录;一个给圣萨巴县,一个给兰帕萨县。
这三种不同的阅读模式“按实体分组“”原始关系“和”按对象数据分组”。
的模式的选择是在设置对话框制成当源数据集添加到工作区(或到Viewer)。
以上:正在创建新工作区。单击“设置”按钮以获取“对象数据设置”对话框
以上:对象数据设置对话框。注意对话框顶部三种不同模式的选择。
很明显 - 因为这些设置对新的工作空间的布局产生立竿见影的效果 - 这是不可能的工作区创建之后改变阅读模式(或者改变读者的布局,一旦它被添加到现有工作区)。
该集团通过实体模式建立与工作区用于在数据集内的数据的每个层中的一个特征类型。
与每个特征数据表属性附接到所述特征,这使得该用于将数据写入到GIS有关的格式如米夫/中或形状的非常有用的模式。要使用这种模式来保存原始的模式结构并不好,也不太好不是如果你想写回相同的格式。
但是,由于对象数据格式具有很大的灵活性,因此需要进行一些考虑。
考虑#1):如果每个实体(功能)拥有多个记录(尤其是同一表中的多个记录),则创建列表结构。
例如,给定在同一个表中有两个记录的单个特性的设置:
特征数据表字段
1个表,1个表,2个表,3个表
1个表,1个表,2个表,3个表
…the output feature will include a list attribute on its schema:
TableAData {0} .FieldA1
TableAData {0} .FieldA2
TableAData {0} .FieldA3
TableAData {1} .FieldA1
TableAData {1} .FieldA2
TableAData {1} .FieldA3
考虑#2):因为不同的功能可能在不同的数据表中拥有记录,所以源功能类型的属性列表将是详细的,并包含所有可能的属性。
例如,给定这样的设置:
图层要素数据表字段
LayerA 1 TableA FieldA1, FieldA2, FieldA3
FieldB1, FieldB2, FieldB3
…the source feature type for LayerA will include the attributes:
FieldA1
FieldA2
FieldA3
FieldB1
FieldB2
FieldB3
即。退出此功能部件类型的所有功能部件都将附加所有可能的属性,无论它们是否包含值。
考虑#3):因为不同的数据表可能拥有相同的字段名,所以可以选择在所有属性前面加上表名来区分它们。
例如,给定这样的设置:
图层要素数据表字段
LayerA 1 TableA Field1, Field2, Field3
LayerA 2 TableB Field1, Field2, Field3
…the prepend option will ensure non-conflicting field naming by giving:
TableA_Field1
TableA_Field2
TableA_Field3
TableB_Field1
TableB_Field2
TableB_Field3
以上:设置对话框中的prepend选项。
在我们的示例数据集,没有冲突的表名,然而模式均州和县字段(尽管不是所有的功能将状态记录),加上功能两县之间的界限将会有一个属性列表存储两县的名称。
正如您可能期望的那样,道路特性有一个特性类型,但是没有属性数据,因为它们没有相关的数据表。
以上:工作台中的源架构
以上:数据(在FME查看器中)显示特定功能的列表结构和列表内容。
以上:因为形状数据集不接受列表结构中的数据,所以我们的最终工作区被调整为将fme列表转换为逗号分隔的属性(使用ListConcatenator变压器)。州/县边界绕过此步骤,因为它们不包含列表。
以上:因此,在输出形状数据集中,州/县边界功能如下所示。
以上:…一个县/县边界特征看起来是这样的。注意空状态属性的存在。
“原始关系”模式本质上是将空间实体和数据库记录作为单独的特性,每个特性都有一个属性链接将它们标记为相关的。
一个特征类型提供了一种用于数据的每个层,并且为每个对象数据表中的另一个特征类型。
实际上,这是用户可以以最适合他们的方式使用的原始数据。这种模式对于编写数据库格式尤其有用,空间数据和属性数据保存在不同的表中(这就是为什么我们称它为“关系”模式,因为就像一个“关系”数据库相关表表示主键)和写入数据对某些传统CAD格式属性在哪里举行单独的空间特性。
在这种模式下,我们不必担心“Group By Entity”模式的任何问题,因为分配给单个特性的多个记录只会通过数据库表特性类型产生多个记录。类似地,每个表都有一个单独的特性类型,因此不会出现过于冗长的模式问题,即使不同的表具有相同的字段名,也不会出现字段冲突。但是,如果用户随后试图将属性记录合并回工作区中的特性,那么这些问题当然会重新出现。
以上:在此示例工作区中,我们选择将数据写入Oracle数据库。
以上:在“原始关系”模式下,初始工作区如下所示。请注意,每个图层(边界、道路)和每个表(countyData、stateData)都有一个要素类型。还要注意格式属性autocad_od_entity_key,它是在空间数据和属性表之间充当查找键的属性。注意:layer0是所有autocad数据库中存在的默认图层。
以上:如果没有要连接的Oracle数据库,则只能将数据路由到检查器。这将显示一个没有用户属性,但有一个表列表(autocad_map_odtable{})的功能,该实体在其中有记录,并且有一个实体键可以匹配这两个。
以上:表记录显然是作为fme非几何特征读取的。下面是涉及上述空间特征的StateData表记录。
这也是您希望用于读取对象数据并将其写入相同格式的数据集的模式。表(非几何)记录将作为一个表被写回,实体(几何)特性将作为一个层被写回。因为format属性(autocad_od_entity_key)与对象数据写入器查找的是同一个属性,所以会自动生成链接。此类任务的一个例子是,在不希望更改格式的情况下将数据从一个坐标系统重新投影到另一个坐标系统,或者希望连接或拆分表的用户。
“按对象数据分组”模式几乎与“实体”模式相反,因为它不是为每层获取一个特征类型,你得到每一个数据特征类型工作空间中的数据是每个表中的每个记录的一个特性。
因此,每个附加到多个记录的AutoCAD实体将在数据中出现多次。
例如,在这个设置中,一个特性链接到两个记录:
特征数据表字段
1个表,1个表,2个表,3个表
1 TableB FieldB1, FieldB2, FieldB3
…the reader will output two features:
特性1(属性= FieldA1、FieldA2、FieldA3)
特性1(属性= FieldB1, FieldB2, FieldB3)
如您所见,这在FME中是低效的,因为您最终可能要处理许多倍于源数据中实际实体的数量。另一方面,当单个实体表示多个地理特征(在我们的示例数据集中)时,这是一种有用的模式。
然而,数据表的特性类型只是其中的一半。没有相关记录的实体。没有对象数据)也需要被输出,所以一个新的工作空间也有对于包含非对象的数据实体,每个实体层的特征类型。此外,由于读取层上的某些实体(不带对象数据的实体)和忽略某些实体(带对象数据的实体)可能会让用户感到困惑,因此将输出该层上的所有要素,无论它们是否已通过对象数据要素类型输出。
这显然会导致更多重复的功能和效率低下,但正如我们的开发人员告诉我的那样,这样做是为了清晰而不是高效,并确保与以前的autodesk_map object data reader向后兼容。
以上:“由对象数据组”模式添加到工作空间在我们的样本数据。注意为每个表(CountyData,StateData),其中包括属性,并且所述特征类型的每一层(道路,边界)的特征类型;这些不包含属性 - 尽管一些实体的可能对象相关的数据 - 与对象数据表功能来区分它们。
以上:自 - 在这个例子 - 我不希望超过两次得到边界数据,我可以简单地禁用该功能类型。
以上:不出所料,输出显示在该位置两个特征;该州边界和县界。不过没关系,因为他们是在工作区分开,并写入到两个不同的特征类型。事实上,这可以帮助,因为我可以...。
以上...添加到AreaBuilders我的工作区,这给了我...
以上...单独的区域特征对每个要素类型。我不能够做,没有重复的功能。
如果要读取对象数据并将其写回相同格式的数据集(例如执行坐标系重投影),也可以使用此读取模式。重复的特征不是问题,因为在写入对象数据时,具有重复实体键的空间特征将被丢弃。结果将是一个实体,但多个记录-满足规则,每一行只匹配一个实体,并给你刚刚开始!不过,我们仍然建议使用“原始关系”作为此场景的模式。
Q)哪些版本的FME的我可以找到这个功能?
一种)FME2008或更新版本。
Q)这是为什么现在安装程序会询问使用Autodesk RealDWG许可协议?
一种)对。我们正在使用autocad-od阅读器下面的autodesk realdwg 2008 sdk。这是必需的,用户必须接受此协议才能使用autocad-od格式。
Q)我应该使用这种格式读取非对象的DWG / DXF数据集?
一种)可以,但除非您有特定的原因,否则建议继续对这些文件使用autocad dwg/dxf(也称为acad)读/写器。
Q)什么级别的FME许可才能使用AUTOCAD_OD?
一种)与autocad dwg/dxf一样,fme基本版也提供了这种新格式。
Q)这是新的对象数据读取器可用于UNIX?
一种)不,只在微软的windows平台上[同样,可能是因为sdk的缘故]。
Q)会发生什么事时,我炸他们阻止与属性数据的功能?
一种)啊-这很复杂。块可以对整个块有一条记录,也可以对块中的每个实体(部分)有一条记录,或者两者都有!如果块参照具有关联的对象数据,则它将附着到块的插入点。如果块参照的零件具有关联的对象数据,并且块被分解,则与块零件关联的对象数据将附着到为块零件创建的所有特征上。通常,在执行对象数据>对象数据转换时,您不太可能希望分解块,因为可能存在实体/记录键冲突。
©2019安全亚搏在线软件公司|法律