Festlegen von Skriptwerkzeugparametern

Fast alle Werkzeuge verfügen über Parameter, deren Werte im Bereich Geoverarbeitung oder innerhalb eines Skripts festgelegt werden. Bei der Ausführung des Werkzeugs werden die Parameterwerte an den Quellcode des Werkzeugs gesendet. Das Werkzeug liest diese Werte und verarbeitet sie entsprechend.

Weitere Informationen zu Parametern finden Sie unter Parameter der Skriptwerkzeuge.

Die Parameter eines Skriptwerkzeugs können beim Erstellen eines Skriptwerkzeugs festgelegt werden. Zudem haben Sie die Möglichkeit, Parameter des Skriptwerkzeugs im Werkzeugdialogfeld Eigenschaften hinzuzufügen, zu löschen und zu ändern. Die Eigenschaften eines Skriptwerkzeugs rufen Sie auf, indem Sie mit der rechten Maustaste auf das Werkzeug klicken, auf Eigenschaften klicken und dann auf die Registerkarte Parameter klicken.

Um einen Parameter hinzuzufügen, klicken Sie auf die erste leere Zelle in der Spalte Beschriftung und geben den Namen des Parameters ein. Dies ist der Name, der im Bereich Geoverarbeitung angezeigt wird. Er darf Leerzeichen enthalten. In der Spalte Name wird basierend auf der Beschriftung ein standardmäßiger Parametername erstellt. Der Name kann bei Bedarf jedoch geändert werden. Der Parametername wird für die Python-Syntax benötigt, weshalb er überprüft wird (Leerzeichen werden dabei entfernt).

Erstellen eines Parameters

Nachdem Sie den Anzeigenamen des Parameters eingegeben haben, müssen Sie einen Datentyp für den Parameter auswählen. Klicken Sie dazu wie nachstehend gezeigt in die Zelle Datentyp.

Definieren des Datentyps eines Parameters

Wenn es erforderlich ist, einen Parameter zu erstellen, der mehrere Werte akzeptiert, müssen Sie das Kontrollkästchen Mehrere Werte aktivieren. Wenn Sie einen Verbund-Datentyp erstellen – d. h. einen Parameter, der verschiedene Datentypen akzeptiert –, können Sie mehrere Datentypen auswählen.

Wie zuvor gezeigt und nachfolgend beschrieben, verfügt jeder Parameter über zusätzliche Eigenschaften, die Sie festlegen können.

EigenschaftBeschreibung

Typ

Die Optionen sind Erforderlich, Optional oder Abgeleitet. "Abgeleitet" bedeutet, dass der Benutzer des Werkzeugs keinen Wert für den Parameter angibt. Abgeleitete Typen sind immer Ausgabeparameter.

Richtung

Die Optionen sind Eingabe oder Ausgabe. Wenn die Eigenschaft Typ auf Abgeleitet festgelegt ist, entspricht die Richtung stets Ausgabe.

Kategorie

Parameter können in verschiedene Kategorien eingeteilt werden.

Filter

Falls für einen Parameter nur bestimmte Dataset-Typen oder Werte eingegeben werden sollen, können Sie einen Filter festlegen. Es gibt sechs Filtertypen. Die verfügbaren Typen hängen vom Datentyp des Parameters ab.

Abhängigkeit

Diese Eigenschaft gilt für abgeleitete Ausgabeparameter und für Datentypen von Eingabeparametern. Bei abgeleiteten Ausgabeparametern kann diese Eigenschaft auf den Parameter festgelegt werden, der die Definition der Ausgabe enthält. Bei Eingabeparametern legen Sie dies auf den Parameter fest, der die für die Eingabe benötigten Informationen enthält.

Standard

Der Standardwert für den Parameter. Wenn der Datentyp des Parameters "Feature-Set" oder "Datensatz" lautet, wird zur Definition des Parameterschemas diese Eigenschaft verwendet.

Umgebung

Wenn der Standardwert des Parameters aus einer Umgebungseinstellung stammen soll, enthält diese Eigenschaft den Namen der Umgebungseinstellung.

Symbolisierung

Diese Eigenschaft gilt nur für Ausgabeparameter. Bei dem Wert handelt es sich um den Speicherort einer Layer-Datei (.lyrx), die die Symbolisierung für die Anzeige der Ausgabe enthält.

