4 votos

¿Cómo guardar .mxd programáticamente?

¿Cómo puedo guardar un programa .mxd de forma programática? El proyecto nunca se guarda y al hacer clic en un botón, quiero guardar el proyecto.

Utilizo SaveFileDialog para obtener la ruta de archivo y luego uso lo siguiente:

IMapDocument mapDocument= ArcMap.Document as IMapDocument;
mapDocument.SaveAs(projectPath);

Esto hace que mi ArcMap se bloquee. ¿Alguna sugerencia?

0 votos

¿Algún mensaje de error o archivo de registro?

0 votos

¿Puedes confirmar cuál es el valor de la variable projectpath?

4voto

Pude obtener resultados de la siguiente manera:

public void SaveProject()
{
    UID uid = new UIDClass();
    //uid.Value = "{119591DB-0255-11D2-8D20-080009EE4E51}"; 
    uid.Value = "esriArcMapUI.MxFileMenuItem";
    uid.SubType = 3;
    ICommandItem item = ArcMap.Application.Document.CommandBars.Find(uid, false);
    item.Execute();      
}

Agradezco tu ayuda.

3voto

Ben Combee Puntos 7193

Seguramente obtienes el gancho IApplication/IMxApplication de alguna manera en tu código, luego puedes obtener el puntero IMxDocument y luego convertirlo en IMapDocument:

IMxDocument ipMxDoc=(IMxApplication)ipApp;

//Supongamos que ipApp ha sido obtenido a través del gancho pasado en el método OnCreate de la interfaz ICommand

IMapDocument ipMapDoc=(IMapDocument)ipMxDoc;

ipMapDoc.SaveAs(fileName);
//Supongamos que fileName se obtiene de un SaveDialogBox

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X