Archivo de la etiqueta: atributo

Vistas de base de datos

Acabamos a añadir a Digi3D.NET una nueva herramienta que te va a permitir visualizar gráficamente la información de base de datos asociada a un archivo de dibujo.

Básicamente consiste en crear un archivo de referencia virtual que apunta a alguno de los archivos que tenemos cargados, pero en vez de mostrar geometrías, muestra etiquetas cuyo contenido se extrae de la base de datos.

Crear una vista de base de datos es muy sencillo, tan solo tenemos que seleccionar la opción del menú Base de datos/Crear vista de base de datos. Una vez ejecutado, el programa analiza si tenemos cargado algún archivo de dibujo con información de base de datos. Si no tenemos cargado ningún archivo con información de base de datos nos muestra un mensaje de error. En caso contrario, nos muestra el cuadro de diálogo Crear una vista de base de datos que nos va a permitir indicar de cuál de entre los archivos de dibujo que tenemos cargados con información de base de datos queremos crear la vista de base de datos.

Crear vista de base de datos

Cuando aceptamos este cuadro de diálogo, el programa crea un archivo virtual y lo carga como archivo de referencia, de manera que éste aparece en el Panel de archivos de dibujo, de manera que podemos interactuar con los parámetros que muestra el archivo en el panel.Vista de base de datos en el panel de archivos de dibujo

Como puedes comprobar, podemos especificar por un lado la tabla de la cual queremos extraer información y por otro el campo que queremos mostrar en la ventana de dibujo.

También nos permite indicar los parámetros de visualización de las etiquetas como es la altura de los textos a mostrar así como el color de fondo de la etiqueta y el color del texto.

Cada vista puede visualizar únicamente una tabla y un campo de dicha tabla, de manera que si queremos mostrar más de un tipo de etiqueta de un mismo archivo de dibujo, tendremos que crear tantas vistas de base de datos sobre el mismo archivo como tipos de etiquetas queramos visualizar.

Si te fijas en la captura de pantalla anterior, el nombre del archivo virtual generado se denomina «Vista de base de datos de: [nombre del archivo]». Cuando hayamos terminado de trabajar con la vista, podemos descargarla con la orden DEJAR o con el menú contextual que aparece al pulsar el botón derecho sobre el nombre de ésta en el panel de archivos de dibujo.

Si descargamos el archivo original la vista de base de datos no se descarga y sigue funcionando correctamente.

La vista de base de datos únicamente muestra etiquetas en los elementos de tipo punto del archivo original, de manera que si tienes otro tipo de geometrías no se mostrarán etiquetas en dichas geometrías, independientemente que éstas tengan un enlace de base de datos a la tabla especificada.

Puedes ver esta funcionalidad en acción en el siguiente vídeo:

Propiedades de la entidad seleccionada

Hasta ahora en Digi3D.NET teníamos tres herramientas para comprobar las propiedades de una entidad existente:

  • Ejecutar la orden LISTA y seleccionar la entidad. En el panel de Resultados podemos ver las coordenadas de sus vértices así como sus códigos y atributos de BBDD.
  • Tentativar la entidad con el panel Tentativos abierto. Aparecen en dicho panel todos los códigos que tenga asignada dicha entidad.
  • Ejecutar la orden EDITAR_COD y seleccionar la entidad. El programa nos mostrará los códigos de la entidad así como los atributos de BBDD que tenga asignado cada código.

Ninguna de estas opciones es productiva si queremos ver los atributos de BBDD de una entidad para tomar o no decisiones, como por ejemplo seleccionar uno u otro códigos si el atributo de BBDD «Estado de la vía» de una entidad existente tiene uno u otro valor.

Para solucionar este problema, hemos creado el panel Propiedades de la entidad seleccionada. Este panel muestra los códigos de la entidad que acabas de tentativar (independientemente del motivo por el cual has tentativando la entidad).

Muestra los códigos de la entidad y además los enlaces a BBDD de cada uno de los códigos, de manera que incrementarás exponencialmente tu productividad.

Puedes ver un ejemplo en el siguiente vídeo:

Localización inteligente de errores en atributos en Digi3D.NET

Digi3D.NET permite añadir inteligencia a la hora de analizar los atributos de base de datos de manera que se pueden detectar condiciones incompatibles.

Esta inteligencia se puede añadir en la tabla de códigos mediante un disparador que se dispara en el momento de almacenar una entidad. El disparador se encargará de analizar todas las restricciones y de informar a Digi3D.NET que la entidad no se puede almacenar pues si algún atributo o combinación de atributos no cumple con los criterios. En caso de que el disparador informe de alguna incompatibilidad, Digi3D.NET mostrará al usuario un cuadro de diálogo que por un lado mostrará un mensaje de error (proporcionado por el disparador)  y que por otro lado permitirá al usuario corregir el problema modificando los valores de los atributos a almacenar en la base de datos.

Esta inteligencia puede estar basada únicamente en atributos o tener en cuenta las particularidades de la geometría que se está intentando almacenar o incluso de todas las geometrías existentes en el archivo de dibujo.

Por ejemplo se podría detectar como error de atributo sin tener en cuenta la geometría que se está intentando almacenar el caso de que un edificio sea de tipo religioso pero que en tipo de religión se indique desconocido.