Parametereigenschaften

Typ

Die Eigenschaft Typ kann auf eine der folgenden Optionen festgelegt werden:

  • Erforderlich: Für den Parameter muss ein Wert angegeben werden, damit das Werkzeug ausgeführt werden kann.
  • Optional: Für den Parameter ist kein Wert erforderlich.
  • Abgeleitet: Verwenden Sie abgeleitete Parameter in den folgenden Fällen:
    • Ausgabe und Eingabe sind identisch. Beispielsweise werden mit dem Werkzeug Feld berechnen die Werte eines Feldes in der Eingabetabelle aktualisiert. Es wird weder eine Tabelle erstellt noch das Schema der Eingabe geändert.
    • Das Werkzeug ändert das Schema der Eingabe. Beispielsweise wird mit dem Werkzeug Feld hinzufügen der Eingabetabelle ein Feld hinzugefügt.
    • Das Werkzeug gibt einen Skalarwert aus, z. B. eine Zahl, eine Zeichenfolge oder einen booleschen Wert. Beispielsweise gibt das Werkzeug Anzahl erhalten einen abgeleiteten ganzzahligen Wert zurück.
    • Das Werkzeug erstellt aus Werten in anderen Parametern eine Ausgabe. Beispielsweise gibt das Werkzeug Feature-Class erstellen einen abgeleiteten Feature-Class-Pfad zurück, den es aus anderen Parametern mit Pfad- und Namenswerten erstellt hat.
    • Das Werkzeug erstellt Daten an einem bekannten Speicherort. Beispiel: Sie verfügen über ein Skript, das eine Feature-Class in einem bekannten Workspace erstellt. Dabei sind weder die Feature-Class noch der Workspace Parameteroptionen.
Hinweis:

Wenn ein Dataset oder ein Layer von einem Werkzeug aktualisiert wird, muss das Werkzeug über einen abgeleiteten Ausgabeparameter verfügen, für den eine Parameterabhängigkeit zu einem Eingabeparameter festgelegt wurde. Dies wurde so eingerichtet, damit die im Hintergrund erfolgende Multi-Thread-Geoverarbeitung in ArcGIS Pro weiß, welche Karten-Layer-Verbindungen bei der Verarbeitung zu trennen sind, um Fehler im Zusammenhang mit Datensperren zu verhindern. Die Verbindungen werden nach der Verarbeitung wieder hergestellt und mit den aktualisierten Eigenschaften wie Auswahl und Verbindungen aktualisiert.

Hinweis:

Wenn das Skriptwerkzeug abgeleitete Ausgaben aufweist, müssen Sie den Wert des abgeleiteten Ausgabeparameters im Skript über die Funktion SetParameterAsText oder SetParameter festlegen.

Ausgabewerte anstelle von Daten

In den obigen Beispielen wird die Ausgabe von abgeleiteten Datasets dargestellt. Bestimmte Werkzeuge geben jedoch Ausgabewerte anstelle von Datasets aus. Dazu zählt das Werkzeug Anzahl erhalten, das einen Datentyp "Long" mit der Anzahl von Zeilen in einer Tabelle ausgibt. Es kommt häufig vor, dass anstelle von Datasets Werte ausgegeben werden. Möglicherweise verfügen Sie über Skripte, mit denen Sie für mehrere in Beziehung stehende Datasets Analysen durchführen und die nur einige Zahlen bzw. einen booleschen Wert im Sinne von "Erfolgreich/Nicht erfolgreich" ausgeben.

Bei Ausgabeparametern mit Wertdatentypen (z. B. Long oder Boolean) handelt es sich stets um Parameter des Typs Abgeleitet anstelle des Typs Erforderlich.

Richtung

Diese Eigenschaft gibt an, ob der Parameter eine Eingabe für das Werkzeug oder eine Ausgabe des Werkzeugs ist.

Wenn der Parametertyp Abgeleitet lautet, wird die Parameterrichtung automatisch auf Ausgabe festgelegt.

