Saya memiliki beberapa lusin kelas fitur, salah satunya berisi bidang yang saya cari. Mereka disimpan dalam beberapa file geodatabases yang berbeda.
Apakah ada cara cepat mencari setiap kelas fitur untuk menemukan yang memiliki bidang saya? Atau apakah saya harus memeriksa tabel atribut masing-masing dalam Katalog? Beberapa file memiliki nama yang sama tetapi disimpan di lokasi yang berbeda.
Saya ingin dapat melakukan ini di dalam Calculate Value
alat di ModelBuilder, sehingga setiap kali saya perlu, saya bisa menjalankan model pada satu file gdb dan akan mencari melalui semua kelas fitur dalam gdb itu dan mencari bidang .
Sejauh ini, saya memiliki iterator kelas fitur yang beralih ke semua kelas fitur dalam file gdb secara rekursif. Di dalam Calculate Value
saya memiliki kode berikut:
findField(r"%Feature%", "%Search Field%")
def findField(fc, fi):
lst = arcpy.ListFields(fc)
for f in lst:
if f.name == fi:
return fc
else:
return "not found"
Nilai yang dikembalikan dikumpulkan Output Values
sebagai string. Output untuk semua kelas fitur telah "tidak ditemukan", meskipun bidang ada di setidaknya 4 dari mereka.
Calculate Value
untuk mencari bidang, dan mengembalikan jalur kelas fitur sebagai string jika menemukan bidang - lihat jawaban saya di bawah ini.