Dado que la capacidad para almacenar mxds dentro de un archivo gdb es solo una idea, he estado meditando sobre mis opciones para el uso de una "plantilla" mxd dentro de un modelo. Mi modelo utiliza 4 diferentes mxds, pero en la actualidad se acepta de una en una (es decir, ejecutar el modelo de 4 veces para cada clase de entidad, el uso de las diferentes mxds). El modelo hace varias cosas tales como guardar una copia de la "plantilla" como una nueva mxd, la sustitución de fuentes de datos etc.
Hasta ahora he "Plantilla de Entrada mxd" como un modelo de parámetro. Esto está muy bien, si yo soy el que se ejecuta el modelo, de modo que sé que mxd es la correcta. Sin embargo, si alguien fuera a ejecutar el modelo, se podría introducir cualquier mxd que deseaba, lo que conduciría inevitablemente a la modelo en su defecto. Las opciones que pensé fueron:
1. Trust that the user will enter the correct template mxd containing
the correct layers: if only.
2. Force the user to enter a template mxd which has the correct name:
won't work in this multiple template mxds scenario, as I would then have to
duplicate the model 4 times to check for the 4 different names. Alternatively,
if I wrote an if statement inside the model to check which template I'm receiving,
it still would not potentially stop the user from renaming Template1.mxd to
Template2.mxd, causing the wrong processes to run.
3. Store the templates inside the same file gdb with the model: as stated,
cannot be done.
Mi escenario actual tiene mi modelo y las características de la plantilla clases dentro de un gdb, dentro de una carpeta junto con los cuatro plantilla mxds. El modelo automáticamente los accesos de cada plantilla mxd según sea necesario, de modo que la rama para cada plantilla se ejecuta de forma consecutiva cada vez que se ejecuta el modelo. Sin embargo, el usuario aún puede cambiar el nombre del mxds, o simplemente eliminarlos de la carpeta...
Mi pregunta es, hay alguna manera de alguna manera que guarde la plantilla mxds dentro del modelo en sí mismo o en alguna otra forma para que el usuario no puede cambiar?