Summary of the problem
The geoprocessing framework is one of ArcGIS Pro's greatest strengths, and third-party developers are rightly steered toward it: a tool built as a script tool or Python toolbox gets geoprocessing history, environment settings, progress and message reporting, batch mode, ModelBuilder composability, and arcpy scripting — an ecosystem no custom dialog could ever rebuild.
But that ecosystem comes bundled with exactly one user interface: the auto-generated geoprocessing pane. There is no supported way for a third-party tool to present any other UI while remaining a real geoprocessing tool. For simple tools the generated pane is fine. For interactive, feedback-rich workflows it is severely limiting, and developers face an unnecessary either/or:
- Stay a GP tool and accept the generated pane's limits (no custom widgets, no live previews, limited layout control, and a long tail of validation-behavior quirks), or
- Build a custom dockpane/window with exactly the right UI — and lose geoprocessing history, environments, ModelBuilder, batch, and scripting entirely.
Esri's own flagship interactive workflows demonstrate the problem: the Suitability Modeler, the image Classification Wizard, and Georeferencing are all custom panes, not generated geoprocessing dialogs. When rich interaction matters, Esri routes around the GP pane. Third-party developers have no supported way to do the same without abandoning the geoprocessing framework.
Requested enhancement
Decouple the tool UI from the tool. Two tiers, either of which would be a major step:
Tier 1 — custom tool dialogs (the full request). Let an add-in register a WPF dialog/pane as the Pro UI for a specific geoprocessing tool (script tool, .pyt, or .atbx). The tool remains a first-class GP tool in every other respect:
- The custom dialog gathers and validates parameters, then hands a standard parameter array to the normal GP execution pipeline — so the run is recorded in geoprocessing history, honors environment settings, reports progress/messages, and stamps metadata exactly as today.
- Contexts that cannot host the custom dialog — ModelBuilder, batch mode, scheduled runs, server publishing,
arcpy — automatically fall back to the auto-generated pane and existing parameter objects. Nothing breaks. - If no custom dialog is registered, behavior is exactly today's (fully backward compatible).
Tier 2 — custom parameter controls (a smaller but still transformative request). Let a developer register a custom WPF control for an individual parameter (or a custom parameter datatype), hosted inside the generated pane. Even this would eliminate most of the pain: a value table could become a real grid with live feedback; a remap parameter could show a histogram of the input raster; a threshold could show which cells it selects.
Why it matters
Custom Python toolboxes are a first-class extensibility path for ArcGIS Pro, and organizations and third parties build serious, commercial-grade analysis suites on them. The quality of what the user sees is capped not by the developer's effort but by the generated pane. Developers who care about user experience are pushed to abandon the geoprocessing framework — losing provenance, reproducibility, and scriptability, the very things that make Pro tools trustworthy. A supported UI extensibility point would end that trade-off, raise the quality bar of the whole third-party ecosystem, and cost nothing in backward compatibility.