Split Features (Topographic Production)

Summary

Splits features on input feature classes for any number of polyline or polygon target feature classes using the cutting features and inserts points on the cutting feature.

Usage

    Caution:

    This tool modifies the input data. See Tools that modify or update the input data for more information and strategies to avoid undesired data changes.

  • The Cutting Features parameter must have at least one feature selected. An error will be returned if no features are selected.

  • Target features will be divided into multiple features at any point where they intersect the source features.

  • The Cutting Features value will have new vertices added at every point where they intersect the target features.

  • Run the Integrate tool using the Cutting Features and Target Features parameter values to help ensure spatial integrity before using this tool. This is especially important when complex polygon features are involved.

Parameters

LabelExplanationData Type
Cutting Features

The cutting features that will be used to split the target features where they intersect the target feature class geometries.

Feature Layer
Target Features

The features that will be divided by the cutting features.

Feature Layer
Use Target Z Values

Specifies whether the z-value from the source or target will be used.

  • Checked—The z-value from the source or target will be used.
  • Unchecked—The z-value from the source or target will not be used. This is the default.
Boolean

Derived Output

LabelExplanationData Type
Output Features

Features that were divided by the Cutting Features value.

Feature Layer

arcpy.topographic.SplitFeatures(cutting_features, target_features, use_target_z)
NameExplanationData Type
cutting_features

The cutting features that will be used to split the target features where they intersect the target feature class geometries.

Feature Layer
target_features
[target_features,...]

The features that will be divided by the cutting features.

Feature Layer
use_target_z

Specifies whether the z-value from the source or target will be used.

  • USE_TARGET_ZThe z-value from the source or target will be used.
  • DONT_USE_TARGET_ZThe z-value from the source or target will not be used. This is the default.
Boolean

Derived Output

NameExplanationData Type
out_feature_layer

Features that were divided by the cutting_features value.

Feature Layer

Code sample

SplitFeatures example 1 (stand-alone script)

This script demonstrates how to use the SplitFeatures function to split single target features based on the cutting features.

# Name: SplitFeatures_sample1.py
# Description: Splits a single target features based on the cutting features

# Import System Modules
import arcpy

# Check Out Extensions
arcpy.CheckOutExtension('Foundation')

# Setting Local Variables
cutting_features = r'C:\Temp\MapIndex.gdb\Index_Polygons'
target_features = r'C:\Temp\Test.gdb\Builtup_Area_Polygons;C:\Temp\Test.gdb\Vegetation_Polygons'

# Setting selection on cutting features
selected_feature = arcpy.management.MakeFeatureLayer(cutting_features, 'AOI').getOutput(0)
arcpy.management.SelectLayerByAttribute(selected_feature, 'NEW_SELECTION', "PRODUCT_ID = 'V795X16573'")

# Splitting features based on the selected cutting feature
arcpy.topographic.SplitFeatures(cutting_features, target_features, 'DONT_USE_TARGET_Z')

# Check In Extensions
arcpy.CheckInExtension('Foundation')
SplitFeatures example 2 (stand-alone script)

This script demonstrates how to use the SplitFeatures function to split all feature classes in a geodatabase on the cutting features.

# Name: SplitFeatures_sample2.py
# Description: Gets all feature classes in a geodatabase and splits them on the selected cutting feature

# Import System Modules
import arcpy
import os

# Check Out Extensions
arcpy.CheckOutExtension('Foundation')

# Setting Local Variables
cutting_features = r'C:\Temp\MapIndex.gdb\Index_Polygons'
target_database = r'C:\Temp\Test.gdb'

# Getting feature classes from the target geodatabase that are managed in a feature dataset
target_features = r''
arcpy.env.workspace = target_database
datasets = arcpy.ListDatasets('*', 'Feature')
for dataset in datasets:
    fclasses = arcpy.ListFeatureClasses('*', '', dataset)
    for fclass in fclasses:
        desc = arcpy.Describe(fclass)
        if desc.shapeType in ('Polygon', 'Polyline'):
            target_features += os.path.join(target_database, dataset, fclass) + ';'
target_features = target_features[:-1]

# Setting selection on cutting features
selected_feature = arcpy.management.MakeFeatureLayer(cutting_features, 'AOI').getOutput(0)
arcpy.management.SelectLayerByAttribute(selected_feature, 'NEW_SELECTION', "PRODUCT_ID = 'V795X16573'")

# Splitting all features in a database based on the selected cutting feature
arcpy.topographic.SplitFeatures(selected_feature, target_features, 'DONT_USE_TARGET_Z')

# Check In Extensions
arcpy.CheckInExtension('Foundation')

Environments

This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: Requires Production Mapping
  • Advanced: Requires Production Mapping

Related topics