ArcGIS Pro ATBX 自动编辑器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0d6e251a/atbx-direct-editor。
技能介绍
要解决什么问题
ArcGIS Pro / GeoScene 里的 .atbx 不是单个 XML 文件,而是 ZIP 归档:工具参数写在 tool.content,中文标签往往在 tool.content.rc($rc: 引用),界面与帮助还要落在 tool.metadata.xml,而 tool.script.validate.py 与 tool.script.execute.py 里用 参数下标 做校验与执行。只改 metadata、或只改 content 不同步脚本,工具在 Pro 里能打开却会在运行或校验阶段报错——本质是 多层工具合约 不一致。
技能如何工作
本技能把每次 .atbx 编辑当作 合约变更:先 inspect_atbx.py 盘点结构,再明确参数顺序、名称、默认值、值域及 validate/execute 中的索引用法,然后按路径执行:
- 清单驱动:
apply_parameter_changes.py支持增删改序、重命名、rc-set、域更新等 manifest 操作,并拒绝在脚本未对齐时做结构性改动(除非显式assume_scripts_already_aligned)。 - 窄补丁:
patch_atbx.py用于范围明确、可重复的确定性修改。 - 同步与验收:改
tool.content/.rc/ 脚本后必须跑sync_tool_metadata.py(除非清单流程已再生 metadata),最后用validate_atbx.py做归档与合约校验;交付需说明改了什么、验了什么、仍不确定什么。
编码与重打包遵循归档约定:正斜杠条目名、UTF-8 XML/JSON(非 ASCII 用 ASCII 转义)、禁止重复 ZIP 条目,原地修改前备份;文本读写走 bundled Python,避免终端乱码误判为包损坏。
适用边界
- 仅适用于 可 ZIP 打开的
.atbx归档;若是已解压目录,按普通文件夹编辑,不用重打包脚本。 - 不用于
.tbx、.pyt、无关 ArcPy 脚本,或只读许可/版本审计。 - 参数重排后需重点核对 validate/execute 中的 数字下标、
range(...)与值域标签;对 opaque/hex 类脚本载荷默认 保留,除非用户明确接受实验性脚本改动。 - GeoScene 工作站上若 Python 环境被污染,需清理
PYTHONHOME/PYTHONPATH或换可用解释器,否则脚本层校验可能无法运行。
使用场景
- 维护单位 GeoScene 工具箱时,需要给某个 `.atbx` 工具新增可选参数并同步中文标签与 metadata
- GIS 运维收到 Pro 报错「参数索引越界」,需重排 `tool.content` 并改 validate/execute 脚本后整包校验
- 批量调整多个工具的默认值域与枚举显示名,用 manifest 走 `apply_parameter_changes.py` 避免手改漏层
- 对比修改前后归档差异,用 `diff_atbx.py` 核对内部路径与合约是否只改了目标文件
适合人员
- 负责 GeoScene/ArcGIS Pro 自定义工具箱发布的 GIS 开发,需保证参数改动后工具仍可校验与执行
- 单位 `.atbx` 归档维护人员,经常改工具显示名、帮助与值域,且不能只做 metadata 表面修改
- 处理历史工具箱缺陷的运维工程师,要在 `--tool` 聚焦校验下修指定工具并报告残留风险
- 需要审查 `.atbx` 内部结构(content/rc/脚本/metadata)是否一致的技术审核或交付验收角色