I am trying to create a model where I add multiple new fields to a feature class and to do some other geoprocessing tasks. Is there a way to choose what the field names will be based on user input? I have one field that I add to the feature class which depends on what the data represents and I was wondering if there is a way where I can when running the model select one of two options to what the field should be called. I also wanted to do it so that I could select whether it will add the WAperiod field. I am pretty new to this so I can imagine its something very simple
As for providing options as to which field name to choose, you can check the 'branching' section of modelbuilder to see how 'if-else' conditions are implemented.
It's pretty easy to create a string parameter value filter to set the choices to a limited list of strings. When the model tool is run, it will present a picklist of keywords (which can be the same as the list of field names you want).
Value list filter—Help | ArcGIS Desktop
Model parameters—ArcGIS Pro | ArcGIS Desktop
If you want the model to figure out the name without the user having to know, branching your model (as Dan suggests) is an option, but I think it's easier to use Calculate Value to calculate your field name. Either approach will require some scripting.
# Calculate Value Expression GetFieldName(r"%table%") # Code Block def GetFieldName(tbl): # use field name to figure out what sort of table, # if KEYFIELD is not there, returns empty (false) # and field name is assigned "FIELDNAME2" if arcpy.ListFields(tbl, "KEYFIELD"): fname = "FIELDNAME1" else: fname = "FIELDNAME2" return fname # Data Type String
Brilliant! thanks for the help guys