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


Working with vertex attributes (ArcObjects .NET 10.4 SDK)

Working with vertex attributes


About working with vertex attributes

Each vertex of a geometry, in addition to its x,y coordinates, can optionally have additional attributes, or vertex attributes.
The z-vertex attribute is a double-precision value that can be used to represent heights or depths relative to a vertical coordinate system. The m-vertex attribute, or measure, is a double-precision value that can be used to establish a linear reference system on a geometry (usually a polyline), such as exits along a highway. The ID vertex attribute, or point ID, is a signed integer that can be used as a foreign database key to associate additional information with each vertex such as survey measurements.
The ID attribute is a numeric label but does not serve any computational purpose. Vertex attributes can be added to, or removed from, any geometry at any time and in any combination. For example, a polyline can start with no vertex attributes, have Zs added to it, have IDs added to it, then have its Zs removed.
When a geometry is aware of its vertex attributes, those attributes are persisted as part of the geometry and included in the output of topological operations that involve that geometry. If a geometry is not aware of its attributes, those attributes are ignored when the geometry is persisted, and the attributes do not appear in the output of a topological operation involving that geometry. The attribute awareness of a geometry is controlled by the IZAware, IMAware, or IPointIDAware interface. The attribute values are not actually removed from a geometry if its awareness is disabled.
See the following code example:
[C#]
IPoint pnt=new PointClass()as IPoint;
pnt.PutCoords(1, 1);
IZAware zAware=pnt as IZAware;
zAware.ZAware=true;
pnt.Z=11.1;
[VB.NET]
Dim pnt As IPoint=CType(New PointClass, IPoint)
pnt.PutCoords(1, 1)
Dim zAware As IZAware=CType(pnt, IZAware)
zAware.ZAware=True
pnt.Z=11.1