Un error de atributo teniendo en cuenta la geometría que se está intentando almacenar podría ser el caso del atributo País en una entidad de tipo Vía de comunicación. Si la geometría está en un rango de coordenadas se puede considerar que la geometría está en España y si está en otro rango de coordenadas se puede considerar que está en Francia. Si digitalizamos una entidad cuyas coordenadas están supuestamente en España y el atributo indica que está en Francia, se puede informar al usuario como un error de atribución.

Un error de atribución que tiene en cuenta la geometría que se está intentando almacenar y las geometrías ya existentes en el archivo de dibujo podría ser el caso del atributo Tipo de un polígono de Instalación. Si el tipo es militar y dentro encontramos una pista deportiva cuya área supera un 80% del polígono de instalación se debe indicar que el atributo Tipo debe ser Deportes.

Las posibilidades son ilimitadas.

En el siguiente vídeo puedes ver estos ejemplos en acción. Si quieres hacerlo tú mismo, puedes descargarte la tabla de códigos con la inteligencia añadida, la base de datos y el archivo de dibujo del siguiente enlace: ControlAvanzadoAtributosBBDD.zip. Debes utilizar la versión de 32 bits para conectarte con la base de datos, pues es Access y por limitaciones impuestas por Microsoft, un programa de 64 bits no puede conectarse con una base de datos Access. Para conectarte con la base de datos, en la pestaña Archivo de dibujo del cuadro de diálogo Nuevo proyecto, debes indicar en Modelo de datos (en la sección Motor de importación/exportación para archivos binarios de doble precisión) la opción CATDBS y en Cadena de conexión debes pulsar el botón de los tres puntos. Eso hará aparecer el cuadro de diálogo común Propiedades de vínculo de datos. Selecciona Microsoft Jet 4.0 OLE DB Provider (que es el proveedor que proporciona conexiones con bases de datos Access) y a continuación pulsa el botón Siguente. En la pestaña  Conexión pulsa el botón de los tres puntos en «Selecciona o escriba el nombre de una base de datos». Aparecerá el cuadro de diálogo común «Seleccione la base de datos de Access». Localiza la base de datos y pulsa Abrir. Acepta el cuadro de diálogo y ya has configurado Digi3D.NET para conectarse con la base de datos cuando abras el archivo de dibujo.

 

Agrupando grupos de atributos de BBDD en Digi3D.NET

Si estás creando cartografía con Digi3D.NET y las geometrías tienen información de base de datos, es posible que la cantidad de atributos a mostrar sea muy grande.

Es posible que te interese agrupar los distintos campos en función de algún criterio, y que los atributos agrupados únicamente sean visibles cuando lo indique el usuario.

Acabamos de añadir a Digi3D.NET la posibilidad de indicar en los nombres de los campos (que aparecen en el esquema de base de datos en el Editor de Tablas de Códigos) un nombre (opcional) de grupo. Los campos que tengan un grupo asociado se agruparán en un nodo con dicho nombre en los paneles y cuadros de diálogo que muestran campos de base de datos.

Digitab mostrando el campo Grupo en los atributos de un esquema de bbdd

En las siguientes capturas, puedes ver el panel de Campos de la base de datos mostrando los atributos de la tabla AAA010. Puedes comprobar que aparece un grupo denominado Comunes. Por defecto Digi3D.NET muestra los grupos cerrados. Es responsabilidad del usuario abrir el grupo que le interese. Los campos que no tienen asociado un grupo se muestran siempre.

De esta manera reducimos el número de atributos visibles por parte del usuario y dejamos visibles el 100% de las ocasiones los atributos que va a modificar habitualmente. Los atributos que no varían (o que lo hacen en muy pocas ocasiones) aparecen dentro del grupo Comunes, de manera que no molestan al usuario.

Puedes ver esta nueva funcionalidad en el siguiente vídeo:

 

Busca entidades en función de sus atributos en la BBDD

Acabamos de añadir un nuevo buscador en el panel de buscadores de Digi3D.NET que te va a permitir buscar las entidades que tengan asociado algún atributo de base de datos.

Tan solo tienes que cargar un modelo con base de datos (como un archivo .shp por ejemplo) y seguir los siguientes pasos:

  1. Buscar por atributos de BBDDAbre el panel de búsqueda (menú Editar/Buscar).
  2. Selecciona el buscador Buscar por atributos de BBDD.
  3. Pulsa el botón con el icono de regenerar para que se regeneren los desplegables de Tabla y Campo.
  4. Selecciona la tabla, el campo y el valor que quieres localizar.
  5. Selecciona dónde quieres enviar el resultado de la búsqueda (Ventana de resultados 1, Ventana de resultados 2 o a la orden activa)
  6. Pulsa el botón Buscar.

La herramienta te permite buscar palabras completas, palabras dentro de los registros e indicar si deben coincidir las mayúsculas/minúsculas.

Como sabes, publicamos el código fuente de todos los buscadores en nuestro repositorio en GitHub. Puedes ver cómo programar tú mismo esta funcionalidad siguiendo el siguiente enlace: https://github.com/digi21/Buscadores/blob/master/BuscarPorCampoBBDD.cs

Puedes ver esta funcionalidad en acción en el siguiente vídeo: