I'm trying to do what seems really simple via arcpy: color a layer's 4 classes! I cannot see where my code is wrong. I based it on esri: https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/uniquevaluerenderer-class.htm. Any help would be appreciated!
Maybe my issue is that I'm ignoring that the attribute table was generated via domains' drop-down lists? Maybe I need to bite the bullet and use CIM access.
# Color and setup features 2
import arcpy, os, sys
relpath = os.path.dirname(sys.argv[0])
p = arcpy.mp.ArcGISProject(os.path.join(relpath+"CURRENT"))
m = p.listMaps('Map')[0]
l = m.listLayers(TWP + "_RIGHTS")[0]
sym = l.symbology
sym.updateRenderer('UniqueValueRenderer')
sym.renderer.fields = ['RightsType']
for grp in sym.renderer.groups:
for itm in grp.items:
value = itm.values[0]
if value == "Choose":
itm.renderer.symbol.color = {"RGB": [0, 0, 0, 50]}
itm.renderer.symbol.outlineColor = {"RGB": [255, 255, 255, 100]}
itm.renderer.symbol.outlineWidth = 0.75
itm.renderer.symbol.size = 1
itm.renderer.label = str(value)
if value == "Easement":
itm.renderer.symbol.color = {"RGB": [0, 112, 255, 50]}
itm.renderer.symbol.outlineColor = {"RGB": [255, 255, 255, 100]}
itm.renderer.symbol.outlineWidth = 0.75
itm.renderer.symbol.size = 1
itm.renderer.symbol.label = str(value)
if value == "Fee":
itm.renderer.symbol.color = {"RGB": [56, 168, 0, 50]}
itm.renderer.symbol.outlineColor = {"RGB": [255, 255, 255, 100]}
itm.renderer.symbol.outlineWidth = 0.75
itm.renderer.symbol.size = 1
itm.renderer.symbol.label = str(value)
if value == "License":
itm.renderer.symbol.color = {"RGB": [0, 0, 255, 50]}
itm.renderer.symbol.outlineColor = {"RGB": [255, 255, 255, 100]}
itm.renderer.symbol.outlineWidth = 0.75
itm.renderer.symbol.size = 1
itm.renderer.symbol.label = str(value)
l.symbology = sym
p.saveACopy(os.path.join(relpath+"CURRENT"))
print("Completed"+" "+time.strftime("%x" +" "+ "(%a)" +" "+ "at"+" "+"%I:%M"))