Symmetrical Difference (Analysis)

Available with Advanced license.


Features or portions of features in the input and update features that do not overlap will be written to the output feature class.


Symmetrical Difference illustration


  • The input and update feature class or feature layer must be of the same geometry type.

  • Attribute values from the input feature classes will be copied to the output feature class. However, if the input is a layer or layers created by the Make Feature Layer tool and a field's Use Ratio Policy is checked, then a ratio of the input attribute value is calculated for the output attribute value. When Use Ratio Policy is enabled, whenever a feature in an overlay operation is split, the attributes of the resulting features are a ratio of the attribute value of the input feature. The output value is based on the ratio in which the input feature geometry was divided. For example, if the input geometry was divided equally, each new feature's attribute value is assigned one-half of the value of the input feature's attribute value. Use Ratio Policy only applies to numeric field types.


    Geoprocessing tools do not honor geodatabase feature class or table field split policies.

  • This tool will use a tiling process to handle very large datasets for better performance and scalability. For more details, see Geoprocessing with large datasets.

  • This tool may generate multipart features in the output even if all inputs were single part. If multipart features are not desired, use the Multipart to Singlepart tool on the output feature class.


SymDiff(in_features, update_features, out_feature_class, {join_attributes}, {cluster_tolerance})
ParameterExplanationData Type

The input feature class or layer.

Feature Layer

The update feature class or layer. Geometry type must be the same geometry type as the input feature class or layer.

Feature Layer

The feature class to which the results will be written.

Feature Class

Determines which attributes will be transferred to the output feature class.

  • ALLAll the attributes from the input features will be transferred to the output feature class. This is the default.
  • NO_FIDAll the attributes except the FID from the input features will be transferred to the output feature class.
  • ONLY_FIDOnly the FID field from the input features will be transferred to the output feature class.

The minimum distance separating all feature coordinates (nodes and vertices) as well as the distance a coordinate can move in x or y (or both).


Changing this parameter's value may cause failure or unexpected results. It is recommended that this parameter not be modified. It has been removed from view in the tool dialog. By default, the input feature class's spatial reference x,y tolerance property is used.

Linear Unit

Code sample

SymDiff example (Python window)

The following Python window script demonstrates how to use the SymDiff function in immediate mode.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.SymDiff_analysis("climate.shp", "elevlt250.shp", "C:/output/symdiff.shp", 
                       "ALL", 0.001)
SymDiff example 2 (stand-alone script)

The following stand-alone script demonstrates how to use the SymDiff function.

# Name:
# Description: Create symmetrical difference between input and update features
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inFeatures = "climate.shp"
updateFeatures = "elevlt250.shp"
outFeatureClass = "C:/output/symdiff.shp"
clusterTolerance = 0.001
# Execute SymDiff
arcpy.SymDiff_analysis(inFeatures, updateFeatures, outFeatureClass, "ALL",

Licensing information

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

Related topics