I have a symbology set (unique values) with the default point symbols, based on a name field. I would like to change them all to be Picture Markers using a CIM definition revision, but I can't get to the "type" attribute of the symbols. As I get each level deeper in the CIM, there is no "type" but the ones listed below (bold means the next level into which I dig):
- CIM.renderer.group [heading, classes]
- class [alternateSymbols, description, editable, label, patch, symbol, values, visible]
- symbol [maxDistance, maxScale, minDistance, minScale, primitiveOverrides, scaleDependentSizeVariation, stylePath, symbol, symbolName]
- symbol [angle, angleAlignment, callout, effects, haloSize, haloSymbol, primitiveName, scaleX, Symbol3DProperties, symbolLayers, thumbnailURI, useRealWorldSymbolSizes]
- symbolLayers [anchorPoint(), anchorPointUnits, angleX, angleY, animatedSymbolProperties, billboardMode3D, colorLocked, colorSubstitutions, depth3D, dominantSizeAxis3d, effects, enable, invertBackfaceTexture, markerPlacement, name, offsetX, offsetY, offsetZ, overprint, primitiveName, rotateClockwise, rotation, scaleX, size, textureFilter, tintColor, url, verticalOrientation3D]
I would just like to do this process, in a loop, to get through all 150 symbols:
- cim = mylayer.getDefinition(V3)
- myitem = lcim.renderer.groups[0].classes[0].symbol (this is where I don't know what level to get into)
- myitem.type = CIMPictureMarker (this is what I can't get, because there is no "type"
- mylayer.setDefinition(cim)
Many thanks!