Sie können für das Dialogfeld "Skriptwerkzeug" benutzerdefiniertes Verhalten festlegen, etwa das Aktivieren und Deaktivieren von Parametern, das Bereitstellen von Standardwerten und das Aktualisieren von Zeichenfolgen-Schlüsselwörtern. Durch Hinzufügen von Python-Code können Sie folgende Aktionen ausführen:
- Aktivieren bzw. Deaktivieren von Parametern auf Grundlage von Werten in anderen Parametern
- Aktualisieren von Parameterfiltern: Mit einem Feldfilter können Sie eine Liste gültiger Feldtypen wie etwa LONG oder DOUBLE erstellen. Mit einem Zeichenfolgenfilter können Sie, wie unten gezeigt, eine Liste gültiger Schlüsselwörter definieren. Es gibt sechs Arten von Filtern: Werteliste, Bereich, Feature-Class, Datei, Feld und Workspace.
- Bereitstellen von Standardwerten für Parameter, zum Beispiel die Zellengröße bei Rastern
- Anpassen von Warnungen und Fehlermeldungen, die im Dialogfeld angezeigt werden
- Einordnen von Parametern in verschiedene Kategorien
- Aktualisieren der Beschreibung von Ausgabe-Datasets zur Verwendung in ModelBuilder
Funktionsweise der Validierung
Die Validierung erfolgt durch einen Block mit Python-Code, mit dem die Geoverarbeitung steuert, wie sich das Werkzeugdialogfeld und das Python-Fenster basierend auf der Benutzereingabe ändern. Die von Esri bereitgestellten Systemwerkzeuge waren schon immer in der Lage, auf Benutzereingaben zu reagieren und das Werkzeugdialogfeld wie oben beschrieben entsprechend anzupassen.
Validierung
Validierung bedeutet die Überprüfung, ob alle Werkzeugparameter korrekt sind und ob im Falle eines Fehlers sinnvolle Meldungen bereitgestellt werden. Die Validierung besteht aus zwei Teilen:
- Dem Teil, den Sie durch Hinzufügen ausführen können.
- Dem von ArcGIS automatisch durchgeführten Teil. Dieser Teil der Validierung wird als interne Prüfung (bzw. Basisprüfung) bezeichnet, da es sich um die grundlegende Überprüfung handelt, die intern von der Geoverarbeitung in ArcGIS vorgenommen wird.
Werfen wir zunächst einen Blick auf die Funktionen der internen Prüfung:
- Falls ein Parameter erforderlich ist, wird geprüft, ob er leer ist (noch nichts eingegeben wurde). Ist dies der Fall, wird die Meldung "Wert ist erforderlich" im Werkzeugdialogfeld angezeigt (mit einem grünen Punkt anstelle eines roten X).
- Es wird geprüft, ob der eingegebene Wert den richtigen Typ aufweist (z. B., ob anstelle einer Feature-Class ein Raster oder anstelle einer Zahl Buchstaben eingegeben wurden).
- Die Filtermitgliedschaft wird geprüft. Beispiel: Wenn ein Wertelistefilter mit den Schlüsselwörtern ROT, ORANGE und GELB vorliegt und BLAU eingegeben wird, wird eine Fehlermeldung angezeigt, da sich BLAU nicht im Wertelistefilter befindet.
- Das Vorhandensein von Eingabe-Datasets wird überprüft.
- Es wird ein standardmäßiger Katalogpfad für Ausgabe-Datasets erzeugt.
- Die Beschreibung der Ausgabedaten wird auf Grundlage der Regeln in einem speziellen Objekt aktualisiert, das als Schema bezeichnet wird.
- Das Vorhandensein von Ausgabe-Datasets wird anhand der Umgebungseinstellung overwriteOutput überprüft. Wenn das Dataset vorhanden ist und die overwriteOutput-Einstellung "false" lautet, wird eine Fehlermeldung ausgegeben, anderenfalls eine Warnung.
- Wenn es sich bei dem Parameter um einen Felddatentyp handelt, wird überprüft, ob das Feld in der zugehörigen Tabelle vorhanden ist.
- Es wird überprüft, ob sich das Ausgabe-Dataset vom Eingabe-Dataset unterscheidet (es sei denn, die Ausgabe wurde abgeleitet, wie bei Feld hinzufügen).
- Bei Parametern mit den Datentypen "lineare Einheit" oder "Flächeneinheit" werden die Standardwerte festgelegt, indem die entsprechenden Werte in ArcMap ermittelt werden (sofern die Ausführung über ArcMap erfolgt).
- Wenn es sich bei der Ausgabe um ein Coverage, ein Grid oder eine INFO-Tabelle handelt, wird überprüft, ob die bei diesen Datasets vorgeschriebene maximale Anzahl von 13 Zeichen für den Dateinamen eingehalten wurde.
Die folgenden Aufgaben werden nicht von der internen Prüfung durchgeführt, Sie können sie jedoch in Ihrem eigenen Validierungscode selbst übernehmen:
- Aktualisierung von Filtern auf Grundlage der Interaktion mit anderen Parametern. Beispiel: Wenn Benutzer eine Point-Feature-Class im ersten Parameter eingeben, soll im Werkzeugdialogfeld ROT, ORANGE und GELB im dritten Parameter angezeigt werden. Wird eine Polygon-Feature-Class eingegeben, soll im dritten Parameter BLAU, GRÜN und LILA angezeigt werden.
- Aktivierung/Deaktivierung von Parametern
- Berechnung von Standardwerten
- Durchführung werkzeugspezifischer Parameterinteraktionen
Der Code, den Sie hinzufügen, funktioniert wie folgt zusammen mit der internen Prüfung:
- Sie können Regeln bereitstellen, anhand derer die interne Prüfung die Beschreibung der Ausgabe-Datasets aktualisiert. Diese Regeln sind im Schema-Objekt enthalten.
- Sie können Filter vor der internen Prüfung aktualisieren. Obiges Beispiel: Wenn eine Point-Feature-Class eingegeben wird, wird der Filter so aktualisiert, dass er ROT, ORANGE und GELB enthält. Die interne Prüfung prüft dann den vom Benutzer eingegebenen Wert anhand der Werte im Filter.
Darüber hinaus können, wie bereits erwähnt, mit dem Validierungscode Standardwerte berechnet, Parameter aktiviert bzw. deaktiviert und Meldungen individuell angepasst werden. Diese Aktionen wirken sich nicht auf die interne Prüfung aus, sie beeinflussen lediglich das Aussehen des Werkzeugdialogfeldes.