2

I am new to ModelBuilder and have not been able to figure how to use part of the FC name: For example the first FC in my GDB containing around 100 files is "A1005_GPS_Residence", and I need to calculate the new field SID = "A1005".

I have seen some posts with python and manually using the Field Calculator.

I tried using one expression, shown in the screenshot, but I am not sure if I can combine field calculations with inline substitution or the like !%Name%![1:4].

Screenshot of MB

PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
asked Sep 1, 2012 at 20:50
2
  • Just a suggestion but unless you know the desired substring is ALWAYS going to be the first 5 characters it might be better to use split or a regex to get at it. Commented Sep 2, 2012 at 21:19
  • 1
    The link in your question is broken. Can you refresh or remove it, please? Commented Dec 18, 2014 at 4:31

1 Answer 1

3

I have attached a python script that should steer you in the right direction. You will find that custom naming in loops is much easier in python than model builder.

EDIT: Added additional code to address new information

# Import standard library modules
import arcpy, os, sys
from arcpy import env
# Allow for file overwrite
arcpy.env.overwriteOutput = True
# Set the workspace directory 
env.workspace = r"C:\temp.gdb" 
# Get the list of the featureclasses to process
fc_tables = arcpy.ListFeatureClasses()
# Loop through each file and perform the processing
for fc in fc_tables:
 print str("processing " + fc)
 # Define field name and expression
 field = "SID"
 expression = str(fc[:5]) #subsets first 5 characters of fc name
 # Create a new field with a new name
 arcpy.AddField_management(fc,field,"TEXT")
 # Calculate field here
 arcpy.CalculateField_management(fc, field, "expression", "PYTHON") 

enter image description here

answered Sep 2, 2012 at 1:23
1
  • Thanks so much for all the help and for the script. It saved me hours of trying to piece bits of python code together, and a nice way to start looking into arcpy. Commented Sep 4, 2012 at 18:32

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.