I have a feature class within a feature dataset in a file geodatabase (FGDB), and I need a copy of it in another FGDB.

In ArcGIS 10.1, I've used the "Copy Features" tool, and it looks to be the same (according to the "Feature Compare" tool). Using the "Feature Class to Feature Class" tool, I receive the following messages from "Feature Compare":

Field: Field OBJECTID domain fixed is different (Base: false, Test: true).
Field: Field Shape domain fixed is different (Base: false, Test: true).

Does anyone have any insight on the differences between "Copy Features" and "Feature Class to Feature Class"? What do the messages from Feature Compare mean?


The Feature Class to Feature Class tool is a Conversion tool. The idea is to convert a feature class in one format (e.g. shapefile) to another (e.g. geodatabase). It also allows the user to control the Field Map - i.e. which fields will be copied over.

The Copy Features tool simply creates an exact copy of the input features. Note - this tool can also be used for data conversion but cannot be used to manipulate the Field Map.


The most basic difference is the level at which each of the functions are working.

The Feature Class to Feature Class tool is working at the Layer level, meaning that regardless of the features selected, it treats them as a whole. A new feature class is going to be created. This means that you have control over the structure of the new featureclass, including adding and deleting fields. You can choose a subset of features to copy over, but the emphasis is on the layer structure itself.

On the other hand, the Copy Features tool is working at the individual Feature level. Here, the focus is on taking a subset of features from a layer and copying them and all their attributes to a new layer. Copying the features means taking all of the attributes as well.

There are pros and cons to each approach. Both tools will create a new feature class, whether with a new name, or if you have the geoprocessing setting correct, by overwriting an existing feature class. The Feature Class to Feature Class tool lets you map fields, but restricts you to an SQL query to export any type of subset of features. The Copy Features tool lets you select any or all of the features in the featureclass if it is a feature layer with a selection applied to it. The tradeoff being that there is no control over the structure of the output featureclass. HT to @blah238 for the clarification.

Edit - 5/13/2013

After taking a closer look at your second question, and the comments from others about posting it as a second question, it seems that it directly relates to benefit comparison between the two tools.

The results of the Feature Compare tool show that the ObjectID and the Shape field are different. I am not sure the parameters you chose for this tool, but in the Help document, it states that you want to choose appropriate Sort orders to make sure that you are comparing the same features.

It is probably a safe assumption that you used the ObjectID as the sort feature, or just used the default, since the two featureclasses have the same features. This brings up a critical difference between the two tools:

Copy Features Maintains the ObjectID of the features being copied. Feature Class to Feature Class generates a New ObjectID for each feature. This removes any gaps in consecutive numbering that occur when features are deleted or combined with others.

Thus, the Feature Compare tool is seeing differences in the ObjectID field, because they no longer have the same numbers, and in the Shape field, because two features with the same ObjectID may now no longer be identical.

Example: Two Layers, each with 100 Features. ObjectID's range from 1-100. At some point in time, Feature 98 is deleted, leaving 99 Features Let's look at the last 5 features in each layer:

Original    Copy Feat    Feat to Feat  
    95          95             95  
    96          96             96  
    97          97             97  
    99          99             98  
   100         100             99

As you can see, 98 is missing from one layer, triggering the ObjectID mismatch. ObjectID 99 now refers to different features, triggering the Shape mismatch.

There are a few situations where it is useful to maintain an ObjectID. These are generally where ESRI has built internal links between features or layers, like in Relationship Classes, or Geometric Networks.

  • 5
    I think that both tools will create a new feature class or overwrite an existing one. The difference is that Copy Features respects feature selections and will only copy selected features if the input is a feature layer with a selection. Neither will add features to an existing feature class. For that you would need to use Append or an InsertCursor. – blah238 May 10 '13 at 18:27
  • 1
    Do you have any idea why Compare Feature would return a difference between the source file, and the file generated by "Feature Class to Feature Class"? – Dan May 10 '13 at 21:44
  • @Dan - I added some what I think explains the Feature Compare results. Hope it helps. – Get Spatial May 13 '13 at 18:59
  • Another reason why Feature Compare can find differences in the shape is because of the floating point precision see: gis.stackexchange.com/questions/40481/… – Below the Radar Jul 19 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.