Alle Skriptwerkzeuge sollten über Ausgabeparameter verfügen, damit sie in ModelBuilder verwendet werden können. Der Grundgedanke von ModelBuilder ist, die Ausgabe von Werkzeugen mit der Eingabe anderer Werkzeuge zu verknüpfen. Wenn Ihr Skriptwerkzeug keinen Ausgabeparameter aufweist, ist es für ModelBuilder wertlos. Bei der Ausgabe kann es sich um ein Dataset handeln, das in einen Parameterwert eingegeben wird, oder um eine abgeleitete Ausgabe, bei der Speicherort oder Name im Skript ermittelt wird, oder auch um einen abgeleiteten Wert, der berechnet bzw. ermittelt wird. In der einfachsten Form können Sie einen booleschen Wert ausgeben lassen, der bei erfolgreicher Werkzeugausführung den Wert "True" enthält und andernfalls "False".

Kategorie

Parameter können in verschiedene Kategorien eingeteilt werden, um die Größe des Bereichs Geoverarbeitung zu verringern oder um zusammenhängende Parameter, die nicht regelmäßig verwendet werden, zu gruppieren. Sie haben die Möglichkeit, einen neuen Kategorienamen anzugeben oder aus einer Liste auszuwählen, falls Sie bereits eine Kategorie für andere Parameter festgelegt haben. Bei einigen der Erweiterung "ArcGIS Network Analyst"-Werkzeuge werden Kategorien verwendet, wie im Bild unten dargestellt.

Parameterkategorien

Kategorien werden nach den Parametern ohne Kategorie angezeigt. Ordnen Sie erforderliche Parameter keiner Kategorie zu, da sie sonst im Bereich Geoverarbeitung ausgeblendet werden.

Mehrere Werte (MultiValue)

Wenn ein Parameter nicht nur einen Wert, sondern eine Werteliste verarbeiten soll, wählen Sie für die Eigenschaft MultiValue die Einstellung Ja aus.

Nachfolgend ist ein Steuerelement für mehrere Werte abgebildet.

Steuerelement für mehrere Werte (MultiValue)

Auf mehrere Werte kann in Form von Listen zugegriffen werden, wenn Sie die Funktion arcpy.GetParameter verwenden und mit einer for-Schleife iterieren. Mit der Funktion arcpy.GetParameterAsText hingegen können Sie in Form einer durch Semikolons getrennten Zeichenfolge auf mehrere Werte zugreifen. Verwenden Sie zum Aufteilen einer durch Trennzeichen getrennten Zeichenfolge die Python-Methode split, wie im unten stehenden Codebeispiel gezeigt.

import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")

# Process each road type
for road_type in road_list:
  # road_type contains an individual road type string (ex: "Interstates")
  arcpy.AddMessage("Processing: {}".format(road_type))

Standard

