Skip To Content

Feature Class to Feature Class


Converts a shapefile, coverage feature class, or geodatabase feature class to a shapefile or geodatabase feature class.


  • The Field Map parameter controls how the input fields in the Input Features will be written to the Output Features.

    • To remove fields during processing, delete output fields from the Field Map. This will not affect the input.
    • The data type of an output field will default to the same as the data type of the first input field (of that name) it encounters. The data type may be changed manually at any time to any valid data type.
    • There are a number of Merge rules available: first, last, join, sum, mean, median, min, max, and standard deviation.
    • When using a merge rule of Join, you can specify your own delimiter such as a space, comma, period, dash, and so on. If you want to use a space, make sure your mouse pointer is at the start of the input box and click the space bar once.
    • You can specify the start and end positions of text fields using the format option.
    • Standard deviation should not be performed on a single input because values cannot be divided by zero, so standard deviation is not a valid option for single inputs.

  • An SQL expression can be used to select a subset of features. For further details on the syntax for the Expression parameter, see SQL reference for elements used in query expressions.

  • When converting geodatabase data that has subtypes or domains to a shapefile, both the subtype and domain codes and descriptions can be included in the output. Use the Transfer field domain descriptions geoprocessing environment to control this behavior. By default, only domain and subtype codes will be included in the output, not descriptions.


    Conversion to shapefiles with subtype and domain descriptions may take more time (slower performance) than without descriptions. If you do not require the subtype and domain descriptions in your shapefile output, it is recommended you use the unchecked default behavior of the Transfer field domain descriptions environment (False or NOT_TRANSFER_DOMAINS in Python) to achieve best performance.


FeatureClassToFeatureClass(in_features, out_path, out_name, {where_clause}, {field_mapping}, config_keyword)
ParameterExplanationData Type

The feature class or feature layer that will be converted.

Feature Layer

The location in which the output feature class will be created. This can be either a geodatabase or a folder. If the output location is a folder, the output will be a shapefile.

Workspace;Feature Dataset

The name of the output feature class.


An SQL expression used to select a subset of features. For more information on SQL syntax see the help topic SQL reference for elements used in query expressions.

SQL Expression

The fields and field contents chosen from the input feature class. You can add, rename, or delete output fields as well as set properties such as data type and merge rule.

You can use the ArcPy FieldMappings class to define this parameter.

Field Mappings

Learn more about configuration keywords


Derived Output

NameExplanationData Type

The output feature class.

Feature Class

Code sample

FeatureClassToFeatureClass example 1 (Python window)

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

import arcpy
arcpy.env.workspace = "C:/data/GreenvalleyDB.gdb/Public Buildings"
FeatureClassToFeatureClass example 2 (stand-alone script)

The following stand-alone script demonstrates how to use the FeatureClassToFeatureClass tool.

# Name:
# Description: Use FeatureClassToFeatureClass with an expression to create a subset
#  of the original feature class.  
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/GreenvalleyDB.gdb/Public Buildings"
# Set local variables
inFeatures = "buildings_point"
outLocation = "C:/output/output.gdb"
outFeatureClass = "postoffices"
delimitedField = arcpy.AddFieldDelimiters(arcpy.env.workspace, "NAME")
expression = delimitedField + " = 'Post Office'"
# Execute FeatureClassToFeatureClass
arcpy.FeatureClassToFeatureClass_conversion(inFeatures, outLocation, 
                                            outFeatureClass, expression)

Licensing information

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

Related topics