jxyu

IOError when calling Style File

Discussion created by jxyu on Jun 14, 2013
Latest reply on Jun 14, 2013 by JScheirer-esristaff
Hello,

I've started to experiment with batch creating large number of mxd recently. I have been running into an IOError when calling the .style file, and hoping someone can shred some light on the issue.

Here is the code: I'm trying to call a legend item from the user's style file through "arcpy.mapping.ListStyleItems".

import arcpy, os, sys, os.path


##ExportLyr = arcpy.GetParameterAsText(0)
##DummieMXD = arcpy.GetParameterAsText(1)
##MXDforExport = arcpy.GetParameterAsText(2)
##JPEG = arcpy.GetParameterAsText(3)

#EnvironmentalSetting

styleFile = r"C:\Temp\I68078.style"

##styleFile = r'C:\Users\i68078\AppData\Roaming\ESRI\Desktop10.1\ArcMap\I68078.style'
print os.path.isfile(styleFile)

mxd = arcpy.mapping.MapDocument(DummieMXD)
mxd.activeView = 'PAGE_LAYOUT'
df = arcpy.mapping.ListDataFrames(mxd)[0]


styleItem = arcpy.mapping.ListStyleItems(styleFile, "Legend Items", "*")


for l in arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT"):      
        l.autoAdd=True       
        l.elementPositionX = 0.94
        l.elementPositionY = 8.9       
        l.elementHeight = 0.25
        l.elementWidth = 0.25
        l.title = "Legend"
        addLayer = arcpy.mapping.Layer(ExportLyr)
        arcpy.mapping.AddLayer(df, addLayer,"TOP")
        for lyr in arcpy.mapping.ListLayers(mxd):
                lyr.showLabels = True
                if lyr.supports("LABELCLASSES"):
                        print lyr.name
                        for lblClass in lyr.labelClasses:
                                if lblClass.showClassLabels:
                                        print lblClass.className
                                        l.updateItem(lyr, styleItem)
                               
styleItem = arcpy.mapping.ListStyleItems(customStylePath, "Legend Items", "ESRI_Style")



df.extent = lyr.getSelectedExtent(True)
df.scale = 6000000
df = 'PAGE_lAYOUT'
arcpy.RefreshActiveView()
mxd.saveACopy(MXDforExport)
arcpy.mapping.ExportToJPEG(mxd, JPEG, df, df_export_width=3000, df_export_height=2200, resolution=150)

print "done"
del arcpy, mxd, addLayer, lyr, df




every time when the code is run, even though os.path.isfile(styleFile) is output as "True". I would get following IOError:

True

Traceback (most recent call last):
  File "C:\Work\Py_Tests\ExportMXD_working.py", line 28, in <module>
    styleItem = arcpy.mapping.ListStyleItems(styleFile, "Legend Items", "*")
  File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\mapping.py", line 1599, in ListStyleItems
    return convertArcObjectToPythonObject(arcgisscripting._listStyleItems(*gp_fixargs([style_file_path, style_folder_name, wildcard], True, False)))
IOError: Cannot find style called 'C:\Temp\I68078.style'. Make sure the style file exists.




Thank you for all your help!
J-

Outcomes