ArcGIS Pro – Using RGB Values Stored in a Field for Symbology in ArcGIS Pro

arcgis-prorgbsymbology

Symbolizing using RGB values from Excel in ArcGIS Desktop? and Symbolizing vector features using RGB values stored in three fields using ArcPy? are questions that distil to whether it is possible to use RGB values in fields of an attribute table to apply colours direct to a feature layer in ArcMap/ArcPy. It seems not to be possible so I advised voting for an existing ArcGIS Idea (for ArcGIS Desktop).

My searches of the GUI and web for the equivalent functionality in ArcGIS Pro have also proved fruitless but I am hoping that I am wrong.

Is it possible to use RGB values stored in a field of a feature class to apply the colour component to symbols used to display them in ArcGIS Pro?

Best Answer

I have submitted an ArcGIS Idea to be able to Set ArcGIS Pro symbol color from RGB values in attribute table:

Set symbol color from RGB values in attribute table is a popular idea for ArcMap to have:

The ability to set the fill colour for a symbol from RGB values stored in the attribute table of a shapefile/feature class.

Sometimes an attribute table contains three seperate columns - Red, Green and Blue - that define the fill color to be used to correctly symbolize a feature. Rather than manually going through each symbol it would be convenient to be able to specify the columns in Layer Properties | Symbology and the colors automatically render.

This is seeking precisely the same functionality except to have it available in ArcGIS Pro instead.


Craig Williams of Esri Redlands has since told me that this could be done using the attribute driven symbology that is already present in ArcGIS Pro (I'm using 1.4.1), and he is right!

To do this I added a field for hexadecimal color values, populated it using an update cursor and some code I found at https://stackoverflow.com/a/214657/820534, and followed the attribute driven symbology help to color the polygons using the text field holding their hexadecimal colors.

Related Question