码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ArcGIS Pro脚本工具(6)——修复CAD图层数据源


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

    30cf4a4523044fb0b806802877798e4d.png

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

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

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

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

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

    e1fa13325d3b441593ae1067da85d051.png

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

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

    Python脚本

    1. import os
    2. import arcpy
    3. aprx = arcpy.mp.ArcGISProject(r"CURRENT")
    4. m = aprx.activeMap
    5. groupLayer = arcpy.GetParameterAsText(0)
    6. lyrs = m.listLayers()
    7. cad = arcpy.GetParameterAsText(1)
    8. cad_name = os.path.basename(cad)
    9. cad_path = os.path.dirname(cad)
    10. cp = {'workspace_factory': 'Cad', 'connection_info': {'database': cad_path}}
    11. for lyr in lyrs:
    12. longName = lyr.longName
    13. if longName.startswith(groupLayer) and longName != groupLayer:
    14. lyrCIM = lyr.getDefinition("V2")
    15. dc = lyrCIM.featureTable.dataConnection
    16. # Update the feature dataset with the new CAD file name
    17. dc.featureDataset = cad_name
    18. # Update layer CIM
    19. lyr.setDefinition(lyrCIM)
    20. lyr.updateConnectionProperties(lyr.connectionProperties, cp)
    21. sym=lyr.symbology
    22. color=sym.renderer.symbol.color
    23. color['RGB'][3]=100
    24. sym.renderer.symbol.color=color
    25. lyr.symbology=sym
    26. arcpy.AddMessage('已修复 '+lyr.name)

    参数设置

    d4fa064a38a54845b6326aa69b9ce0f1.png

    运行演示

    872482a14ff943e2abd55a6ccfd37e4f.gif

     模型说明

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

     

     

  • 相关阅读:
    ssh实现免密登录服务器
    Oracle数据库:链接配置,包括sqlnet.ora里面的transnames.ora配置数据库标识符SID,listener暂时简单了解
    阶段六-Day01-Linux入门
    8.spring框架-----AOP基本知识
    .Net Core Entity Framework Core 的单数据源基础封装(mysql)
    CAN通信(2)——CAN通信协议层
    批量插入,部分参数为null,报sql语法错误解决方案
    合约广告平台架构演进实践
    如何完美解决 IDE升级后启动报错 Internal error. Please refer to https://jb.gg/ide/critical-startup-errors
    IDEA插件开发(21)--List and Tree Controls
  • 原文地址:https://blog.csdn.net/baidu_28157641/article/details/125480952
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号