Der Standardwert entspricht dem Parameterinhalt, der beim Öffnen des Skriptwerkzeugs angezeigt wird. Dieser Wert wird auch verwendet, wenn bei der Skripterstellung ein Rautenzeichen (#) für den Parameter eingegeben wird. Wenn Sie keinen Wert für die Eigenschaft Standard angeben, bleibt der Parameterwert leer, wenn das Werkzeug geöffnet wird. Wenn Sie für diese Eigenschaft einen Wert angeben, wird die Eigenschaft Umgebungseinstellung deaktiviert. Um die Eigenschaft Umgebungseinstellung zu aktivieren, müssen Sie die Eigenschaft Standard löschen.

Schema

Die Datentypen Feature-Set und Datensatz ermöglichen die interaktive Eingabe von Daten. Bei einem Feature-Set können die Benutzer Ihres Skripts interaktiv Features erstellen, indem sie auf die Karte klicken. Bei einem Datensatz können die Benutzer interaktiv Zeilen in einem Tabellen-Raster erstellen.

Wenn der Datentyp für den Eingabeparameter Feature-Set oder Datensatz lautet, müssen Sie den Speicherort eines Schemas angeben, das die Felder und den Geometrietyp der Eingabe definiert. Bei einem Schema handelt es sich um eine Feature-Class, Tabelle oder Layer-Datei (.lyrx). Wenn eine Layer-Datei angegeben ist, wird der Pfad zu der Layer-Datei internalisiert, und beim erneuten Öffnen des Dialogfelds Eigenschaften wird der Hinweis ... eingebettet ... in der Zelle angezeigt.

Umgebung

Sie können den Standardwert für einen Parameter auf den Wert einer Umgebungseinstellung festlegen, indem Sie unter Umgebungseinstellung mit der rechten Maustaste auf die entsprechende Zelle klicken und den Namen der Umgebungseinstellung auswählen.

Filter

Falls für einen Parameter nur bestimmte Werte oder Dataset-Typen eingegeben werden sollen, können Sie einen Filter festlegen. Klicken Sie auf die entsprechende Zelle unter Filter, und wählen Sie den gewünschten Filtertyp in der Dropdown-Liste aus. Daraufhin wird ein Dialogfeld geöffnet, in dem Sie die Werte für den Filter angeben können. Es gibt 10 Filtertypen, die unten beschrieben werden. Die verfügbaren Filtertypen hängen vom Datentyp des Parameters ab.

In der Regel ist nur ein Filtertyp verfügbar. Nur Long und Double bieten zwei Möglichkeiten: Werteliste und Bereich.

Mit Python haben Sie die Möglichkeit, Filter durch Programmierung festzulegen. Passen Sie dazu die Klasse ToolValidator eines Skriptwerkzeugs an.

Flächeneinheiten

Mit dem Filter für Flächeneinheiten werden die zulässigen Einheitstypen definiert: Quadratzoll, Quadratfuß, Quadratyards, Acres, Quadratmeilen, Quadratmillimeter, Quadratzentimeter, Quadratdezimeter, Quadratmeter, Are, Hektar, Quadratkilometer und Unbekannt.

Feature-Typ

Mit dem Feature-Typ-Filter werden die zulässigen Feature-Class-Typen definiert: Point, Multipoint, Polygon, Polyline, Annotation und Dimension. Es können mehrere Werte angegeben werden.

Sie können für diesen Filter einen oder mehrere Filterwerte auswählen. Eingabe-Feature-Classes werden anhand der Filterwerte überprüft. Wenn Sie beispielsweise nur Point als Filterwert angeben, können Benutzer nur Point-Feature-Classes als Parameterwert eingeben.

Feld

Mit dem Feldfilter werden die zulässigen Feldtypen definiert: Short, Long, Float, Long (64-Bit-Ganzzahl), Double, Text, Datum, OID, Nur Zeit, Nur Datum, Zeitstempel mit Versatz, Geometrie, Blob, Raster, GUID, GlobalID und XML. Es können mehrere Werte angegeben werden.

Datei

Der Dateifilter enthält eine Liste mit Dateisuffixen, die eine Datei aufweisen darf, wie etwa txt (einfache Textdatei) oder csv (kommagetrennte Werte). Sie können einen beliebigen Text für ein Suffix eingeben, es muss kein in ArcGIS bekanntes Suffix sein. Die Länge des Suffix ist nicht begrenzt. Der Punkt gehört nicht zum Suffix. Mehrere Suffixe werden durch Semikolons getrennt angegeben.

Lineare Einheiten

Mit dem Filter für lineare Einheiten werden die zulässigen Einheitstypen definiert: Zoll, Punkte, Fuß, Yards, Meilen, Seemeilen, Millimeter, Zentimeter, Meter, Kilometer, Dezimalgrad, Dezimeter, Grad und Unbekannt. Es können mehrere Werte angegeben werden.

Bereich

Bereichfilter haben zwei Werte: den Minimal- und den Maximalwert. Der Bereich ist einschließend, das heißt, Minimalwert und Maximalwert gehören zur gültigen Auswahl. Parameter des Typs Long und Double können diesen Filter nutzen.

Zeiteinheiten

Mit dem Filter für Zeiteinheiten werden die zulässigen Einheitstypen definiert: Millisekunden, Sekunden, Minuten, Stunden, Tage, Wochen, Monate, Jahre, Jahrzehnte, Jahrhunderte und Unbekannt. Es können mehrere Werte angegeben werden.

Einheitentyp für Reisemodus

Mit diesem Filter können basierend auf der Einheit des Impedanzattributs des Reisemodus die zulässigen Reisemodus-Typen festgelegt werden. Die Optionen sind Zeit, Entfernung und Sonstiges. In der Standardeinstellung sind alle drei Typen zulässig.

Werteliste

Dieser Filter kann verwendet werden, um eine Reihe von Schlüsselwörtern bereitzustellen. Viele Werkzeuge verfügen über einen Satz vordefinierter Schlüsselwörter, wie den Parameter Feldtyp in Feld hinzufügen oder den Parameter Attribute verbinden in vielen Werkzeugen des Toolsets "Überlagerung".

Der Filter Werteliste kann für die Datentypen "Long" und "Double" verwendet werden. Für diese Typen geben Sie die zulässigen numerischen Werte ein.

Wenn Sie möchten, dass Benutzer unter mehreren Werten wählen können, legen Sie die Eigenschaft Multivalue auf Ja fest.

Der Filter Werteliste kann für boolesche Datentypen verwendet werden. Bei booleschen Datentypen enthält der Filter Werteliste zwei Werte: "True" und "False". Der Wert "True" ist der erste Wert in der Liste. Diese Werte werden in der Befehlszeile zur Angabe des Wertes verwendet. Beispiele sind Feld hinzufügen sowie die Schlüsselwörter {NULLABLE | NON_NULLABLE}, die für den Parameter field_is_nullable verwendet werden.

Workspace

Der Workspace-Filter legt die zulässigen Typen für Eingabe-Workspaces fest. Die drei Werte lauten wie folgt:

  • Dateisystem: Ein Systemordner zum Speichern von Shapefiles, Coverages, INFO-Tabellen und Grids.
  • Lokale Datenbank: Eine Personal- oder File-Geodatabase.
  • Remote-Datenbank: Eine Enterprise-Datenbankverbindung.

Es können mehrere Werte angegeben werden.

Abhängigkeit

Die Eigenschaft Abhängigkeit hat die folgenden zwei Verwendungszwecke:

  • Bei abgeleiteten Ausgabeparametern wird Abhängigkeit auf den Eingabeparameter festgelegt, der vom Werkzeug geändert wird. Weitere Informationen zu abgeleiteten Daten und dem Filter Abhängigkeit finden Sie oben im Abschnitt zur Eigenschaft "Typ".
  • Bei Eingabeparametern enthält Abhängigkeit den Namen der anderen, vom Datentyp verwendeten Parameter. Beispiel: Für einen Eingabefeld-Datentyp wird Abhängigkeit auf den Namen des Tabellenparameters festgelegt, der die Felder enthält.

Sie können den Filter Abhängigkeit nur für bestimmte Eingabeparameter festlegen, wie in der folgenden Tabelle dargestellt.

Eingabedatentyp"Abgerufen von"-DatentypBeschreibung

Feld oder SQL-Ausdruck

Tabelle

Die Tabelle mit den Feldern.

INFO-Feld oder INFO-Ausdruck

INFO-Tabelle

Die INFO-Tabelle mit den Feldern.

Coverage-Feature-ClassCoverage

Das Coverage mit den Features.

Flächeneinheiten oder Lineare Einheiten

GeoDataset

Geographisches Dataset, das zum Ermitteln der Standardeinheiten verwendet wird.

KoordinatensystemWorkspace

Workspace, der zum Ermitteln des Standardkoordinatensystems verwendet wird.

Hierarchie-Einstellungen für Network AnalystNetzwerk-Dataset

Netzwerk-Dataset mit den Informationen zur Hierarchie.

Geostatistische WertetabelleGeostatistischer Layer

Der Analyse-Layer mit den Tabellen.

Netzwerkreisemodus

Netzwerkdatenquelle, Netzwerk-Dataset oder Netzwerk-Dataset-Layer

Liste der Reisemodi

Datentypen für Abhängigkeit

Bei einem Wertetabellenparameter sind alle Feldspalten implizit von der ersten Datenspalte in einer Wertetabelle abhängig. Die Dropdown-Liste des Parameters für jede nachfolgende Feldspalte enthält automatisch alle verfügbaren Felder in den Daten.

Symbolisierung

Wenn die Ausgabe des Werkzeugs ein Feature-Set, Raster, TIN oder Layer ist, können Sie mit der Eigenschaft Symbolisierung den Speicherort einer Layer-Datei (.lyrx) angeben. Wird das Werkzeug ausgeführt und der Anzeige eine Ausgabe hinzugefügt, wird sie anhand der Symbolisierung in der Symbolisierungs-Layer-Datei dargestellt.

Vorsicht:

Die Layer-Datei wird bei jeder Ausführung des Werkzeugs gelesen. Wenn die Layer-Datei nicht gefunden wird (da sie verschoben oder gelöscht wurde), wird die Standardsymbolisierung verwendet.

Verwandte Themen