ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / ProportionalRendererDefinition Class
Members Example Version

ProportionalRendererDefinition Class
Represents a proportional renderer definition to draw features proportionally to each other.
Object Model
ProportionalRendererDefinition ClassCIMPolygonSymbol ClassCIMSymbolReference ClassCIMSymbolReference ClassCIMSymbolReference ClassCIMSymbolReference Class
Syntax
public class ProportionalRendererDefinition : RendererDefinition 
Remarks
Once you define a proportional renderer, you can call a FeatureLayer's CreateRenderer and SetRenderer methods to create and assign a renderer to a feature layer.
Example
Create a Proportion Renderer with max and min symbol size capped
string colorBrewerSchemesName = "ArcGIS Colors";
StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(s => s.Name == colorBrewerSchemesName);
string colorRampName = "Heat Map 4 - Semitransparent";
IList<ColorRampStyleItem> colorRampList = await QueuedTask.Run(() =>
{
  return style.SearchColorRamps(colorRampName);
});
ColorRampStyleItem colorRamp = colorRampList[0];

await QueuedTask.Run(() =>
{
  CIMPointSymbol pointSym = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.GreenRGB, 1.0, SimpleMarkerStyle.Circle);
  CIMSymbolReference symbolPointTemplate = pointSym.MakeSymbolReference();

  //minimum symbol size is capped to 4 point while the maximum symbol size is set to 50 point
  ProportionalRendererDefinition prDef = new ProportionalRendererDefinition("POPULATION", symbolPointTemplate, 4, 50, true)
  {

    //setting upper and lower size stops to stop symbols growing or shrinking beyond those thresholds
    UpperSizeStop = 5000000,  //features with values >= 5,000,000 will be drawn with maximum symbol size
    LowerSizeStop = 50000    //features with values <= 50,000 will be drawn with minimum symbol size
  };
  FeatureLayer flyr = MapView.Active.Map.Layers[0] as FeatureLayer;
  CIMProportionalRenderer propRndr = flyr.CreateRenderer(prDef) as CIMProportionalRenderer;
  flyr.SetRenderer(propRndr);

});
Create a True Proportion Renderer
string colorBrewerSchemesName = "ArcGIS Colors";
StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(s => s.Name == colorBrewerSchemesName);
string colorRampName = "Heat Map 4 - Semitransparent";
IList<ColorRampStyleItem> colorRampList = await QueuedTask.Run(() =>
{
  return style.SearchColorRamps(colorRampName);
});
ColorRampStyleItem colorRamp = colorRampList[0];

await QueuedTask.Run(() =>
{
  CIMPointSymbol pointSym = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.GreenRGB, 1.0, SimpleMarkerStyle.Circle);
  CIMSymbolReference symbolPointTemplate = pointSym.MakeSymbolReference();

  //Defining proportional renderer where size of symbol will be same as its value in field used in the renderer.
  ProportionalRendererDefinition prDef = new ProportionalRendererDefinition("POPULATION", esriUnits.esriMeters, symbolPointTemplate, SymbolShapes.Square, ValueRepresentations.Radius);

  FeatureLayer flyr = MapView.Active.Map.Layers[0] as FeatureLayer;
  CIMProportionalRenderer propRndr = flyr.CreateRenderer(prDef) as CIMProportionalRenderer;
  flyr.SetRenderer(propRndr);

});
Inheritance Hierarchy

System.Object
   ArcGIS.Desktop.Mapping.LayerDrawingDefinition
      ArcGIS.Desktop.Mapping.RendererDefinition
         ArcGIS.Desktop.Mapping.ProportionalRendererDefinition

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also