Zusammenfassung des Problems
Das Geoverarbeitungs-Framework ist eine der größten Stärken von ArcGIS Pro, und Drittentwickler werden zu Recht darauf hingewiesen: Ein Werkzeug, das als Skriptwerkzeug oder Python-Toolbox erstellt wurde, erhält Geoverarbeitungshistorie, Umgebungs-Einstellungen, Fortschritts- und Nachrichtenberichte, Batch-Modus, ModelBuilder-Komponierbarkeit und arcpy-Skripting – ein Ökosystem, das kein benutzerdefinierter Dialog jemals nachbilden könnte.
Dieses Ökosystem wird jedoch mit genau einer Benutzeroberfläche geliefert: dem automatisch generierten Geoverarbeitungsfenster. Es gibt keinen unterstützten Weg für ein Drittanbieter-Werkzeug, eine andere UI zu präsentieren und dabei ein echtes Geoverarbeitungswerkzeug zu bleiben. Für einfache Werkzeuge ist das generierte Fenster ausreichend. Für interaktive, feedbackreiche Arbeitsabläufe ist es jedoch stark einschränkend, und Entwickler stehen vor einem unnötigen Entweder-Oder:
- Bleibe ein GP-Werkzeug und akzeptiere die Grenzen des generierten Fensters (keine benutzerdefinierten Widgets, keine Live-Vorschauen, eingeschränkte Layoutkontrolle und eine lange Liste von Validierungsverhalten-Anomalien), oder
- Erstelle ein benutzerdefiniertes Dockpane/Fenster mit genau der richtigen UI – und verliere dabei vollständig Geoverarbeitungshistorie, Umgebungen, ModelBuilder, Batch und Skripting.
Esris eigene führende interaktive Arbeitsabläufe zeigen das Problem: der Suitability Modeler, der Image Classification Wizard und Georeferenzierung sind alle benutzerdefinierte Fenster, nicht automatisch generierte Geoverarbeitungsdialoge. Wenn reichhaltige Interaktion wichtig ist, umgeht Esri das GP-Fenster. Drittentwickler haben keinen unterstützten Weg, dasselbe ohne Aufgabe des Geoverarbeitungs-Frameworks zu tun.
Angeforderte Verbesserung
Entkopplung der Werkzeug-UI vom Werkzeug. Zwei Stufen, von denen jede einen großen Schritt darstellen würde:
Stufe 1 – benutzerdefinierte Werkzeugdialoge (die vollständige Anforderung). Ermöglichen Sie einem Add-in, einen WPF-Dialog/-Bereich als Pro-Benutzeroberfläche für ein bestimmtes Geoverarbeitungswerkzeug (Skriptwerkzeug, .pyt, oder .atbx) zu registrieren. Das Werkzeug bleibt in jeder anderen Hinsicht ein erstklassiges GP-Werkzeug:
- Der benutzerdefinierte Dialog sammelt und validiert Parameter und übergibt dann ein Standardparameter-Array an die normale GP-Ausführungspipeline – so wird der Lauf in der Geoverarbeitungshistorie aufgezeichnet, Umgebungs-Einstellungen beachtet, Fortschritt/Nachrichten gemeldet und Metadaten genau wie heute gestempelt.
- Kontexte, die den benutzerdefinierten Dialog nicht hosten können – ModelBuilder, Batch-Modus, geplante Ausführungen, Server-Publishing,
arcpy – fallen automatisch auf das automatisch generierte Fenster und vorhandene Parameterobjekte zurück. Nichts bricht. - Wenn kein benutzerdefinierter Dialog registriert ist, verhält es sich genau wie heute (vollständig abwärtskompatibel).
Stufe 2 – benutzerdefinierte Parametersteuerungen (eine kleinere aber dennoch transformative Anforderung). Ermöglichen Sie einem Entwickler, eine benutzerdefinierte WPF-Steuerung für einen einzelnen Parameter (oder einen benutzerdefinierten Parametertyp) zu registrieren, die im generierten Fenster gehostet wird. Selbst dies würde den Großteil des Problems beseitigen: Eine Wertetabelle könnte zu einem echten Raster mit Live-Feedback werden; ein Remap-Parameter könnte ein Histogramm des Eingabe-Rasters anzeigen; ein Schwellenwert könnte zeigen, welche Zellen er auswählt.
Warum es wichtig ist
Benutzerdefinierte Python-Toolboxen sind ein erstklassiger Erweiterungspfad für ArcGIS Pro, und Organisationen sowie Dritte bauen ernsthafte Analyse-Suiten in kommerzieller Qualität darauf auf. Die Qualität dessen, was der Benutzer sieht, wird nicht durch den Aufwand des Entwicklers begrenzt, sondern durch das generierte Fenster. Entwickler, denen die Benutzererfahrung wichtig ist, werden gedrängt, das Geoverarbeitungs-Framework aufzugeben – wodurch Herkunftsnachweise, Reproduzierbarkeit und Skriptbarkeit verloren gehen; genau die Dinge, die Pro-Werkzeuge vertrauenswürdig machen. Ein unterstützter UI-Erweiterungspunkt würde diesen Kompromiss beenden, die Qualitätsstandards des gesamten Drittanbieter-Ökosystems anheben und keinerlei Kosten bei der Abwärtskompatibilität verursachen.