Tengo una sola carpeta, llamémosla Carpeta1, que contiene varias carpetas; CarpetaA, CarpetaB, CarpetaC.....FolderZ.
Las carpetas de la A a la Z contienen cada una de ellas múltiples bases de datos de archivos. Las carpetas A-Z no contienen ningún otro tipo de archivo ni ninguna otra carpeta.
Necesito copiar todas las geodatabases de archivos que están en las carpetas A - Z en una sola carpeta en otro lugar de mi disco local.
Estoy tratando de hacer esto en ModelBuilder ya que tengo muy poca experiencia en python.
Pensé que podría conseguirlo fácilmente utilizando un modelo (imagen adjunta "MainModel")y un submodelo ("SubModel")
Mi modelo principal tiene una variable de carpeta establecida como parámetro de entrada (esta sería Carpeta1). Esto alimenta un iterador Iterate Workspaces. Lo he configurado para que sólo busque carpetas (aquí quiero que devuelva FolderA, FolderB, FolderC....FolderZ).
Utilizo el espacio de trabajo de salida de aquí para alimentar mi submodelo como un parámetro.
El submodelo tiene un parámetro de carpeta como entrada (este es el "Espacio de Trabajo" de MainModel, en teoría debería ser FolderA, FolderB etc....). Esto luego se alimenta en un iterador de espacios de trabajo y busca FileGDB's. La salida de "Worksapce" luego se alimenta en la herramienta de copia que copia la geodatabase en una carpeta predefinida en mi unidad local.
Puedo ejecutar el SubModelo por sí solo y funciona bien, es decir, puedo apuntarlo a la Carpeta A y copiará todas las geodatabases de archivos de la CarpetaA en otra carpeta. El problema surge cuando intento trabajar desde el MainModel.
En el MainModel, puedo conectar la salida del "Espacio de trabajo" en el SubModel y me deja seleccionar la variable "Carpeta" para ello. Sin embargo, el modelo no se llena de color, y si abro la ventana de parámetros de la herramienta veo el error (archivo adjunto "Error840").
He probado a cambiar las variables de cada modelo para que sean carpetas o espacios de trabajo o una combinación, y he probado a configurar los iteradores para que busquen sólo carpetas o sólo GDB o incluso he dejado el campo "Tipo de espacio de trabajo" en blanco. Pero nada parece funcionar.
Lo único que he conseguido hacer donde he tenido un éxito parcial es utilizar un único modelo (adjunto "AlternateModel"). Este utiliza la opción recursiva en las propiedades del iterador y tiene Folder1 como parámetro de la variable Folder de entrada.
De este modo, se copian todas las geodatabases necesarias de todas las carpetas (A-Z), pero también se copian todas las carpetas (A-Z).
¿Hay algo sencillo que se me escapa?