ArcGIS Pro脚本工具(6)——修复CAD图层数据源

本文探讨了Pro在导入CAD文件时遇到的红色惊叹号警告问题,重点介绍了如何处理CAD文件位置变化和文件名更改的情况,包括使用目录视图和Python脚本来更新数据源及图层符号。通过Python脚本,不仅修复了数据源,还统一了图层颜色并简化了符号管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pro对CAD文件的支持显而易见的优于ArcMap。虽然都是将CAD识别成点、线、面、多面体和注记5大类,但是当我们拖动其中一类到Pro中时,Pro自动将其分图层显示,并且图层的颜色与CAD一致。nice!

30cf4a4523044fb0b806802877798e4d.png

但是尴尬的是,一旦CAD文件移动了位置或者改了名字,就是一长列的红色惊叹号警告。有经验的使用者可能期望修复一个图层后,其他图层自动修复,但是很可惜这对这些CAD图层无效。

那我重新拖CAD进来不就成了?可能不太行,因为已经在Pro里改过一些图层的符号系统了,重新拖CAD进来就得重新做很多图层的符号系统,太麻烦了。

针对不同的情况,有不同的解决办法。

1、CAD文件位置改变,文件名不变

这种情况下,比较方便的办法是打开 目录视图-目录选项卡-数据源-工作空间,选择CAD图层组,新路径中填入CAD文件现在的位置,点击应用,完成。

 2、CAD文件位置和文件名都已经改变

解决办法比上面多出一步,就是需要先更新CAD文件名。还是考虑使用脚本工具来实现。

Python脚本

import os
import arcpy

aprx = arcpy.mp.ArcGISProject(r"CURRENT")
m = aprx.activeMap
groupLayer = arcpy.GetParameterAsText(0)
lyrs = m.listLayers()

cad = arcpy.GetParameterAsText(1)
cad_name = os.path.basename(cad)
cad_path = os.path.dirname(cad)
cp = {'workspace_factory': 'Cad', 'connection_info': {'database': cad_path}}

for lyr in lyrs:
    longName = lyr.longName
    if longName.startswith(groupLayer) and lyr.isGroupLayer==False:

        lyrCIM = lyr.getDefinition("V2")
        dc = lyrCIM.featureTable.dataConnection

        # Update the feature dataset with the new CAD file name
        dc.featureDataset = cad_name

        # Update layer CIM
        lyr.setDefinition(lyrCIM)

        lyr.updateConnectionProperties(lyr.connectionProperties, cp)

        sym=lyr.symbology
        color=sym.renderer.symbol.color
        color['RGB'][3]=100
        sym.renderer.symbol.color=color
        lyr.symbology=sym

        arcpy.AddMessage('已修复 '+lyr.name)

参数设置

运行演示

872482a14ff943e2abd55a6ccfd37e4f.gif

 模型说明

除了修复CAD图层的数据源外,脚本工具也取消了所有CAD图层的面符号的透明度,方便在外观选项卡上统一调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值