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

IMSegmentation Interface (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Geometry > ESRI.ArcGIS.Geometry > Interfaces > IM > IMSegmentation Interface
ArcGIS Developer Help

IMSegmentation Interface

Provides access to members for defining an M-based linear coordinate system on a polyline or polygon. Note: the IMSegmentation interface has been superseded by IMSegmentation3. Please consider using the more recent version.

Product Availability

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


Name Description
Method CalculateNonSimpleMs Redefines the non-simple Ms to be values obtained from interpolation of surrounding defined Ms, or extrapolation of Ms.
Method ExtrapolateMs Extrapolates the Ms at one or both ends of the geometry based on the M interval between the fromIndex and the toIndex.
Method GetDistancesAtM Returns an array of distances along the polyline at which is located the specified M. If the geometry's M's are monotonic along the geometry then the array will only have one element.
Method GetMsAtDistance Returns M values at the distance along the geometry. An array of one or two Ms is returned. Two Ms can be returned if the given distance is exactly at the beginning or ending of a part.
Method GetPointsAtM Returns a multipoint geometry corresponding to the locations along the geometry where the specified M occurs.
Method GetSubcurveBetweenMs Returns a polyline geometry corresponding to the subcurve(s) between the fromM and the toM.
Method InsertMAtDistance Sets the M value at the given distance along the geometry; creates a point at that distance if no point exists there.
Method InterpolateMsBetween Generates Ms by linear interpolation of segment distances for all vertices in the range [start+1, end-1].
Read-only property MMax The maximum M value.
Read-only property MMin The minimum M value.
Read-only property MMonotonic A value indicating whether Ms are monotonic, and if so, whether they are ascending or descending.
Method MultiplyMs Multiplies all the M values by a factor.
Method OffsetMs Offsets all the M values by an offset value.
Method ReverseMsOrder Reverses the order of the Ms along the geometry.
Method SetAndInterpolateMsBetween Sets the Ms at the beginning and the end of the geometry and interpolates the M values between these values.
Method SetMsAsDistance Sets the M values to the cumulative length from the origin of the geometry.

Inherited Interfaces

Interfaces Description
IMCollection Provides access to members that control operations on M-aware multipoints, polylines, polygons and multipatches.

Classes that implement IMSegmentation

Classes Description
Polygon A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.
Polyline An ordered collection of paths; optionally has measure, height and ID attributes.


The IMSegmentation interface provides methods designed to work with the dynamic segmentation functionality in ArcObjects. The CalculateNonSimpleMs method will interpolate or extrapolate missing (NaN) measure values, based on the existing values. Use the ExtrapolateMs or InterpolateMsBetween methods to set m attributes for only the specified vertices of a PolyLine. InsertMAtDistance will update a single vertex's m attribute, or if the specified distance does not fall on a vertex, a new vertex will be inserted into the PolyLine at that location.

IMSegmentation also provides methods to query a measured PolyLine, based on its m attributes. For example GetSubCurveBetweenMs and GetPointsAtM can be used to find geometries along a measured PolyLine. Note that if the m attributes do not monotonically increase along the line (check the MMonotonic property), the result of GetSubcurveBetweenMs may have more than one part or the result of GetPointsAtM will have more than one point.

The CalculateNonSimpleMs, SetAndInterpolateMsBetween, and SetMsAsDistance methods all ensure a PolyLine is MSimple.

See Also

IPoint.M Property | IMSegmentation2 Interface | IMSegmentation Interface | IMAware Interface | IMCollection Interface