I'm trying to create the following in ModelBuilder:
Set input feature class
if field1 exists
execute the processes in branch1
else
add field1
execute the processes in branch2
merge branch
While I have no problem with the processes in the two branches, the IF check at the start doesn't seem to be working the way I want it to work. I am using this code in the Calculate Value code block
def ifFieldExists(Input_FC, SUMMARY):
import arcpy
fields = arcpy.ListFields(Input_FC)
for f in fields:
if f ==" SUMMARY":
return "true"
else:
return "false"
and expression
ifFieldExists(r"%Input_FC%", "%SUMMARY%")
This is the precondition for branch1, so if it returns true, the field exists so branch1 executes. The other branch's precondition returns the reverse. When I run it on an input that does contain the field, the precondition returns false instead of true, so the wrong branch executes.