在工作中有时会遇到因为各种原因,在生成好dwg图后,需要对图上的某项内容进行修改的情况,而此时dwg文件数量巨大,通过人工修改的话,费时费力且易出错。本文以房产分户图批量修改建筑结构为例,介绍如何使用FME实现批量修改dwg图上部分信息。
在本案例中,在前期的房屋分户图数据生产中使用了数字代号来表示建筑结构,后面需要提交成果时发现建筑结构需要使用汉字名称,而生产房屋分户图数量上万,人工修改工作量非常大,此时功能强大的FME就派上用场了,下面来看如何使用FME来解决这个问题。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板及示例数据下载链接。
一、实现效果
通过下面的图1、图2的前后对比可以看到,完美实现了建筑结构由数字代码向汉字名称的替换修改。通过观察图1,我们发现建筑结构与总层数、所在层次等信息是一样的,都是“4”,那么在图中存在与建筑结构代码相同的其他数据,此时我们就不能直接进行文本替换修改了,在替换修改前得先准确地把建筑结构的数字代码找出来,然后再进行替换修改,具体要如何来在多个相同数据中精确查找出建筑结构来呢,请看下面的实现过程。

图1 原数据

图2 成果数据
二、实现过程
总体思路:通过观察原数据可以发现,要进行替换更新的建筑结构代码夹在“结构”和“专有建筑面积”两个格子中间,而“结构”和“专有建筑面积”两个格子中的文本内容是固定的,因此我们可以先定位找到“结构”和“专有建筑面积”两个格子,然后将这两个格子连线,那么与之相交的格子便是我们的目标数据建筑结构代码所在,如此便实现了对建筑结构代码的精确定位,最后将建筑结构代码替换成汉字名称即可。

1.几何分类
在使用读模块读取数据后,使用GeometryFilter将数据按照点、线、面、文本等几何类型进行分离开来,便于后续处理使用。

图3 几何分类
2.边框构面
在上一步将数据按几何类型进行分类后,在这里我们使用其中的线和面数据,进行重新构面,形成面图形,如下图所示。

图4 边框构面
3.初筛目标注记
这里使用Tester转换器将“结构”、“专有建筑面积”以及建筑结构代码等文本注记初步筛选出来,如下图所示。

图5 初筛目标注记
4.筛选出结构注记
这里使用第二步和第三步的数据,首先筛选出“结构”和“专有建筑面积”两个格子,然后将其转点并连线,最后相交获取建筑结构代码所在格子并获取其格子面内的建筑结构代码注记,如下图所示。

图6 筛选出结构注记
5.更新建筑结构
这里使用AttributeValueMapper转换器将上一步筛选出来的建筑结构代码替换成汉字名称,如下图所示。

图7 更新建筑结构
6.数据分类输出
因为在原数据可能存在某些意外情况,为了便于核对处理,所以我们还需要将已成功替换更新建筑结构的数据和未能替换的数据进行分离,并分离输出,如下图所示。

图8 数据分类输出

图9 数据输出目录情况

图10 替换后的成果数据
☛ 视频教程推荐 ☚
三、总结
进行CAD图数据替换更新的关键在于观察目标信息的特征情况,如果目标信息在图中是唯一的,那么直接替换即可,如果不唯一,存在干扰数据,那么就需要观察目标信息周边的唯一性特征,并根据这个唯一性特征将其筛选出来,然后再进行替换。

图11 总体流程

☟ 往期推荐 ☟