I am trying to set a field value in one feature class (TRU) based on the value of a field in a separate feature class (DerivedBoundaries) that contains the first, using python in ArcGIS 10.1.
I have written a script that iterates through each site boundary, selects all of the TRU features inside of it, and does that pretty well. However, I cannot seem to get my head around how the arcpy.CalculateField_management() function operates.
#Build an array and fill it with all the TempIDs numbers present in the data table rows = arcpy.SearchCursor(lyr_DerivedBoundaries) row = rows.next() TRU_rows = arcpy.UpdateCursor(lyr_TRU) TRU_row = rows.next() while row: a = row.TempID TempIDs.append(a) row = rows.next() #Set Count equal to the length of the array created in the while loop Count = len(TempIDs) while Position < Count: #iterate through each individual feature by using a definition query query = "[TempID] = " + "'" + TempIDs[Position] + "'" lyr_DerivedBoundaries.definitionQuery = query #center on feature df.panToExtent(lyr_DerivedBoundaries.getSelectedExtent()) #Select all of the TRU Cells within the active Site Boundary arcpy.SelectLayerByLocation_management(lyr_TRU,"COMPLETELY_WITHIN",lyr_DerivedBoundaries,0,"NEW_SELECTION") #Set [Assoc_Site] equal to lyr_DerivedBoundaries.[TempID] hopper = '""""' + str(TempIDs[Position]) + '""""' arcpy.CalculateField_management("TRU","Assoc_Site",hopper,"VB","#")
I have been attempting to make the third argument in the CalculateField function operate based on the syntax I am seeing from copying a successful CalculateField operation as a python snippet from the results window in ArcMap.
Any help is greatly appreciated, I'm open to the possibility that I am going about this is a roundabout way and that there is a better way.
Edit: Just in case, here is the text of the error message I get when the script hits the line with the CalculateField function on it:
Runtime error Traceback (most recent call last): File "", line 43, in File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField raise e ExecuteError: ERROR 999999: Error executing function. Expected end of statement Failed to execute (CalculateField).