Ich habe ein paar Dutzend Feature-Classes, von denen eine das gesuchte Feld enthält. Sie werden in verschiedenen Geodatabases gespeichert.
Gibt es eine schnelle Möglichkeit, jede Feature-Class zu durchsuchen, um die mit meinem Feld zu finden? Oder muss ich die Attributtabelle jedes einzelnen im Katalog überprüfen? Einige der Dateien haben denselben Namen, werden jedoch an verschiedenen Orten gespeichert.
Ich möchte dies in einem Calculate Value
Tool in ModelBuilder tun können, damit ich das Modell jedes Mal auf einer einzelnen Datei-GDB ausführen und alle Feature-Classes in dieser GDB durchsuchen und nach dem Feld suchen kann .
Bisher habe ich einen Feature-Class-Iterator, der alle Feature-Classes in der Datei gdb rekursiv durchläuft. Im Inneren habe Calculate Value
ich folgenden Code:
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"
Die zurückgegebenen Werte werden Output Values
als Zeichenfolgen gesammelt . Die Ausgabe für alle Feature-Classes wurde "nicht gefunden", obwohl das Feld in mindestens 4 von ihnen vorhanden ist.
Calculate Value
Feld eingefügt , um nach dem Feld zu suchen und den Pfad der Feature-Class als Zeichenfolge zurückzugeben, wenn sie das Feld findet - siehe meine Antwort unten.