Getting Symbol from GraphicElement?

03-31-2020 12:55 PM
New Contributor III

I have a Layout that contains various graphic elements. I want to get the symbol from a specific graphic element in order to apply it to the renderer of a layer within a map in a mapFrame in the Layout.

In the .NET SDK, this is fairly simple - you can reference graphicElement.Graphic.Symbol (which is a CIMSymbolReference), and then assign that Symbol to the Symbol property of a CIMUniqueValueClass.

The corresponding logic in ArcPy would be to assign something to the symbol property of an Item, which is part of an ItemGroup, which exists within the groups property of your UniqueValueRenderer. However, I'm not seeing any way to get the specific symbol that a specific graphic element is using.

The documentation for symbol says, "The easiest way to update a symbol is to use the applySymbolFromGallery method." But what if we can't do that? The symbol I'm interested in isn't necessarily a stock, named symbol, but a symbol the user may have customized on their layout before this whole rendering process takes place.

Is there some way to access what I need through the CIM (within Python)? If so, how would I take that CIM object and convert it into a Symbol object that can be assigned to an Item?

0 Kudos
0 Replies