Mój skrypt działa dobrze z wybraną jedną klasą funkcji clip_fc = arcpy.GetParameter(0)
.
Jednak po ustawieniu clip_fc na MultiValue we właściwościach skryptu, a następnie wybraniu kilku klas elementów, pojawia się błąd „Parametry są niepoprawne.”.
Czy ktoś może mi pokazać, gdzie popełniam błąd?
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
źródło
źródło
Odpowiedzi:
Musisz zapętlić dane wejściowe. Wielowartościowy jest rozdzielany średnikiem. Podziel się na to i przejdź przez nie. (AddMessages, aby pokazać, jak prezentowane są fcs)
Chociaż nie jestem do końca pewien twojego przepływu pracy. Przekazujesz wiele funkcji do zaczepienia, ale także iterujesz przez wiele funkcji w GDB? Musisz wziąć logikę, którą umieściłem powyżej i dowiedzieć się, jakiej kombinacji danych chcesz (1 lub wiele FC w GDB + 1 lub wiele danych wejściowych do twojego narzędzia)
EDYCJA ... Na podstawie komentarza chcesz wyciąć wiele klas elementów według wielu klas elementów. Spróbuj tego pomieszania kodu opartego na twoim i moim:
źródło
źródło