We have an Esri based system in production; a complicated data model with a large number of feature classes. We need to migrate the data to another spatial reference.

The feature classes have class extensions and relationship classes defined on them, so the behaviour of creating new feature classes for the reprojection result that the standard projection geoprocessing tool exhibits is very cumbersome (class extensions and relationships are lost).

If necessary, we'll code up a solution but would prefer not to. Is it somehow possible, using standard or 3rd party extensions, to do a bulk, in-place reprojection and setting of new spatial reference?

3 Answers 3


The answer will depend on your class extensions. In reply to George's Answer you have mentioned that

as the geometry will be projected back to the projection set on the feature class when persisted after the change

This leads me to believe that your custom class extension is validating the geometry and checking the spatial reference as well.


That it is possible. When you grab an IGeometry object (such as a geometry for a certain record in a feature class, you can use the Project(ISpatialReference on it). After that, only save the edit and I think you're done. The problem is that you will be reprojecting the original data.

An ideal solution would creating a duplicate of your database, and then using search/update cursors, you reproject each geometry.

I'm pretty sure there might be easier / more efficient ways of doing it, but that should work.

I also would like to know alternatives to this problem.

  • First, I was looking, as described, for a way to achieve it withs standard ArcMap/GeoProcessing. ;) Second, the suggestion you give will not work (we already tried that), as the geometry will be projected back to the projection set on the feature class when persisted after the change.
    – Cumbayah
    Jul 29, 2010 at 7:24

by 'in-place' you mean taking an existing feature class (fc) and changing it's coordinate system as well as the coordinates of the shapes without creating a few fc?

Here's why it won't work : feature class have one shape field. When you create a fc you set a CoordSys, and storage parameters (XY,Z,M tolerance, resolution and domains). You cannot change the storage parameters after the fc is created.

So think about a GCS with XYResolution (precision) is 8.9e-10, XYTolerance is 10*XYResolution, XYDomain min x & y are -400, -400, max X & Y are some huge values . Now think about re-projecting the shapes 'in-place' without updating the storage parameters, these storage parameters are totally inappropriate for most Projected Coodinate System (PCS) for example, which will lead to features not fitting within XYDomain, poor performance, storage issues, and strange results with topological/relational calculation on the shapes. Going from PCS to GCS is just as bad.

I'm not aware of any workflow that supports what you're trying to do.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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