Festlegen von Parametern für Skriptwerkzeuge

Fast alle Werkzeuge verfügen über Parameter, deren Werte im Bereich Geoverarbeitung oder innerhalb eines Skripts festgelegt werden. Wenn das Werkzeug ausgeführt wird, werden die Parameterwerte an den Quellcode des Werkzeugs übergeben. Das Werkzeug liest die Werte und setzt dann seine Arbeit fort.

Weitere Informationen zu Parametern finden Sie unter Parameter der Skriptwerkzeuge.

Die Parameter eines Skriptwerkzeugs können beim Erstellen des 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 zusammengesetzten Datentyp erstellen müssen – d. h. einen Parameter, der verschiedene Datentypen akzeptiert –, können Sie mehrere Datentypen auswählen.

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

EigenschaftBeschreibung

Typ

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

Richtung

Kann die Werte Eingabe oder Ausgabe annehmen. Wenn der Typ des Parameters Abgeleitet lautet, 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 stehen je nach Datentyp des Parameters sechs unterschiedliche Filtertypen zur Verfügung.

Abhängigkeit

Diese Eigenschaft gilt für abgeleitete Ausgabeparameter und für Datentypen von Eingabeparametern. Bei abgeleiteten Ausgabeparametern kann Abhängigkeit auf den Parameter festgelegt werden, der die Definition der Ausgabe enthält. Bei Eingabeparametern wird Abhängigkeit auf den Parameter festgelegt, 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 die Option Standard 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

Der 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 Auswahlen und Verbindungen aktualisiert.

Hinweis:

Wenn Ihr 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 den 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 eigene Skripte, mit denen Sie für mehrere in Beziehung stehende Datasets Analysen durchführen und die nur einige Zahlen bzw. einen booleschen Wert vom Typ "True/False" ausgeben.

Bei Ausgabeparametern mit einem Wertdatentyp (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 Werkzeuge der ArcGIS Network Analyst extension werden Kategorien verwendet, wie unten dargestellt.

Parameterkategorien

Kategorien werden immer 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 der 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)

Bei Verwendung der Funktion arcpy.GetParameter erfolgt der Zugriff auf mehrere Werte über eine Liste, die mit einer for-Schleife iteriert werden kann. 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

Wenn der Datentyp für den Eingabeparameter Feature-Set oder Datensatz lautet, müssen Sie den Speicherort eines Schemas, das die Felder und den Geometrietyp der einzugebenden Features definiert, angeben. Bei einem Schema handelt es sich um eine Feature-Class, Tabelle oder Layer-Datei (.lyrx).

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

Umgebungseinstellung

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 stehen je nach Datentyp des Parameters sechs unterschiedliche Filtertypen zur Verfügung.

In der Regel kann nur ein Filtertyp ausgewählt werden. 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

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 auswählen, können Benutzer nur Point-Feature-Classes als Parameterwert eingeben.

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 für den Filter bereitgestellt werden.

Feld

Mit dem Feldfilter werden die zulässigen Feldtypen definiert: Short, Long, Float, Double, Text, Date, OID, Geometry, Blob, Raster, GUID, GlobalID und XML. Es können mehrere Werte für den Filter bereitgestellt 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 für den Filter bereitgestellt werden.

Bereich

Parameter des Typs Long und Double können den Filter Bereich aufweisen. Filter vom Typ Bereich 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.

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 für den Filter bereitgestellt 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. Zulässig sind die Optionen Zeit, Entfernung und Sonstiges. In der Standardeinstellung sind alle drei Typen zulässig.

Werteliste

Der Filter Werteliste ist hilfreich, wenn Sie eine Reihe von Schlüsselwörtern bereitstellen möchten. Viele Werkzeuge verfügen über einen Satz vordefinierter Schlüsselwörter, wie den Parameter Feldtyp in Feld hinzufügen oder den Parameter JoinAttributes 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.

Eine Werteliste kann für boolesche Datentypen verwendet werden. Bei booleschen Datentypen enthält die Werteliste zwei Werte: "True" und "False". Der Wert "True" ist immer 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 die Eigenschaft Erlaubt NULL-Werte 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 bereitgestellt 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 Abhängigkeit finden Sie oben in der Abhandlung 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 die Eigenschaft 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, Netzwerk-Dataset-Layer

Liste der Reisemodi

Datentypen für Abhängigkeit

Symbolisierung

Wenn die Ausgabe Ihres 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