import arcpy from arcpy import env env.workspace = r"\\TestServer\TestCases_Geodatabase.gdb" mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] case_number = arcpy.GetParameterAsText(0) #------------------------------------------------------------------------------- # Buffer Processing # def CreateBuffer(): # set buffer parameters case = "Cases" output ="Buffer_200" dist = "200 feet" side = "OUTSIDE_ONLY" # delete existing temporary buffer, if any if arcpy.Exists(output): arcpy.Delete_management(output) # create buffer arcpy.Buffer_analysis(case, output, dist, side) # update symbology try: source_layer = r"\\TestServer\Map Templates\GIS_Lyr_Files\Buffer.lyr" update_layer = arcpy.mapping.ListLayers(mxd, "B*", df)[0] arcpy.mapping.UpdateLayer(df, update_layer, source_layer, True) except Exception as e: arcpy.AddError("Updating symbology \n sl = " + source_layer + "\n" + e.message) def main(): CreateBuffer() arcpy.RefreshTOC arcpy.RefreshActiveView if __name__ == '__main__': main()
Updating symbology sl = \\TestServer\Map Templates\GIS_Lyr_Files\Buffer.lyr list index out of range Completed script Buffer200... Failed to execute (Buffer200). Failed at Wed Mar 28 08:22:06 2012 (Elapsed Time: 56.00 seconds)
Solved! Go to Solution.
source_layer = "H:/GIS_Data/Buffer.lyr" # point to your own .lyr sourceLayer = arcpy.mapping.Layer(source_layer) arcpy.MakeFeatureLayer_management(output, "Buffs") addLayer = arcpy.mapping.Layer("Buffs") arcpy.mapping.AddLayer(df,addLayer) update_layer = arcpy.mapping.ListLayers(mxd, "Buffs", df)[0] arcpy.AddMessage(source_layer) arcpy.mapping.UpdateLayer(df, update_layer, sourceLayer, True)
source_layer = "H:/GIS_Data/Buffer.lyr" # point to your own .lyr sourceLayer = arcpy.mapping.Layer(source_layer) arcpy.MakeFeatureLayer_management(output, "Buffs") addLayer = arcpy.mapping.Layer("Buffs") arcpy.mapping.AddLayer(df,addLayer) update_layer = arcpy.mapping.ListLayers(mxd, "Buffs", df)[0] arcpy.AddMessage(source_layer) arcpy.mapping.UpdateLayer(df, update_layer, sourceLayer, True)