ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMChartBarSeries Class
Members Example Version

CIMChartBarSeries Class
Provides access to members that control bar chart series.
Object Model
CIMChartBarSeries ClassCIMChartBarSeries ClassCIMChartTextProperties ClassCIMChartFillSymbolProperties ClassCIMChartBarSeries ClassCIMChartLineSymbolProperties ClassCIMChartFillSymbolProperties ClassCIMChartTimeBinningProperties Class
Syntax
Example
Create a multiseries bar chart
// For more information on the chart CIM specification:
// https://github.com/Esri/cim-spec/blob/main/docs/v3/CIMCharts.md

// Define fields names used in chart parameters.
const string categoryField = "neighbourhood_group";
const string splitByField = "room_type";

var lyrsBar = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>();
var lyrBar = lyrsBar.First();
var lyrDefBar = lyrBar.GetDefinition();

// Get unique values for `splitByField`
var values = new List<string>();
using (RowCursor cursor = lyrBar.Search())
{
    while (cursor.MoveNext())
    {
        var value = Convert.ToString(cursor.Current[splitByField]);
        values.Add(value);
    }
};
var uniqueValues = values.Distinct().ToList();

// Define bar chart CIM properties
var barChart = new CIMChart
{
    Name = "barChart",
    GeneralProperties = new CIMChartGeneralProperties
    {
        Title = $"{categoryField} grouped by {splitByField}",
        UseAutomaticTitle = false
    },
};


// Create list to store the info for each chart series
var allSeries = new List<CIMChartSeries>();

// Create a series for each unique category
foreach (var value in uniqueValues)
{
    var series = new CIMChartBarSeries
    {
        UniqueName = value,
        Name = value,
        // Specify the category field
        Fields = new string[] { categoryField, string.Empty },
        // Specify the WhereClause to filter a series by unique value
        WhereClause = $"{splitByField} = '{value}'",
        GroupFields = new[] { categoryField },
        // Specify aggregation type
        FieldAggregation = new string[] { string.Empty, "COUNT" }
    };

    allSeries.Add(series);

}

barChart.Series = allSeries.ToArray();

// Add new chart to layer's existing list of charts (if any exist)
var newChartsBar = new CIMChart[] { barChart };
var allChartsBar = (lyrDefBar == null) ? newChartsBar : lyrDefBar.Charts.Concat(newChartsBar);
// Add CIM chart to layer defintion 
lyrDefBar.Charts = allChartsBar.ToArray();
lyrBar.SetDefinition(lyrDefBar);
Inheritance Hierarchy

System.Object
   ArcGIS.Core.CIM.CIMObject
      ArcGIS.Core.CIM.CIMChartSeries
         ArcGIS.Core.CIM.CIMChartBarSeries

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also