Mi script funciona bien con una sola clase de entidad seleccionada para clip_fc = arcpy.GetParameter(0)
.
Sin embargo, cuando configuro clip_fc en MultiValue en las propiedades del script y luego selecciono varias clases de entidad, aparece el error "Los parámetros no son válidos".
¿Alguien puede mostrarme dónde me estoy equivocando?
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
Mate
fuente
fuente
Respuestas:
Necesita recorrer sus entradas. El multivalor está delimitado por punto y coma. Partir en eso y recorrerlos. (Agregue mensajes para mostrar cómo se presentan los fcs)
Aunque no estoy completamente seguro de tu flujo de trabajo. ¿Está pasando múltiples funciones para enganchar, pero también iterando a través de múltiples funciones en un GDB? Tendrá que tomar la lógica que coloqué arriba y averiguar qué combinación de entradas desea (1 o muchas FC dentro de un GDB + 1 o muchas entradas para su herramienta)
EDITAR ... Según su comentario, desea muchas clases de entidad recortadas por muchas clases de entidad. Pruebe esta combinación de código basada en la suya y la mía:
fuente
fuente