Prefiero las toolboxes personalizadas ya que puedes capturar la pantalla del diálogo de propiedades de la herramienta. Reunir la información de texto es un poco tedioso, así que he incluido el script que te permite hacer esto fácilmente y/o incorporarlo en tus propias toolboxes.
Comienza con una toolbox, su(s) conjunto(s) de herramientas y herramientas.
Aquí hay una herramienta con su parámetro de entrada. Esta es para documentar toolboxes *.atbx.
Los resultados de la herramienta se envían a los mensajes que pueden ser copiados al portapapeles y pegados en tu procesador de texto, etcétera.
Aquí está la salida de ejemplo en un procesador de texto.
Ahora en las toolboxes personalizadas, llenas los parámetros en un diálogo. Puedes seguir las diversas opciones a continuación
Aquí hay una herramienta de ejemplo.
Los parámetros generales se muestran a continuación.
La ejecución del código puede estar incrustada o almacenada en una ubicación relativa a la propia toolbox. Eso puede estar en la misma carpeta o en otra carpeta relativa a la toolbox.
Puedes proporcionar validación dentro del diálogo, facilitando mantener tu código menos desordenado o si tu validación es simple o inexistente.
De manera similar, puedes especificar variables de entorno dentro del diálogo.
============================
Ahora si ejecuto la atbx info herramienta, obtienes los siguientes resultados.
atbx info
=====================
Ruta de la Herramienta
C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx\atbxInfo
=====================
Parámetros
ruta toolbox C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx
=====================
Mensajes
Hora de Inicio: 16 de junio de 2026 9:00:03 PM
--------
Ejecutando ... C:\arcpro_npg\arcpro_36\scripts_npg_36\atbx_info.py
--------
----
Toolbox : C:\arcpro_npg\arcpro_36\npg_36\npg_36.atbx
----
Propiedad Valor
------------------
alias npg36
--Tool Toolset
FeatureVerticesToPoints Featureclass tools
atbxInfo Toolbox properties
fcToGeo Featureclass tools
fcTonpz NumPy tools
npzTofc NumPy tools
Herramientas y Propiedades
--Tool : FeatureVerticesToPoints
--Toolset : Featureclass tools
tipo : ScriptTool
nombre para mostrar : feature vertices to points
archivo_script : C:\arcpro_npg\arcpro_36\scripts_npg_36\feature_vertices_to_points.py
descripción : Convertir características poly* a vértices.
código_producto : 100
--Parámetros
nombre : point_type
nombre para mostrar : tipo de punto
dirección : Entrada
tipo de dato : Cadena de texto
tipo de parámetro : Requerido
habilitado : Verdadero
categoría : Ninguna
simbología : Ninguna
multi-valor : Falso
Herramientas y Propiedades
--Tool : atbxInfo
--Toolset : Toolbox properties
tipo : ScriptTool
nombre para mostrar : atbx info
archivo_script : C:\arcpro_npg\arcpro_36\scripts_npg_36\atbx_info.py
descripción : adquirir información de toolbox
código_producto : 100
--Parámetros
nombre : toolbox_path
nombre para mostrar : ruta toolbox
dirección : Entrada
tipo de dato : Archivo
tipo de parámetro : Requerido
habilitado : Verdadero
categoría : Ninguna
simbología : Ninguna
multi-valor : Falso
Herramientas y Propiedades
--Tool : fcToGeo
--Toolset : Featureclass tools
'tipo' :'ScriptTool'
displayname : 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.