span8
span4
Microstation DGN和AutoCAD DWG是两种最流行的CAD格式,它们的符号由大量的格式属性定义。创建数据库表字段来存储所有这些属性可能非常耗时,但是为了在将数据写回CAD时重新创建数据的外观,大多数都是必需的。此外,FME在增强it CAD功能的同时继续添加格式属性,因此表可能需要偶尔进行更新。
对于每个格式属性的单独字段,另一种替代方法是将所有属性打包到一个blob字段中,当将特性写回CAD时,该字段将被解压。
FME函数@SupplyAttributes(可通过FunctionCaller transformer访问)有一个模式,该模式将把所有特性的属性打包成结构名称:value:name:value:name:value:etc中的一个新属性。@SupplyAttributes还可以将这个打包好的属性解压缩回原始属性。但是,在打包时,@SupplyAttributes打包所有属性,包括那些不需要或不需要的属性。
自定义transformer PackAttributes(可以从上面的下载获得,也可以通过FME Store获得)使用PythonCaller将特性属性打包到@SupplyAttributes结构中,但是允许您为要打包的属性设置一个过滤器前缀。因此,要存储DGN文件的所有格式属性,但忽略任何用户或通用FME属性,您可以将筛选器设置为“igds_”。对于DWG文件,可以使用“acad_”。
工作空间DGNToSqlite和SqliteToDGN(可从上面下载)演示了如何实现这个过程:
DGNToSqlite读取微站DGN文件主路。dgn (also available for download above), uses PackAttributes to pack the format attributes into a new attribute "igds_packed", then writes the geometry and the packed attribute to Sqlite Spatial.
SqliteToDGN读取Sqlite表,在FunctionCaller中使用@SupplyAttributes将打包的属性恢复到该特性,然后将其写入一个新的DGN文件。
所有主要道路的标志。DGN, including multi-lines and custom linestyles, is restored in the new file.
这种存储CAD属性的方法是有前途的。由于格式前缀的原因,FME未来版本中添加的任何其他格式属性都将自动包含在压缩的属性中,并且不需要修改表。
如果您将在CAD数据存储在数据库中时编辑它的位置,则需要从打包的属性中删除任何位置属性,并将它们存储在单独的字段中。最简单的方法是在打包之前重命名属性以删除公共筛选器前缀。
©2019安全亚搏在线软件公司法律