Setting feature heights (Z's) for 3D editing
Being able to edit in 3D helps provide context to your geographic data. You can visualize more realistically your creation and placement of features, as well as easily fix errors or change values in the 3D space. Setting the height, or z-value, of the GIS features being edited is a critical part of the 3D editing experience.
Many features—such as benches or roads that lie on an elevation surface—do not need a z-value at all but, rather, can be 2D features that get their displayed heights assigned on the fly from an underlying surface layer. Other features—such as viewpoints on top of structures or 3D flight paths—need z-values to define their position in 3D space that is distinct from a surface.
The best practice is to create and maintain z-values for features only when they cannot be applied on the fly from a surface, such as a raster DEM, TIN, or terrain dataset.
If your features do need z-values, then there are two options on how the base height (z-value) can be stored in the feature— either within the geometry (shape) field or as a feature attribute. For point features, either option is recommended. For line or polygon features, if the data needs different heights per vertex, then the z-values need to be stored in the feature geometry. For multipatch features, the relative height of the 3D object (for example, a building) must be stored in the feature geometry.
Defining where z-values come from for a feature layer
There are several options for setting the elevation source of your feature layer. The elevation properties of a layer can be set on the Base Heights tab in ArcScene on the Layer Properties dialog box. The different options available to define the elevation source are elevation derived from a surface, directly from the features, or as a constant offset to the layer. These are further defined below.
You do not need to be in an edit session to define elevation (z-values) for a feature layer.
Sources of elevation
- Elevation from surface: By draping a layer on a surface, you are removing the need to define and maintain z-values for your features. Also, if the underlying surface is improved, then the displayed heights of the features draped on it will also improve automatically.
- Elevation from features: Depending on your data, there are different options here.
- No feature-based heights—Choose this option if you do not want to use the 3D geometry of the layer to derive height. This is the default for 2D features. If an elevation surface is defined, the features sit exactly on the ground.
- Use elevation values in the layer's features—This is the default for 3D feature layers. Features are displayed at the height specified by their z-value. This option is unavailable for 2D features.
- Use a constant value or expression—Applies a constant value or custom expression for determining the elevation of the features. You can also use the feature attributes in the expression so that the heights are set based on one or more attribute values of the feature.
- Layer offset: This option lets you specify a constant offset to all the features in your feature layer. In ArcScene, this is in scene units. The offset you specify is added to the current z-value.
The three options described above are additive and not mutually exclusive. For example, an airplane might have the attribute, height above ground, so to display this feature with the correct elevation, you need to set its base height properties as draped (option 1: Elevation from surface) plus an offset from the attribute (option 2: Elevation from features as an expression using feature attributes).
Setting feature heights using feature geometry
When editing features that store the z-value in their geometry, you can
- Interactively place a feature on a surface or on top of other existing features (for example: plant a tree on the rooftop of an existing building).
- Interactively move an existing feature up and down to set its height.
- Type in the exact z-value of the feature.
If the feature class is not z-aware, then you may not get the expected results. For example, when planting a tree on the roof of a building, if your trees feature class is not z-aware, then the new feature you create will in fact be a 2D feature with a height equal to zero (0). It might be placed somewhere in the interior of the building rather than on the roof where you wanted to place it. So it is important to know your data when creating and maintaining it.
Setting feature heights using layer based settings
When editing features that don't have z-values in their geometry, you can
- Place your features directly on an elevation surface, for example, a park bench.
- Use an attribute to define your features with an absolute height, for example, a helicopter position.
- Use an attribute to define your features relative to a surface (an offset),for example, an underground subway station.