I have a few dozen feature classes, one of which contains the field I am looking for. They are stored in several different file geodatabases.
Is there a quick way of searching each feature class to find the one that has my field? Or do I have to check each one's attribute table in Catalog? Some of the files have the same names but are stored in separate locations.
I would like to be able to do this inside a Calculate Value
tool in ModelBuilder, so that each time I needed to, I could run the model on a single file gdb and it would search through all the feature classes within that gdb and look for the field.
So far, I have a feature class iterator which iterates over all the feature classes in the file gdb recursively. Inside the Calculate Value
I have the following 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"
The returned values are collected in Output Values
as strings. The output for all the feature classes has been "not found", even though the field exists in at least 4 of them.