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 können auf Benutzereingaben reagieren und das Werkzeugdialogfeld wie oben beschrieben entsprechend anpassen.
Validierung
Validierung bedeutet zu überprüfen, ob alle Werkzeugparameter korrekt sind und ob im Falle eines Fehlers sinnvolle Meldungen bereitgestellt werden. Die Validierung besteht aus zwei Teilen:
- Der Code, den Sie hinzufügen.
- Die automatische interne Validierung (oder grundlegende Validierung), die von der Geoverarbeitung in ArcGIS durchgeführt wird.
Bei der internen Validierung werden folgende Schritte ausgeführt:
- Falls ein Parameter erforderlich ist, wird geprüft, ob er leer ist (nichts ist eingegeben). Ist dies der Fall, wird die Meldung angezeigt, dass der Wert im Werkzeugdialogfeld erforderlich (mit einem grünen Punkt anstelle eines roten X).
- Prüft, ob der eingegebene Wert den richtigen Typ aufweist (z. B., ob anstelle einer Feature-Class ein Raster oder anstelle einer Zahl Buchstaben eingegeben wurde).
- Prüft die Filtermitgliedschaft. 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.
- Erzeugt einen standardmäßigen Katalogpfad für Ausgabe-Datasets.
- Aktualisiert die Beschreibung der Ausgabedaten auf Grundlage der Regeln in einem speziellen Objekt, das als Schema bezeichnet wird.
- Es wird überprüft, ob ein Ausgabe-Datasets mit der Option zum Überschreiben der Ausgabe des Geoverarbeitungsvorgangs vorhanden ist. Wenn ein Dataset vorhanden ist und die Option "false" lautet, tritt ein Fehler auf, andernfalls wird eine Warnmeldung angezeigt.
- Wenn es sich bei dem Parameter um einen Felddatentyp handelt, wird bestätigt, dass das Feld in der zugehörigen Tabelle vorhanden ist.
- Prü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 oder 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.