Hi Robert,
Is this the same process you were working on here?:
Trouble with selecting features by location using arcpy?
If so, I think you should take a look at Spatial Join. This is really the best/only way to transfer attributes the way you are describing via arcpy. Transfer Attributes is only for transferring attributes between linear features.
Anyways, I believe the workflow I recommended in your previous post is still your best bet. In code it would look something like this:
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "in_memory"
arcpy.MakeFeatureLayer_management(DLL_featureclass, "DLL_Layer")
for fc in fcs_to_update:
arcpy.MakeFeatureLayer_management(fc, "temp_layer", "LANDDISTRICT IS NULL")
arcpy.SpatialJoin_analysis("temp_layer", "DLL_Layer", "tempSpatialJoinOutput",
"JOIN_ONE_TO_ONE", "KEEP_COMMON", "
arcpy.AddJoin_management("temp_layer", arcpy.Describe("temp_layer").OIDFieldName,
"tempSpatialJoinOutput", "TARGET_FID")
LANDDISTRICT_field_name = "{}.LANDDISTRICT".format(fc.split("\\")[-1])
arcpy.CalculateField_management("temp_layer", LANDDISTRICT_field_name,
"!tempSpatialJoinOutput.LANDDISTRICT!", "PYTHON_9.3")
arcpy.MakeFeatureLayer_management(fc, "temp_layer", "LANDLOT IS NULL")
arcpy.SpatialJoin_analysis("temp_layer", "DLL_Layer", "tempSpatialJoinOutput",
"JOIN_ONE_TO_ONE", "KEEP_COMMON", "
arcpy.AddJoin_management("temp_layer", arcpy.Describe("temp_layer").OIDFieldName,
"tempSpatialJoinOutput", "TARGET_FID")
LANDLOT_field_name = "{}.LANDLOT".format(fc.split("\\")[-1])
arcpy.CalculateField_management("temp_layer", LANDDISTRICT_field_name,
"!tempSpatialJoinOutput.LANDLOT!", "PYTHON_9.3")
arcpy.RemoveJoin_management("temp_layer")
arcpy.Delete_management("in_memory")
arcpy.Delete_management("temp_layer")
I believe this would be much faster and simpler than any sort of feature-by-feature nested cursor approach.
Micah