Editing features that have z-values
A z-value typically represents elevations or heights and can be used to display features in three dimensions. Each vertex of a feature can store a z-value along with its x,y positional information. While ArcMap and its editing environment are two dimensional, they provide the ability to input, edit, and maintain z-values.
The assignment of z-values when editing in ArcMap is determined by the general function the editing tool or command performs: whether it creates a new feature or edits an existing feature. Most operations that result in a new feature being created assign all the vertices the same default z-value. When an existing feature is modified, new z-values are interpolated, and updated values are assigned to the edited vertices. Some editing operations, however, simply maintain existing z-values.
You can view or change a feature's z-values on the Edit Sketch Properties window. The z-values are listed in the Z column. To change the z-values for multiple vertices, check the boxes to the left of the vertices you want to update, then click the Z button and type the new values.
To store z-values in a feature, you must specify that the feature class has z-values when you create it. This makes the feature class z-aware. To determine if a feature class is z-aware, open its properties in ArcCatalog or the Catalog window, click the General tab, then look under Geometry Properties for a check next to Coordinates include Z values. There is also a Z in the Shape field in the attribute table in ArcMap, as in Polyline Z.
If your existing feature class is not z-aware, you need to create a new feature class capable of storing z-values, then load or copy and paste features from the existing feature class into the new one and edit the z-values. You do not need an ArcGIS 3D Analyst extension license to create z-aware feature classes or edit z-values in ArcMap. However, if you do have 3D Analyst, you can also edit features in ArcGlobe or ArcScene.
The following sections describe the behavior when editing features in ArcMap.
How ArcMap assigns z-values to new features
ArcMap assigns z-values to new features in one of two ways:
- When copying and pasting an existing feature with z-values, ArcMap also copies those z-values to the new feature.
- With all other methods of feature creation, ArcMap assigns a default z-value to all vertices.
When you copy and paste features or use the Copy Features tool on the Advanced Editing toolbar, the existing z-values from the original feature are also copied to the new features. If the original feature is from a different layer that is not z-aware, the pasted features are assigned the default z-value.
Other actions that create new features, including sketching, tracing, entering survey traverses, using the Create Feature topology error fix, or buffering, assign a constant z-value to all the vertices in the new feature. This constant value is the Current Z and is 0 by default.
For example, when you create a new feature in ArcMap, the z-values are automatically assigned the Current Z. To change the z-values of an existing feature, double-click the feature with the Edit tool, click the Edit Sketch Properties button on the Editor toolbar.
To specify a different value for the Current Z, you need to add the Current Z text box to the ArcMap interface. Click the Customize menu > Customize Mode, search for Current Z on the Commands tab, drag the control to any ArcMap toolbar (such as the Editor toolbar), then close the Customize dialog box. You can enter a different number for the Current Z as often as you want. While creating an edit sketch, you can use the Current Z control to assign the z-value for each vertex in the sketch.
How ArcMap assigns z-values when existing features are edited
When editing existing features, ArcMap assigns z-values to the edited feature in one of two ways:
- The existing z-values are maintained because they are not affected by the edit.
- The z-values are updated with interpolated values.
When you move, rotate, scale, or spatially adjust an existing feature, the existing z-values are maintained. While the x,y values may change, the z-values do not. Similarly, if you simply move a vertex, the existing z-values are also maintained. If you need to modify the z-values, you can do so on the Edit Sketch Properties window.
On the other hand, operations that add, modify, or delete actual vertices in existing features typically assign new z-values for the modified vertices. Because these actions modify geometry with known z-values, ArcMap has a good starting point from which to interpolate (or extrapolate) and logically update z-values. Operations that perform splitting, extending, trimming, smoothing, generalizing, merging, unioning, clipping, and intersecting on existing features interpolate z-values.
For example, if you trim a line that has z-values, the z-values of the other vertices in the segment are used to interpolate a z-value for the vertex at the point where the line was trimmed. If the z-value for the start vertex is 10 and the z-value for the end vertex is 20, the vertex at the trim point is assigned a z-value of 16 if you trim the line at 60 percent from the start point.
With functions such as union and intersect where the inputs can be from different layers, the output has interpolated values if all the inputs are z-aware. Current Z is used when the input layers lack z-values.
When you perform an edit that manipulates multiple vertices, only the affected vertices are reassigned z-values. In most cases, z-values are assigned through interpolation. However, Reshape Feature, Cut Polygons, and Auto Complete Polygon, which use a sketch to edit an existing feature, apply the sketch's z-values to the inserted vertices.
Examples of z-value assignment
The following examples show common edits being performed and the resulting z-values after the operation is completed.
Note that the Current Z value is assumed to be 0 (the default). To specify a different value for the Current Z, enter it into the Current Z text box.
Editing scenario |
How z-values are assigned |
Example | ||
---|---|---|---|---|
Creating a new feature |
Vertices are assigned the Current Z. |
|
||
Copying and pasting a feature |
When copying from a z-aware feature class, the existing z-values are copied to the new feature. If the copied feature is not z-aware, then the pasted feature is assigned the Current Z value. |
|
||
Moving a feature |
The existing z-values are maintained and not changed. |
|
||
Rotating a feature |
The existing z-values are maintained and not changed. |
|
||
Moving a vertex |
The existing z-values are maintained and not changed. |
|
||
Inserting a vertex |
The new vertex is assigned an interpolated z-value. |
|
||
Extending a line |
The new vertex is assigned an interpolated (extrapolated) z-value. |
|
||
Trimming a line |
The new vertex is assigned an interpolated z-value. |
|
||
Splitting a line |
The new vertex is assigned an interpolated z-value. Each feature has the same z-value for the vertex at the split point. |
|
||
Reshaping a feature |
Vertices that are inserted by the reshape sketch are assigned z-values from the sketch. The z-values for the other vertices are maintained and not changed. |
|
||
Cutting a polygon |
New vertices along the cut are assigned z-values from the sketch. The z-values for the existing vertices are maintained and not changed. |
|
||
Auto Complete Polygon |
Z-assignment for the new polygon: The new polygon's vertices are assigned z-values from the sketch. Z-assignment for the existing polygon: To maintain the boundary between the existing polygon and the new polygon, ArcMap inserts vertices on the existing polygon where the new polygon intersects it. Those vertices' z-values are interpolated only from the existing polygon's z-values. The z-values for its other vertices are maintained and not changed. |
|