Skrip saya berfungsi dengan baik dengan satu kelas fitur yang dipilih untuk clip_fc = arcpy.GetParameter(0)
.
Namun ketika saya mengatur clip_fc ke MultiValue di properti skrip dan kemudian memilih beberapa kelas fitur, saya mendapatkan kesalahan "Parameter tidak valid.".
Adakah yang bisa menunjukkan kepada saya di mana saya salah?
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, "")
Jawaban:
Anda perlu mengulang-ulang input Anda. Multivalue dibatasi titik koma. Membagi itu dan loop melalui mereka. (AddMessages untuk menunjukkan bagaimana fcs disajikan)
Meskipun saya tidak sepenuhnya yakin dengan alur kerja Anda. Anda mengirim banyak fitur untuk klip, tetapi juga mengulangi beberapa fitur dalam GDB? Anda harus mengambil logika yang saya tempatkan di atas dan mencari tahu kombinasi input apa yang Anda inginkan (1 atau banyak FC di dalam GDB + 1 atau banyak input ke alat Anda)
Sunting ... Berdasarkan komentar Anda, Anda ingin banyak kelas fitur yang dipotong oleh banyak kelas fitur. Coba tumbuk kode ini berdasarkan milik Anda dan milik saya:
sumber
sumber