Things About ArcGISPro

Posted on 2025-12-25 11:00  云起  阅读(0)  评论(0)    收藏  举报

Things About Pro

关于Pro产品的二三事


主要以3.3为基础,新版本特性可能有缺失

Pro自身的架构

daml

daml(Desktop Application Markup Language),为pro的组件配置文件。pro通过解析该文件,获取各种类型的注册信息,对程序实现配置化。其实,addin也是基于这种注册机制实现的。

daml的结构如下:

95bc461b-97ef-4ae1-b5d8-c37122f82624[1]

在pro初始化过程中,会对各级目录中的组件进行扫描,获取daml配置。通过内置处理器,将各种标签进行合并处理,形成统一的注册信息,供程序内部使用。

gp

pro内部支持三种工具箱类型:

  • .tbx目录:目前系统工具箱的格式,内部使用元数据文件进行工具的配置。支持函数工具和python脚本工具
  • .tbx文件:同ao工具箱类似,可以通用,内部为工具二进制文件
  • .pyt:python工具箱,目前自定义的python工具箱采用该格式,工具箱和工具的脚本包含在同一py文件中。
    • pyt的优点:
      • 结构简单,脚本内置
      • 能够进行加密
    • pyt的缺点:
      • 不能对工具设置标识id,从而不支持帮助id的设定
      • 处理逻辑和tbx目录不同,代码不能直接复用,需要进行改造
  • .atbx:tbx的工具箱打包封装,单个文件,结构统一,更便于传输

系统工具箱

arcgispro中自带的工具箱,统一为tbx目录形式,但支持pyt的扫描

工具箱缓存

当地理处理模块加载时,会对系统工具目录进行扫描,获取目录下所有工具箱,生成工具缓存信息,用于后续的工具查询。

gp缓存,会存放于临时目录的Local Caches目录下,分为g0、g1、g2三代缓存。

  1. g0缓存,用于存储系统工具箱目录结构
  2. g1缓存,在g0基础上,用于存储系统工具箱目录结构,额外包含了显示名称、描述、搜索关键字等信息
  3. g2缓存,用于存储参数类型对应的控件索引

当系统工具初次加载时,会对系统工具箱目录进行扫描,发现规定格式的工具箱。然后根据标志文件的写入时间,生成md5验证,发现文件变化后,更新缓存。

工具箱的结构

Screenshot 2025-12-25 at 10-40-12 Things About Pro - GeoScene 知识库

工具的交互

工具箱目录显示

在地理处理面板,显示工具箱目录树。

鼠标停留,显示对应的悬浮面板,显示描述信息。

工具界面

采用固定类型的参数(详见:参数数据类型)。

根据类型,采用流式布局,进行UI动态生成。

工具行为

详见:自定义工具行为

许可验证

验证工具的许可权限。

参数初始化

根据参数配置,初始化对应控件。

参数验证

当用户进行参数设置后,对参数进行校验,根据校验结果给用户对应反馈。

每次验证的过程,arcpy接受的是新实例化的validator对象以及新包装的parameters对象。

工具执行

将用户设置的参数作为参数组传入,调用工具的执行函数,并获取处理结果。

工具执行历史

获取过往gp工具执行的历史记录,pro关闭后,对历史清空,不进行持久化。

stylx

Pro中的样式文件,类似于desktop中的style文件。

关于样式文件的结构,目前没有官方资料,后续为自研和推测。

stylx和stnx(系统符号样式),都是采用sqlite表结构的方式存储的。

内部表结构

meta

用于存储style的元数据信息。

key value
version 版本信息
cim_version 使用的cim模型的版本,现行版本为3.0
readonly 只读(不允许pro编辑)

STYLES

用于存储style内的样式分类。

一个系统样式,约等于一个stylx文件。

styles

CLASSES

用于存储style内支持的类别。

目前支持18种类型(pro中支持创建编辑的10种,用☑️标记)

  1. Color☑️
  2. Color Scheme☑️
  3. Point Symbol☑️
  4. Line Symbol☑️
  5. Polygon Symbol☑️
  6. Text Symbol☑️
  7. North Arrow
  8. Scale Bar
  9. Standard Label Placement☑️
  10. Maplex Label Placement☑️
  11. Grid
  12. Mesh Symbol☑️
  13. Legend
  14. Table Frame
  15. Map Surround
  16. Dimension Style☑️
  17. Legend Item
  18. Table Frame Field

ITEMS

存储符号的信息。Content字段存储CIM模型信息。

DATA

类似于ITEMS。Content字段采用blob形式存储,支持CIM字符串形式

Pro支持的启动参数

/enablediagnostics

开启诊断模式

/loglevel=

诊断模式下才能启用,支持debug,information,warning,error级别

/dumpcombineddaml

将daml程序启动后转储到Temp目录

/disableaddins

禁用addin

/config

使用配置项启动

/u

设置StartUpMode为Untitled

设置启动工程,支持longPathName

Pro同外部程序的交互

Help.exe

显示本地帮助的程序,单向接收Pro传递的参数,显示帮助内容。接收参数的格式为,[编号] [/config:配置名]。

配置名依赖于Pro加载config配置名称,能够转换帮助的数据来源,缺省时以默认的帮助路径获取帮助网页,设置后将会以[InstallPath]\Resources\Help\zh-CN\configurations[配置名]为帮助源,获取对应的帮助网页。这个设置,为自定义帮助信息提供了可能。
图片
图片

RegisterAddIn.exe

用于addin注册。

支持静默注册,用于sdk开发。

卸载过程,即为根据addin信息,删除对应注册目录中的文件。

安装过程,验证Addinfo中的id、version、desktopVersion。

参数 说明
/? 需要帮助
/s 静默模式
/u 卸载
/shell shell模式
[file].esriAddInX addin

SoftwareAuthorizationPro.exe

用于单机许可授权。没有对应的产品,显示产品列表;产品没有扩展模块,隐藏授权扩展模块。

ArcGISSignAddIn.exe

对addin进行签名。内部使用System.IO.Packaging.PackageDigitalSignatureManager对包进行签名。

[Options]

options参数 说明
/r 输出的addin
/n 数字签名的名称,支持子串
/c 数据签名文件路径
/p 数据签名密码
/rm 移除所有数字签名
/s 静默模式
/? 显示帮助

Pro相关的产品

DI

数据互操作模块。集成FME功能

DP

深度学习模块。集成深度学习相关的python依赖包

ST_geometry

数据库中间件。集成sde相关的依赖库

Pro SDK

pro开发包

proapp-sdk-utilities

sdk实用工具,用于简化一些配置操作

AddDamlIds

图片

FixReferences

图片

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3