Exploring ArcGIS feature renderers

This topic discusses the ArcGIS out-of-the-box renderers and alternatives that can be considered instead of implementing a custom feature renderer. Implementation of a custom feature renderer allows you to customize the drawing of feature layers. However, often the existing renderers and symbol properties provide an easier solution than implementing a custom feature renderer. The alternatives are exploring the ArcGIS renderers, implementing ArcGIS renderers with other ArcGIS symbols, creating symbology fields and derived feature classes to suit symbology requirements.

In this topic

About custom feature renderers

Rendering a feature layer with a custom feature renderer might be slow depending on the implementation of its drawing and the number of features that are rendered. However, if you want control over the way features are drawn, you might find it useful to implement a custom feature renderer. For more information about custom feature renderers, see Getting started with a custom feature renderer.
It is also wise to consider the existing ArcGIS feature renderers that support a variety of ways to draw data. Many difficult drawing or symbology requirements can be achieved by manipulating the properties of a standard renderer with ArcObjects application programming interfaces (APIs) or the ArcGIS Desktop user interface (UI). The other alternatives to consider are creating derived feature classes and symbology fields to control drawing of the features.

ArcGIS feature renderers

The following table shows the available ArcGIS feature renderers and their description:
Feature renderer
SimpleRenderer—Each feature in the layer is symbolized with the same symbol.
UniqueValueRenderer—Features are drawn with different symbols depending on the unique values of one or more attribute fields.
ClassBreaksRenderer—Features are drawn with graduated color (choropleth) or graduated size symbolization based on values in an attribute field. The data value range is divided into classes, each feature having membership in one of these classes based on its attribute value. Features are drawn with the symbol corresponding to their class.
ProportionalSymbolRenderer—Features are drawn with proportionally sized symbols based on values in an attribute field.
DotDensityRenderer—Polygon features are drawn with randomly placed dots where the dot count for each feature represents the value of an attribute field.
ChartRenderer—Features are drawn with pie, bar, and stacked bar charts. Chart content is based on values stored in one or more attribute fields.
BiUniqueValueRenderer—Features are drawn with a symbolization that is a combination of a UniqueValueRenderer and a ClassBreaksRenderer. Values from separate, orthogonal attribute fields generate a single symbolization based on these two components.
RepresentationRenderer—A renderer that draws features using representation information stored in the layer's data source.
ScaleDependentRenderer—A renderer that is comprised of multiple renderers, each operating within a particular scale range.
The ArcGIS renderers and symbols with specific properties are an alternative to custom renderers. In particular, multilayer symbols can produce many advanced effects.

Create derived feature classes

An alternative to creating custom renderers is to create derived feature classes to symbolize data. These derived feature classes can be the result of geoprocessing the data to deconstruct shapes or generalize them to the extent that they can be easily handled and drawn with the standard renderers. Effectively, you would be creating a cartographic database where each base feature class can have one or more derived feature classes.
If datasets are regularly edited, you might have to maintain the derived features by implementing a feature class extension. The class extension can respond to edit events on the base feature class and edit the features of the derived feature class accordingly.

Create symbology fields

If complex symbology requirements only need to be calculated once, adding a symbology attribute to the data can be more efficient than a custom renderer. When the data you need to symbolize does not have an attribute that specifically meets your symbolization requirements, consider adding a new attribute and calculating or programmatically deriving values. For example, consider the four-color map scenario. It would be too slow if the renderer had to figure out the color to use to draw each feature every time the map was drawn. By creating a new field and calculating its values, the need for a custom renderer is eliminated because the standard unique value renderer can now be used on this new field. This allows the map to render the data quicker than a custom feature renderer. 
A map renders data based on an integer field faster than it would if the field were of a text data type. This is particularly true for ArcSDE geodatabases, since less data has to be interpreted and transferred over the network.

See Also:

Getting started with a custom feature renderer

Development licensingDeployment licensing
Engine Developer KitEngine
ArcGIS for Desktop BasicArcGIS for Desktop Basic
ArcGIS for Desktop StandardArcGIS for Desktop Standard
ArcGIS for Desktop AdvancedArcGIS for Desktop Advanced