I am defining a cimsymbol in the function with primitiveOverrides to update the style at runtime. This works fine for all border and background color, but for some reason it doesn't update the text color when i override the primitive (line 67). Am i missing something here? Thanks in advance
//https://esri.github.io/cim-symbol-builder-js/
export function getCIMSymbolData() {
  return {
    type: 'CIMSymbolReference',
    primitiveOverrides: [
      {
        type: 'CIMPrimitiveOverride',
        primitiveName: 'locationIndex',
        propertyName: 'TextString',
        valueExpressionInfo: {
          type: 'CIMExpressionInfo',
          expression: '$feature.text',
          returnType: 'Default',
        },
      },
      {
        type: 'CIMPrimitiveOverride',
        primitiveName: 'markerBackgroundColor',
        propertyName: 'Color',
        valueExpressionInfo: {
          type: 'CIMExpressionInfo',
          expression: '$feature.markerBackgroundColor',
          returnType: 'Default',
        },
      },
      {
        type: 'CIMPrimitiveOverride',
        primitiveName: 'markerTextAndBorderColor',
        propertyName: 'Color',
        valueExpressionInfo: {
          type: 'CIMExpressionInfo',
          expression: '$feature.markerTextAndBorderColor',
          returnType: 'Default',
        },
      },
    ],
    symbol: {
      type: 'CIMPointSymbol',
      symbolLayers: [
        {
          type: 'CIMVectorMarker',
          enable: true,
          size: 32,
          anchorPointUnits: 'Relative',
          frame: {
            xmin: -5,
            ymin: -5,
            xmax: 5,
            ymax: 5,
          },
          markerGraphics: [
            {
              type: 'CIMMarkerGraphic',
              primitiveName: 'locationIndex',
              geometry: {
                x: 0,
                y: 0,
              },
              symbol: {
                type: 'CIMTextSymbol',
                height: 4,
                horizontalAlignment: 'Center',
                offsetX: 0,
                offsetY: 5.5,
                symbol: {
                  type: 'CIMPolygonSymbol',
                  //todo find out why the text color is not getting overwritten
                  symbolLayers: [
                    {
                      type: 'CIMSolidFill',
                      primitiveName: 'markerTextAndBorderColor',
                      enable: true,
                      color: [0, 0, 0, 255],
                      //color: [255, 255, 255, 255],
                    },
                  ],
                },
                verticalAlignment: 'Center',
              },
              textString: '',
            },
          ],
          scaleSymbolsProportionally: true,
          respectFrame: true,
          anchorPoint: {
            x: 0,
            y: 0,
          },
          offsetY: 8,
        },
        {
          type: 'CIMVectorMarker',
          enable: true,
          anchorPoint: {
            x: 0,
            y: -0.5,
          },
          anchorPointUnits: 'Relative',
          dominantSizeAxis3D: 'Y',
          size: 40,
          billboardMode3D: 'FaceNearPlane',
          frame: {
            xmin: 0,
            ymin: 0,
            xmax: 21,
            ymax: 21,
          },
          scaleSymbolsProportionally: true,
          respectFrame: true,
          markerGraphics: [
            {
              type: 'CIMMarkerGraphic',
              geometry: {
                rings: [
                  [
                    [17.17, 14.33],
                    [16.97, 12.96],
                    [16.38, 11.37],
                    [12.16, 3.98],
                    [11.2, 1.94],
                    [10.5, 0],
                    [9.8, 1.96],
                    [8.84, 4.02],
                    [4.61, 11.41],
                    [4.02, 12.98],
                    [3.83, 14.33],
                    [3.96, 15.63],
                    [4.34, 16.88],
                    [4.95, 18.03],
                    [5.78, 19.04],
                    [6.8, 19.88],
                    [7.95, 20.49],
                    [9.2, 20.87],
                    [10.5, 21],
                    [11.8, 20.87],
                    [13.05, 20.5],
                    [14.2, 19.88],
                    [15.22, 19.05],
                    [16.05, 18.03],
                    [16.66, 16.88],
                    [17.04, 15.63],
                    [17.17, 14.33],
                  ],
                ],
              },
              symbol: {
                type: 'CIMPolygonSymbol',
                symbolLayers: [
                  {
                    type: 'CIMSolidStroke',
                    primitiveName: 'markerTextAndBorderColor',
                    enable: true,
                    capStyle: 'Round',
                    joinStyle: 'Round',
                    lineStyle3D: 'Strip',
                    miterLimit: 10,
                    width: 0.5,
                    color: 'black',
                  },
                  {
                    type: 'CIMSolidFill',
                    primitiveName: 'markerBackgroundColor',
                    enable: true,
                    color: '#c1dba3',
                  },
                ],
              },
            },
          ],
        },
      ],
    },
  };
}
Solved! Go to Solution.
Ok, this seems like a bug - we'll take another look. Thanks for letting us know!
