Samenvatting van het probleem
Het geoprocessing-framework is een van de grootste sterke punten van ArcGIS Pro, en externe ontwikkelaars worden terecht naar dit framework geleid: een tool die is gebouwd als een scripttool of Python toolbox krijgt geoprocessing-geschiedenis, omgevingsinstellingen, voortgangs- en berichtrapportage, batchmodus, ModelBuilder-composability, en arcpy scripting — een ecosysteem dat geen enkele aangepaste dialoog ooit zou kunnen nabouwen.
Maar dat ecosysteem wordt geleverd met precies één gebruikersinterface: het automatisch gegenereerde geoprocessing-paneel. Er is geen ondersteunde manier voor een tool van derden om een andere UI te presenteren terwijl het toch een echte geoprocessing-tool blijft. Voor eenvoudige tools is het gegenereerde paneel prima. Voor interactieve workflows met veel feedback is het echter zeer beperkend, en ontwikkelaars staan voor een onnodige keuze:
- Blijf een GP-tool en accepteer de beperkingen van het gegenereerde paneel (geen aangepaste widgets, geen live previews, beperkte lay-outcontrole en een lange lijst met validatiegedragsquirks), of
- Bouw een aangepast dockpaneel/venster met precies de juiste UI — en verlies volledig de geoprocessing-geschiedenis, omgevingen, ModelBuilder, batch en scripting.
De eigen toonaangevende interactieve workflows van Esri tonen het probleem aan: de Suitability Modeler, de image Classification Wizard en Georeferencing zijn allemaal aangepaste panelen, geen gegenereerde geoprocessing-dialoogvensters. Wanneer rijke interactie belangrijk is, omzeilt Esri het GP-paneel. Ontwikkelaars van derden hebben geen ondersteunde manier om hetzelfde te doen zonder het geoprocessing-framework te verlaten.
Gevraagde verbetering
Ontkoppel de tool-UI van de tool. Twee niveaus, waarvan elk een grote stap zou zijn:
Niveau 1 — aangepaste tool-dialoogvensters (de volledige aanvraag). Laat een add-in een WPF-dialoog/paneel registreren als de Pro UI voor een specifieke geoprocessing-tool (scripttool, .pyt, of .atbx). De tool blijft in alle andere opzichten een volwaardige GP-tool:
- De aangepaste dialoog verzamelt en valideert parameters en geeft vervolgens een standaard parameterarray door aan de normale GP-uitvoeringspijplijn — zodat de uitvoering wordt vastgelegd in de geoprocessing-geschiedenis, omgevingsinstellingen worden gerespecteerd, voortgang/berichten worden gerapporteerd en metadata precies worden gestempeld zoals nu.
- Contexten die het aangepaste dialoogvenster niet kunnen hosten — ModelBuilder, batchmodus, geplande uitvoeringen, serverpublicatie,
arcpy — vallen automatisch terug op het automatisch gegenereerde paneel en bestaande parameterobjecten. Niets gaat kapot. - Als er geen aangepast dialoogvenster is geregistreerd, is het gedrag precies zoals vandaag (volledig achterwaarts compatibel).
Niveau 2 — aangepaste parameterbedieningen (een kleinere maar nog steeds transformerende aanvraag). Laat een ontwikkelaar een aangepast WPF-besturingselement registreren voor een individuele parameter (of een aangepast parametertype), gehost binnen het gegenereerde paneel. Zelfs dit zou het grootste deel van de pijn wegnemen: een waardetabel kan veranderen in een echte raster met live feedback; een remap-parameter kan een histogram van de invoerraster tonen; een drempelwaarde kan laten zien welke cellen worden geselecteerd.
Waarom het belangrijk is
Aangepaste Python-toolkasten zijn een volwaardige uitbreidingsmogelijkheid voor ArcGIS Pro, en organisaties en derden bouwen serieuze analysesuites van commerciële kwaliteit erop. De kwaliteit van wat de gebruiker ziet wordt niet bepaald door de inspanning van de ontwikkelaar maar door het gegenereerde paneel. Ontwikkelaars die geven om gebruikerservaring worden gedwongen het geoprocessing-framework te verlaten — waarbij ze herkomst, reproduceerbaarheid en scriptbaarheid verliezen, juist die dingen die Pro-tools betrouwbaar maken. Een ondersteund uitbreidingspunt voor UI zou die afweging beëindigen, de kwaliteitslat voor het hele ecosysteem van derden verhogen en niets kosten in achterwaartse compatibiliteit.