Mein Skript funktioniert gut mit einer einzelnen Feature-Class, für die ausgewählt wurde clip_fc = arcpy.GetParameter(0)
.
Wenn ich jedoch clip_fc in den Skripteigenschaften auf MultiValue setze und dann mehrere Feature-Classes auswähle, wird die Fehlermeldung "Parameter sind ungültig" angezeigt.
Kann mir jemand zeigen, wo ich falsch liege?
import arcpy
import os.path
from arcpy import env
arcpy.env.workspace = r"C:\GIS Home\project_1\clipshps\Combined_mf.gdb"
arcpy.env.overwriteOutput = True
clip_fc = arcpy.GetParameter(0)
clip_name = str(clip_fc)
output_dir = r"C:\GIS Home\project_1\clipshps\outputs_clip"
for fds in arcpy.ListDatasets():
for fc in arcpy.ListFeatureClasses('','',fds):
out = os.path.join(output_dir, fc + "_" + clip_name[40:] + "_clip.shp")
arcpy.Clip_analysis(fc, clip_fc, out, "")
arcgis-desktop
arcpy
clip
Matt
quelle
quelle
Antworten:
Sie müssen Ihre Eingaben durchlaufen. Multivalue ist durch Semikolons getrennt. Teilen Sie das auf und durchlaufen Sie sie. (AddMessages, um zu zeigen, wie die fcs dargestellt werden)
Obwohl ich mir Ihres Workflows nicht ganz sicher bin. Sie übergeben mehrere Funktionen zum Anstecken, durchlaufen aber auch mehrere Funktionen in einer GDB? Sie müssen die oben platzierte Logik verwenden und herausfinden, welche Kombination von Eingaben Sie möchten (1 oder viele FCs in einem GDB + 1 oder viele Eingaben in Ihr Werkzeug).
BEARBEITEN ... Basierend auf Ihrem Kommentar möchten Sie, dass viele Feature-Classes von vielen Feature-Classes abgeschnitten werden. Probieren Sie dieses Code-Mashup aus, das auf Ihrem und meinem basiert:
quelle
quelle