English

How To: Enable, attribute, and edit features with z-values

Summary

Z-values represent an attribute at a particular location, traditionally correlating to elevation. However this value can also represent density, quantity, or any other quantitative measure extracted from a LAS dataset, raster, TIN, or terrain surface.

Converting features to store z-values at the geometry level can present complications when there is no access to the 3D Analyst extension or an ArcMap Advanced License. To store z-values, first specify that a series of features contains these values or convert them after feature creation.

Note:
3D Analyst is required for the majority of tools and workflows described.

Procedure

There are four ways in which to assign z-values to features:

A. Assign z-values based upon an input surface
B. Assign z-values based upon a feature attribute
C. Assign z-values by defining an extrusion value in either ArcScene or ArcGlobe
D. Interactively assign z-values by digitizing new features or accessing the z-values at the geometry level through the sketch properties

A. Assign z-values based upon an input surface

The following geoprocessing tools can be used to assign z-values based on an input surface:

Add Surface Information (3D Analyst): Attributes features with spatial information from the surface. This tool does not convert 2D features to 3D.
Add Z Information (3D Analyst): Adds information about the elevation properties of features in a z-enabled feature class. This tool does not convert 2D features to 3D.
Interpolate Shape (3D Analyst): Interpolates z-values for a feature class based on elevation derived from a raster, triangulated irregular network (TIN), or terrain dataset. This tool converts 2D features to 3D.
Add Geometry Attributes (Data Management): Adds information about the elevation properties of features in a z-enabled feature class if the point xyz geometry property is enabled.
Adjust 3D Z (3D Analyst): Modifies the z-values of 3D features in either a negative or positive direction.

B. Assign z-values based upon a feature attribute

Use the following geoprocessing tool to assign z-values based upon a feature attribute:

Feature to 3D by Attribute (3D Analyst): Creates 3D features using height values derived from the attribute of the input features.

C. Assign z-values by defining an extrusion value (not avaliable with ArcGIS Pro)

Use the following geoprocessing tool to assign z-values by defining an extrusion value:

Layer 3D To Feature Class (3D Analyst): Extrusions can be set and the layer converted into a 3D multipatch using the tool.

See also:
Extruding features by an attribute value
Extruding features by a constant value

D. Interactively assign z-values by digitizing new features or accessing the z-values at the geometry level

If the ability to store these values was enabled, use the following steps to interactively assign z-values by digitizing new features or accessing the z-values at the geometry level:

1. For ArcGIS Pro, create a new project and navigate to Insert > New Map > New Scene. The raster from which the feature class derives its elevational values from is specified differently in ArcGIS Pro.

2. If there is a higher resolution elevation model available this can be added as the elevation source. Right-click the scene map layer in the Table of Contents > Properties > Elevation Surface > Add New Surface, and expand the ground drop-down and remove the elevation service defining the ground elevation. Expand the Add Elevation Source dialog and navigate to the elevation source on disk. This provides the ground elevations when new z-enabled features are being created. Optionally, a new elevation surface can be added within the scene properties to provide the elevation values for newly-created 3D features, if selected from the elevation dialog on the layer properties.
[O-Image]
3. Highlight the feature class within the Table of Contents and navigate to the Edit tab > Create. Select the feature class within the create features window, and select 'Begin digitizing new features'.
[O-Image]
For ArcScene/ArcGlobe, see:
Vertex editing in ArcScene
Setting feature heights (Z's) for 3D editing

Attributing points with z-values

Being able to attribute point features with z-values is important, and while done easily with an input surface if 3D analyst is available, this is sometimes not the case. Attributing points with z-values with a basic license can be achieved through the following workflow.

1. Use the Raster to Point geoprocessing tool utilizing a DEM surface or other raster with quantitative measures to be added as z-values to the input features.

2. Right-click the point features to be attributed with z-values, and launch the Join wizard. Utilize the 'Join data from another layer based on spatial location' parameter and select the option that each point will be given all attributes of the joined layer. This appends the z-value field that was present within the raster dataset and created when converting this to point features. This field is traditionally named grid_code on the output point feature class.

3. The z-value information is now appended to the feature class table. Since 3D Analyst is required to interpolate z-vales at the geometry level, the points must be reimported back into ArcMap through the tabular options. To do so, XY values must also be added to this table. This can be done through a calculate geometry operation or the Add XY Coordinates geoprocessing tool. Once these values have been appended, open this table, navigate to the table options and export this to a DBase table.
[O-Image]
4. Open ArcMap and navigate to the File menu dropdown > Add Data > Add XY Data. Specify the table created in Step 3, with the X and Y fields corresponding to the longitude and latitude values. The z field is the grid_code field created previously. Specify a spatial reference and complete the process. This creates an XY event layer with z-values stored at the geometry level, which can be exported to create a permanent dataset on disk.

See also:
Adding x,y coordinate data as a layer