Je préfère les toolboxes personnalisées car vous pouvez capturer l'écran de la boîte de dialogue des propriétés de l'outil. Rassembler les informations textuelles est un peu fastidieux, donc j'ai inclus le script qui vous permet de le faire facilement et/ou de l'incorporer dans vos propres toolboxes.
Commencez avec une toolbox, son(ses) jeu(x) d'outils et ses outils.
Voici un outil avec son paramètre d'entrée. Celui-ci sert à documenter les toolboxes *.atbx.
Les résultats de l'outil sont envoyés aux messages qui peuvent être copiés dans le presse-papiers et collés dans votre traitement de texte, etc.
Voici la sortie d'exemple dans un traitement de texte.
Maintenant, dans les toolboxes personnalisées, vous remplissez les paramètres dans une boîte de dialogue. Vous pouvez suivre les différentes options ci-dessous
Voici un outil d'exemple.
Les paramètres généraux sont affichés ci-dessous.
L'exécution du code peut être intégrée ou stockée dans un emplacement relatif à la toolbox elle-même. Cela peut être dans le même dossier ou dans un autre dossier relatif à la toolbox.
Vous pouvez fournir une validation dans la boîte de dialogue, ce qui facilite le maintien de votre code moins encombré ou si votre validation est simple ou inexistante.
De même, vous pouvez spécifier des variables d'environnement dans la boîte de dialogue.
============================
Maintenant, si je lance l'outil atbx info, vous obtenez les résultats suivants.
atbx info
=====================
Chemin de l'outil
C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx\atbxInfo
=====================
Paramètres
chemin toolbox C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx
=====================
Messages
Heure de début : 16 juin 2026 21:00:03
--------
Exécution ... C:\arcpro_npg\arcpro_36\scripts_npg_36\atbx_info.py
--------
----
Toolbox : C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx
----
Propriété Valeur
------------------
alias npg36
--Outil Jeu d'outils
FeatureVerticesToPoints Outils Featureclass
atbxInfo Propriétés Toolbox
fcToGeo Outils Featureclass
fcTonpz Outils NumPy
npzTofc Outils NumPy
Outils et Propriétés
--Outil : FeatureVerticesToPoints
--Jeu d'outils : Outils Featureclass
type : ScriptTool
nom affiché : sommets des entités vers points
fichier_script : C:\arcpro_npg\arcpro_36\scripts_npg_36\feature_vertices_to_points.py
description : Convertir des entités poly* en sommets.
code_produit : 100
--Paramètres
nom : point_type
nom affiché : type de point
direction : Entrée
type de données : Chaîne de caractères
type de paramètre : Obligatoire
activé : Vrai
catégorie : Aucune
symbologie : Aucune
multi-valeur : Faux
Outils et Propriétés
--Outil : atbxInfo
--Jeu d'outils : Propriétés Toolbox
type : ScriptTool
nom affiché : atbx info
fichier_script : C:\arcpro_npg\arcpro_36\scripts_npg_36\atbx_info.py
description : acquérir les infos toolbox
code_produit : 100
--Paramètres
nom : toolbox_path
nom affiché : chemin toolbox
direction : Entrée
type de données : Fichier
type de paramètre : Obligatoire
activé : Vrai
catégorie : Aucune
symbologie : Aucune
multi-valeur : Faux
Outils et Propriétés
--Outil : fcToGeo
--Jeu d'outils : Outils Featureclass
type : ScriptTool
'nom affiché' : featureclass to Geo
script_file : C:\arcpro_npg\arcpro_36\scripts_npg_36\featureclass_to_Geo.py
description : Convert a featureclass to a Geo array.
product_code : 100
--Parameters
name : input_features
display name : input features
direction : Input
data type : Feature Layer
parameter type : Required
enabled : True
category : None
symbology : None
multi-value : False
Tools and Properties
--Tool : fcTonpz
--Toolset : NumPy tools
type : ScriptTool
displayname : featureclass to npz
script_file : C:\arcpro_npg\arcpro_36\scripts_npg_36\featureclass_to_npz.py
description : Convert a featureclass to a numpy *.npz file.
product_code : 100
--Parameters
name : npz_filename
display name : npz filename
direction : Input
data type : String
parameter type : Required
enabled : True
category : None
symbology : None
multi-value : False
Tools and Properties
--Tool : npzTofc
--Toolset : NumPy tools
type : ScriptTool
displayname : npz to featureclass
script_file : C:\arcpro_npg\arcpro_36\scripts_npg_36\npz_to_featureclass.py
description : Convert a numpy *.npz file to a featureclass.
product_code : 100
--Parameters
name : output_fc
display name : output featureclass
direction : Output
data type : Feature Class
parameter type : Required
enabled : True
category : None
symbology : None
multi-value : False
Succeeded at June 16, 2026 9:00:04 PM (Elapsed Time: 0.68 seconds)
Here is the code
# -*- coding: utf-8 -*-
"""
@author: dan_patterson
"""
import sys
import arcpy
from arcgisscripting._arcgisscripting import _utbx
pth_ = arcpy.GetParameterAsText(0) # the path to the toolbox
script = sys.argv[0] # print this should you need to locate the script
def toolbox_info(t_box):
"""Return toolbox information.
Parameters
----------
t_box : toolbox in *.atbx format
Example
-------
t_box = "C:/temp/npGeom_32.atbx"
"""
def _hdr_(hdr_n):
"""Format the header."""
return "{{:<{}s}}".format(hdr_n) + " {!s:<}"
t_box = t_box.replace("\\", "/")
t_props = _utbx.getToolboxProps(t_box, "*")
t_keys = sorted(list(t_props.keys()))
hdr_n = max([len(i) for i in t_keys])
frmt0 = _hdr_(hdr_n)
msg = frmt0.format("Property", "Value") + "\n" + ("-")*(hdr_n + 7)
z0 = ['name', 'display name', 'direction', 'data type', 'parameter type',
'enabled', 'category', 'symbology', 'multi-value']
keys0 = [i for i in t_keys if i != 'tools']
keys1 = 'tools' if 'tools' in t_keys else None
for k in keys0: # toolbox properties
v = t_props[k]
msg += "\n" + frmt0.format(k, v)
if keys1: # `tool` properties
v = t_props[keys1]
v_keys = sorted(list(v.keys()))
hdr_1 = max([len(i) for i in v_keys])
frmt1 = _hdr_(hdr_1)
msg += "\n" + frmt1.format("--Tool", " Toolset")
for k1 in v_keys:
v1 = v[k1]
msg += "\n " + frmt1.format(k1, v1)
for k1 in v_keys:
pth = "{}/{}".format(t_box, k1)
t_0 = _utbx.getToolProps(pth, '*')
tool_keys = list(t_0.keys())
msg += "\n\nTools and Properties"
msg += "\n--Tool : {!s:<}\n--Toolset : {!s:}\n".format(k1, v[k1])
for k2 in tool_keys:
if k2 != 'params':
msg += " {!s:} : {!s}\n".format(k2, t_0[k2])
elif k2 == 'params':
for i in t_0['params']:
z1 = [str(j) if j != '' else 'None'
for j in [i.name, i.displayName, i.direction,
i.datatype, i.parameterType, i.enabled,
i.category, i.symbology, i.multiValue]
]
msg += "--Parameters\n"
txt = "\n".join([" {!s:<} : {!s:}".format(*j)
for j in list(zip(z0, z1))])
# msg += "parameter"
msg += txt
else:
msg += "unknown"
return msg
# -------
msg = toolbox_info(pth_) # -- run
out_ = "\n--------\nRunning ... {}\n--------\n".format(script)
out_ += "\n----\nToolbox : {}\n----\n".format(pth_)
arcpy.AddMessage(out_)
arcpy.AddMessage(msg)
# ----------------------------------------------------------------------
# __main__ .... code section
if __name__ == "__main__":
# print the script source name.
print('\n{} in source script... {}'.format(__name__, script))
# parameters here
So between screen grabs and the atbx info tool, your documentation is complete.