斯潘8
斯潘4
两种最流行的CAD格式,MicroStation DGN和AutoCAD DWG,用大量的格式属性定义它们的符号。创建数据库表字段来存储所有这些属性可能非常耗时,但在回写到CAD时,大多数都需要重新创建数据的外观。也,FME在增强IT CAD能力的同时继续添加格式属性,因此,该表可能需要偶尔更新。
每个格式属性的单个字段的另一种选择是将所有属性打包到一个BLOB字段中,当特性被写回CAD时,它将被解包。
fme函数@supplyAttributes(可通过函数caller transformer访问)具有一种模式,该模式将把功能的所有属性打包成结构名称:value:name:value:name:value:etc中的一个新属性。@supplyAttributes还可以将这个打包的属性解包回原始属性。然而,包装时,@SupplyAttributes包含所有属性,包括那些不需要或不需要的。
自定义transformer packattributes(可从上面下载,或者通过fme store)使用pythoncaller将特性属性打包到@supplyAttributes结构中,但允许您为要打包的属性设置过滤器前缀。所以要存储所有dgn文件的格式属性,但忽略任何用户或通用的FME属性,您可以将过滤器设置为“igds”。对于dwg文件,你可以用“acad_uuu”代替。
工作区dgntosqlite和sqlitetodgn(可在上面下载)演示了如何实现此过程:
dgntosqlite读取microstation dgn文件majoroads.dgn(也可从上面下载)。使用pack attributes将格式属性打包为新属性“igds-packed”,然后将几何体和压缩属性写入sqliteSpace。
sqlitetodgn读取sqlite表,在函数caller中使用@supplyAttributes将打包属性恢复到功能,然后写出一个新的DGN文件。
所有来自majorroads.dgn的符号,包括多行和自定义线条样式,在新文件中还原。
这种存储CAD属性的方法具有很好的应用前景。由于格式前缀的原因,在未来版本的FME中添加的任何其他格式属性将自动包含在打包属性中。不需要修改表格。
如果要在CAD数据存储在数据库中时编辑其位置,您需要从压缩属性中删除任何位置属性,并将它们存储在单独的字段中。最简单的方法是在打包之前重命名属性以删除公共过滤器前缀。
?2019安全亚搏在线软件公司|合法的