Create Underpass (Cartography)

Summary

Allows intersecting lines to be displayed as underpassing one another by creating bridge parapets and masks to cover the underlying road segment.

Illustration

Illustration of Create Underpass tool
Creating underpass with different wing types

Usage

  • Requires intersecting symbolized line features as inputs.

  • This tool is identical to the Create Overpass tool except that the Expression parameter selects from the Input Below Features parameter in this tool, and selects from the Input Above Features parameter in the Create Overpass tool.

  • The Input Above Features layer can be the same as the Input Below Features layer in the case of self-overlapping features. When Input Above and Input Below layers are the same, an SQL expression is required for further refinement of feature selection.

Syntax

arcpy.cartography.CreateUnderpass(in_above_features, in_below_features, margin_along, margin_across, out_underpass_feature_class, out_mask_relationship_class, {where_clause}, {out_decoration_feature_class}, {wing_type}, {wing_tick_length})
ParameterExplanationData Type
in_above_features

The input line feature layer containing lines that intersect—and will be symbolized as passing above—lines in the Input Below Features parameter.

Layer
in_below_features

The input line feature layer that intersects—and will be symbolized as passing below—lines in the Input Above Features parameter. These features will be masked by the polygons created in the Output Underpass Feature Class parameter.

Layer
margin_along

Sets the length of the mask polygons along the Input Above Features parameter by specifying the distance in page units that the mask should extend beyond the width of the stroke symbol of the Input Below Features parameter. The Margin Along parameter must be specified, and it must be greater than or equal to zero. Choose a page unit for the margin; the default is points.

Linear Unit
margin_across

Sets the width of the mask polygons across the Input Above Features parameter by specifying the distance in page units that the mask should extend beyond the width of the stroke symbol of the Input Below Features parameter. The Margin Across parameter must be specified, and it must be greater than or equal to zero. Choose a page unit for the margin; the default is points.

Linear Unit
out_underpass_feature_class

The output feature class that will be created to store polygons to mask the Input Below Features parameter.

Feature Class
out_mask_relationship_class

The output relationship class that is created to store links between underpass mask polygons and the lines of the Input Below Features parameter.

Relationship Class
where_clause
(Optional)

An SQL expression used to select a subset of features in the Input Above Features parameter.

Use quotation marks, "MY_FIELD", or if you're querying personal geodatabases, enclose fields in square brackets: [MY_FIELD]

See SQL reference for query expressions used in ArcGIS for more information on SQL syntax.

SQL Expression
out_decoration_feature_class
(Optional)

The output line feature class that will be created to store parapet features.

Feature Class
wing_type
(Optional)

Specifies the wing style of the parapet features.

  • ANGLEDSpecifies that the wing tick of the parapet will be angled between the Input Above Features parameter and the Input Below Features parameter. This is the default.
  • PARALLELSpecifies that the wing tick of the overpass wing will be parallel to the Input Below Features parameter.
  • NONESpecifies that no wing ticks will be created on the parapets.
String
wing_tick_length
(Optional)

Sets the length of the parapet wings in page units. The length must be greater than or equal to zero; the default length is 1. Choose a page unit (points, millimeters, and so on) for the length; the default is points. This parameter does not apply to the Wing Type of NONE.

Linear Unit

Code sample

CreateUnderpass example 1 (Python window)

The following Python window script demonstrates how to use the CreateUnderpass tool in immediate mode.

import arcpy
arcpy.env.workspace = "C:\data"
arcpy.env.referenceScale = "50000"
arcpy.CreateUnderpass_cartography("roads.lyr", "railroads.lyr", "2 Points", "1 Points",
                                 "cartography.gdb/transportation/under_mask_fc",
                                 "cartography.gdb/transportation/under_mask_rc", "'RelationshipToSurface' = 3",
                                 "cartography.gdb/transportation/tunnel", "PARALLEL", "1 Points")
CreateUnderpass example 2 (stand-alone script)

This stand-alone script shows an example of using the CreateUnderpass tool.

# Name: CreateUnderpass_standalone_script.py
# Description: creates a mask where one feature
#              is visually below another feature
 
# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"

# Set local variables
in_above_features = "roads.lyr"
in_below_features = "railroads.lyr"
margin_along = "2 Points"
margin_across = "1 Points"
out_overpass_feature_class = "cartography.gdb/trans/under_mask_fc"
out_mask_relationship_class = "cartography.gdb/trans/under_mask_rc"
where_clause = "'RelationshipToSurface' = 3"
out_decoration_feature_class = "cartography.gdb/trans/tunnel"
wing_type = "PARALLEL"
wing_tick_length = "1 Points"

# Execute Create Underpass
arcpy.CreateUnderpass_cartography(in_above_features,
                                  in_below_features,
                                  margin_along,
                                  margin_across,
                                  out_overpass_feature_class,
                                  out_mask_relationship_class,
                                  where_clause,
                                  out_decoration_feature_class,
                                  wing_type,
                                  wing_tick_length)

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics