|  | This document is archived and information here might be outdated. Recommended version. | 
| ArcObjects namespaces > Carto > ESRI.ArcGIS.Carto > Interfaces > IT > ITopologyLayer Interface > ITopologyLayer.Renderer Property (ArcObjects .NET 10.4 SDK) | 
Renderer used to draw the topology layer.
[Visual Basic .NET] Public Function get_Renderer ( _ ByVal Index As esriTopologyRenderer _ ) As IFeatureRenderer
[Visual Basic .NET] Public Sub set_Renderer ( _ ByVal Index As esriTopologyRenderer, _ ByVal Renderer As IFeatureRenderer _ )
[C#] public IFeatureRenderer get_Renderer ( esriTopologyRenderer Index );
[C#] public void set_Renderer ( esriTopologyRenderer Index, IFeatureRenderer Renderer );
[C++]
HRESULT get_Renderer(
  esriTopologyRenderer Index,
  IFeatureRenderer** Renderer
);
[C++]
HRESULT putref_Renderer(
  esriTopologyRenderer Index,
  IFeatureRenderer* Renderer
);
[C++]
Parameters Index [in]
Index is a parameter of type esriTopologyRenderer Renderer [out, retval]
Renderer is a parameter of type IFeatureRenderer Index [in]
Index is a parameter of type esriTopologyRenderer Renderer [in]
Renderer is a parameter of type IFeatureRenderer
When defining a unique value renderer for a topology layer, set the symbology's field as "TopoRuleType".
The following routine sets up a unique value renderer for a topology layer.
private void BuildUniqueValRenderer()
{
IMxDocument mxDocument=(IMxDocument)m_application.Document;
  ITopologyLayer topologyLayer=mxDocument.FocusMap.get_Layer(0) as ITopologyLayer;
  if (topologyLayer == null)
    throw new NullReferenceException();
  ITopology topology=topologyLayer.Topology;
  if (topology == null)
    throw new NullReferenceException();
  //build colorramp
  IRandomColorRamp randomColorRamp=new RandomColorRampClass();
  randomColorRamp.MinSaturation=20;
  randomColorRamp.MaxSaturation=40;
  randomColorRamp.MinValue=85;
  randomColorRamp.MaxValue=100;
  randomColorRamp.StartHue=76;
  randomColorRamp.EndHue=188;
  randomColorRamp.UseSeed=true;
  randomColorRamp.Seed=43;
  //build unique value renderer
  IUniqueValueRenderer uniqueValRenderer=new UniqueValueRendererClass();
  uniqueValRenderer.FieldCount=1;
  uniqueValRenderer.set_Field(0,"TopoRuleType");
  uniqueValRenderer.DefaultSymbol=null;
  uniqueValRenderer.UseDefaultSymbol=false;
  uniqueValRenderer.set_FieldType(0, false);
  //iterate through topology rules and add value to renderer for each
  ITopologyRuleContainer topoRuleContainer=(ITopologyRuleContainer)topology;
  IEnumRule enumRule=topoRuleContainer.Rules;
  ITopologyRule topoRule=(ITopologyRule)enumRule.Next();
  while (topoRule != null)     
  {
    uniqueValRenderer.AddValue(((int)topoRule.TopologyRuleType).ToString(),"Error",
      (ISymbol)BuildErrorLineSym());
    uniqueValRenderer.set_Label(((int)topoRule.TopologyRuleType).ToString(),
      topoRule.Name);
    topoRule=(ITopologyRule)enumRule.Next();
  }
randomColorRamp.Size=uniqueValRenderer.ValueCount;
  bool bCreated=false;
  randomColorRamp.CreateRamp(out bCreated);
IEnumColors enumColors=randomColorRamp.Colors;
  for(int i=0; i < uniqueValRenderer.ValueCount - 1; i++)
  {
    string val=uniqueValRenderer.get_Value(i);
    if (val == "")
      continue;
   
    ISymbol sym=uniqueValRenderer.get_Symbol(val);
    ((ISimpleLineSymbol)sym).Color=enumColors.Next();
    uniqueValRenderer.set_Symbol(val, sym);
   
  }
uniqueValRenderer.ColorScheme="Custom";
  topologyLayer.set_Renderer(esriTopologyRenderer.esriTRLineErrors,
    (IFeatureRenderer)uniqueValRenderer);
  mxDocument.UpdateContents();
  mxDocument.ActiveView.Refresh();
}
private ISimpleLineSymbol BuildErrorLineSym()
{
  ISimpleLineSymbol simLineSymbol=new SimpleLineSymbolClass();
  simLineSymbol.Style=esriSimpleLineStyle.esriSLSDashDotDot;
  simLineSymbol.Width=2.5;
  return simLineSymbol;
}