All,
I am currently working in ArcMap 10.1. I am trying to add layers to a map, then change the legend's style and location. Below is a sample code. legend variable is working, and I can move it around as a LayoutElement. However, when I want to update the style I keep getting an Index Error: 0. I've been trying my own custom style, but can't even get it to work with the ESRI.style.
Here's the code:
import arcpy from arcpy import env arcpy.env.overwriteOutput = True import os mxd = arcpy.mapping.MapDocument ("C:\\TestFolder\\Untitled.mxd") df = arcpy.mapping.ListDataFrames (mxd, "Layers")[0] style = "ESRI.style" lyr1 = arcpy.mapping.Layer("C:\\TestFolder\\GriDSSAT_Counties.lyr") lyr2 = arcpy.mapping.Layer("C:\\TestFolder\\TestLayer\\LGI_20120821.lyr") lyr3 = arcpy.mapping.Layer("C:\\TestFolder\\States.lyr") styleItem = arcpy.mapping.ListStyleItems(style, "Legend Items")[0] legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0] legend.autoAdd = False arcpy.mapping.AddLayer(df, lyr1) legend.autoAdd = True arcpy.mapping.AddLayer(df, lyr2, "BOTTOM") legend.autoAdd = False arcpy.mapping.AddLayer(df, lyr3, "BOTTOM") print styleItem legend.updateItem(lyr2, styleItem) legend.title = "Whoala" arcpy.mapping.ExportToPDF (mxd, "C:\\TestFolder\\PDFFolder\\Test.pdf")
The error message I receive is as follows:
Traceback (most recent call last):
File "C:\TestFolder\Scripts\legend.py", line 24, in <module>
legend.updateItem(lyr2, styleItem)
File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\_mapping.py", line 772, in updateItem
return convertArcObjectToPythonObject(self._arc_object.updateItem(*gp_fixargs((legend_item_layer, legend_item_style_item, preserve_style_sizes, use_visible_extent, show_feature_count, use_ddp_extent, index), True)))
IndexError: 0
Thanks for any insight on how to fix this
Lee
Message was edited by: Curtis Price 2014.10.25 typo in title