Yes. You use AutoCAD Map platform API, which is available since AutoCAD Map 2009 (Map 2008 came with preview version). Please refer to the documentation in AutoCAD Map ObjectARX SDK. be warned though, the .NET assemblies you need to set references to are named differently if you use Acad Map 2009 or use Acad Map 2010/11/12.
You also have to make sure to have Autodesk's geospatial coordinate systems set up correctly (if you use Win7, it is in folder "C:\ProgramData\Autodesk\Geospatial Coordinate Systems". Note, there is some changes in AutoCAD Map on how to set up coordinate system library between Nap 2009 and Map 2010/11/12 (I do not have Map 2013, not know if there is change on this). This setup has the same effect on the said list function and the platform .NET API on coordinate system.
Here is some code I use to convert coordinate:
private static void Convert(
string sourceCoordCode, string destCoordCode, double xIn, double yIn, out double xOut, out double yOut)
{
xOut = 0.00;
yOut = 0.00;
MgCoordinateSystemFactory factory = null;
MgCoordinateSystemCatalog catalog = null;
MgCoordinateSystemDictionary coordDic = null;
MgCoordinateSystem coordIn = null;
MgCoordinateSystem coordOut = null;
MgCoordinateSystemTransform coordTransform = null;
MgCoordinate destCoord = null;
try
{
factory = new MgCoordinateSystemFactory();
catalog = factory.GetCatalog();
coordDic = catalog.GetCoordinateSystemDictionary();
coordIn = coordDic.GetCoordinateSystem(sourceCoordCode);
coordOut = coordDic.GetCoordinateSystem(destCoordCode);
coordTransform = factory.GetTransform(coordIn, coordOut);
destCoord = coordTransform.Transform(xIn, yIn);
yOut = destCoord.GetY();
xOut = destCoord.GetX();
}
catch
{
throw;
}
finally
{
if (factory != null) factory.Dispose();
if (catalog != null) catalog.Dispose();
if (coordDic != null) coordDic.Dispose();
if (coordIn != null) coordIn.Dispose();
if (coordOut != null) coordOut.Dispose();
if (coordTransform != null) coordTransform.Dispose();
if (destCoord != null) destCoord.Dispose();
}
}
To use this method, something like this:
double x1=123456.00, y1=1234567.00;
double x2,y2;
Convert("UTM27-10","UTM83-10",x1, y1, out x2, out y2);
The output of converted coordinate is identical to the output of the said list functions.
HTH.