Feature Class to Feature Class (Conversion)


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


  • All fields in the output dataset and the contents of those fields can be controlled using the Field map.

    • To change the field order, select a field name and drag it to the preferred position.
    • The default data type of an output field is the same as the data type of the first input field (of that name) it encounters. You can manually change the data type at any time to any other valid data type.
    • The following merge rules are available: first, last, join, sum, mean, median, mode, minimum, maximum, standard deviation, and count.
    • When using the Join merge rule, you can specify a delimiter such as a space, comma, period, dash, and so on. To use a space, make sure the pointer is at the start of the input box and press the Spacebar once.
    • You can specify the start and end positions of text fields using the format option.
    • Do not perform standard deviation on a single input because values cannot be divided by zero, so standard deviation is not a valid option for single inputs.

    Learn more about mapping fields in scripts

  • 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

Controls which attribute fields will be in the output. By default, all fields from the inputs will be included.

Fields can be added, deleted, renamed, and reordered, and you can change their properties.

Merge rules allow you to specify how values from two or more input fields are merged or combined into a single output value. There are several merge rules you can use to determine how the output field will be populated with values.

  • First—Use the input fields' first value.
  • Last—Use the input fields' last value.
  • Join—Concatenate (join) the input field values.
  • Sum—Calculate the total of the input field values.
  • Mean—Calculate the mean (average) of the input field values.
  • Median—Calculate the median (middle) of the input field values.
  • Mode—Use the value with the highest frequency.
  • Min—Use the minimum value of all the input field values.
  • Max—Use the maximum value of all the input field values.
  • Standard deviation—Use the standard deviation classification method on all the input field values.
  • Count—Find the number of records included in the calculation.

In Python, you can use the FieldMappings class to define this parameter.

Field Mappings

Specifies the default storage parameters (configurations) for geodatabases in a relational database management system (RDBMS). This setting is applicable only when using enterprise geodatabase tables.

Configuration keywords are set by the database administrator.

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 function 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 function.

# Name: FeatureClassToFeatureClass_Example2.py
# 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