This document is archived and information here might be outdated.  Recommended version.

IGeometricEffect Interface (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Display > ESRI.ArcGIS.Display > Interfaces > IG > IGeometricEffect Interface
ArcGIS Developer Help

IGeometricEffect Interface

Provides access to the Geometric Effect Interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

When To Use

This interface must be implemented by all custom geometric effects along with IGraphicAttributes and IPersistVariant interfaces (or IPersist and IPersistStream in Visual Basic 6.0).


Name Description
Method NextGeometry Accesses the next geometry generated by th effect.
Read-only property OutputType The output type of the geometric effect.
Method Reset Resets the collection of generated geometries. Must be called before using NextGeometry.

Classes that implement IGeometricEffect

Classes Description
BasicFillSymbol Basic fill symbol object.
BasicLineSymbol Basic line symbol object.
BasicMarkerSymbol Basic marker symbol object.
GeometricEffectAddControlPoints Assigns control point status to line vertices.
GeometricEffectArrow Constructs an arrow of a given line.
GeometricEffectBuffer Constructs a buffer polygon from any type of geometry.
GeometricEffectCut Produces a shorter line based on distances at extremities.
GeometricEffectDash Generates a dashed/dotted line based on a template.
GeometricEffectDonut Inserts a hole into a polygon.
GeometricEffectEnclosingPolygon Constructs enclosing polgon. With multipoint input, constructs a polygon that encloses all points.
GeometricEffectExtension Extends a line by a given distance and deflection angle.
GeometricEffectJog Constructs an Jog effect on a given line.
GeometricEffectMove Applies a move transformation to a geometry.
GeometricEffectOffset Offsets a line by a specified distance.
GeometricEffectOffsetTangent Moves a line a given distance in the direction of one of its outermost segments.
GeometricEffectRadial Produces a line from a point, based on direction and length.
GeometricEffectRegularPolygon Creates a regular polygon from a point.
GeometricEffectReverse Reverses the direction of a line.
GeometricEffectRotate Applies a rotate transformation to a geometry.
GeometricEffectScale Applies a scale transformation to a geometry.
GeometricEffectSimplify Simplifies a geometry by eliminating vertices.
GeometricEffectSmooth Smooth a geometry by approximation with beziers.
GeometricEffectSuppress Suppresses part of a line or polygon outline.
GeometricEffectTaperedPolygon Creates a taper polygon from a line.
GeometricEffectWave Creates a regular wave from a curve.
RepresentationRule An object defining a representation rule.


IGeometricEffect interface has methods useful for defining a geometric effect. If you create a custom geometric effect, then IGraphicAttributes interface which will define the properties for this effect and IPersistVariant (VB users) or IPersist and IPersistStream (C++ users) to persist the object have to be implemented..

OutputType is the method used to retrieve the type of valid output geometry given with an input geometry type. For all invalid input geometry types this property will return esriGeometryNull.

Reset method is used to re-set the result of applying a geometric effect on an input geometry. Next method is used to retrieve the individual parts created after the effect is processed. Sometimes an effect may result in a multi-part output geometry. For example a Dash effect will usually give a multi-part output geometry as the result where each part can be retrieved using the Next method. 

Note: Reset method has to be called prior to calling Next method.

Geometric effect is a dynamic process that alters the geometry of feature representations. Effects can be added to either a basic symbol layer or at a representation rule level making it globally applicable to all symbol layers present for that rule to create complex symbols. Also, a single representation rule can contain multiple geometric effects, functioning in sequence. When a single rule is applied with a chain of geometric effects, the end result of applying the chain of effects can be considered and managed as a single Geometric Effect. For this reason, representation rule and all basic symbol objects inherits both IGeometricEffect and IGeometricEffects interfaces. The result of geometric effects applied on a rule are directly passed onto all basic symbol layers present within the rule for drawing features.

While IGeometricEffects interface is useful to browse through individual effects participating in the rule, IGeometricEffect interface is useful to manage the chain of multiple effects as a single geometric effect. For example, if there are two geometric effects GeometricEffectDash and GeometricEffectOffset applied on linestrokes in sequential order, then you can use IGeometricEffects interface to get the results for individual Dash or Offset effects but not both. However, you can use IGeometricEffect interface to get the result of applying the combination of both Dash and Offset as a single effect.