Skip to content

Instantly share code, notes, and snippets.

@steveoh
Created November 13, 2017 23:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save steveoh/1c5d4215180c299e63ee9492fc849dac to your computer and use it in GitHub Desktop.
Save steveoh/1c5d4215180c299e63ee9492fc849dac to your computer and use it in GitHub Desktop.
Update layer symbology with arcpy
import json
import arcpy
def resize_symbol(layer):
if not layer.isFeatureLayer:
return
symbology = json.loads(layer._arc_object.getsymbology())
if symbology['renderer']['type'] == 'simple':
if symbology['renderer']['symbol']['style'] == 'esriSMSCircle':
symbology['renderer']['symbol']['size'] *= 3
if symbology['renderer']['symbol']['style'] == 'esriSLSSolid':
symbology['renderer']['symbol']['width'] *= 3
else:
for break_symbols in symbology["renderer"]["uniqueValueInfos"]:
if break_symbols['symbol']['style'] == 'esriSMSCircle':
break_symbols['symbol']['size'] *= 3
if break_symbols['symbol']['style'] == 'esriSLSSolid':
break_symbols['symbol']['width'] *= 3
layer.updateLayerFromJSON(json.dumps({'drawingInfo': symbology}))
layers = arcpy.mapping.ListLayers(arcpy.mapping.MapDocument('CURRENT'))
for layer in layers:
resize_symbol(layer)
arcpy.RefreshActiveView()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment