Codificación interna en BIM

La codificación interna de los elementos en los modelos BIM es un tema que normalmente pasa desapercibido para los usuarios ya que es algo oculto en la interfaz, pero que es clave para el correcto funcionamiento de los modelos, el mantenimiento de la integridad de los elementos y su relación con bases de datos externas.

En el caso de vinculación de modelos BIM con sistemas de Facility Management, es fundamental entender los códigos que los programas de edición BIM como Revit generan automáticamente de forma interna para identificar unívoca y consistentemente los elementos.

La intención de este post no es dar una explicación excesivamente técnica sino unas indicaciones que clarifiquen los distintos códigos existentes, sus características y posibles usos. Al final del post encontraréis una serie de links a referencias más técnicas.

Códigos BIM internos

Al hablar de códigos internos, vamos a hablar de conceptos como el Id y el GUID. El Id es un identificador único que depende del tipo de elemento o la plataforma. Existen grandes diferencias en la estructura de este código entre distintas plataformas, ya que cada una establece sus reglas y sus métodos de generación. Sin embargo, el GUID sí que sigue una serie de reglas comunes.

Un GUID es un identificador único (GUID: Globally Unique IDentifier), también conocido como UUID (Universally Unique IDentifier). En términos computacionales, es un número de 16 bytes o 128 bits. Está compuesto por una serie de números hexadecimales (incluye dígitos de 0-9 y letras de A-F), y comúnmente está escrito en grupos de 8-4-4-4-12 caracteres.

En BIM, encontramos una serie de códigos para cada elemento que presentan ciertas diferencias entre sí:

  • Revit Element Id: Es un número decimal (int) que identifica un elemento en un proyecto de Revit. Es único sólo en ese mismo proyecto, pero no entre varios modelos. Su longitud puede variar en función del número de elementos de un modelo, pero es raro que supere los 8 dígitos.
  • Revit Element UniqueId: Es una composición de caracteres (string) que identifica a un elemento de Revit “universalmente”, no sólo en el proyecto. Comúnmente se denomina el GUID de Revit, pero tiene una estructura distinta a los GUIDs (el Element UniqueId está compuesto por 8-4-4-4-12-8 caracteres hexadecimales). Esos 8 caracteres que añade al final respecto a un GUID convencional, hacen referencia al Revit Element Id, pero convertidos a formato hexadecimal.
  • Dwf GUID: Se utiliza el formato *.dwf como un formato común de Autodesk. Tiene la estructura 8-4-4-4-12 común de un GUID.
  • IFC GUID: Es un código de 22 caracteres (string) que utiliza la base de 64 caracteres que incluye números, letras mayúsculas y minúsculas y algún carácter especial. A pesar de tener un aspecto completamente distinto al resto de GUIDs, el IFC GUID es totalmente idéntico al DWF GUID, solo que está expresado con otra codificación con la finalidad de acortarlo y hacerlo más entendible.

Uso de los códigos desde Revit

En este caso tomaremos como supuesto que los elementos son generados en Revit.

Con el plugin gratuito “Revit Lookup” o con un poco de código en la API de Revit, podemos obtener tanto el Element ID como el Unique ID de un elemento. Un ejemplo:

  • Element Unique Id = 626f5187-9a17-4713-98b7-532ca3cc31b1-000dabe8
  • Revit Element Id = 895976

Usando el ejemplo, podemos descomponer el Unique Id en dos partes:

  • La parte que comprende los caracteres agrupados en 8-4-4-4-12 empezando por el principio, se suele denominar “EpisodeId”, y hace referencia a la sesión y proyecto.

En el ejemplo: 626f5187-9a17-4713-98b7-532ca3cc31b1

  • Los últimos 8 caracteres son los relativos al ElementId del elemento. Es la conversión hexadecimal del ElementId.

En el ejemplo: 000dabe8 = 895976

Cuando desde Revit exportamos a otros formatos como *.dwg o *.ifc, se genera un GUID para cada elemento exportado. Ese GUID puede crearse de varias formas dependiendo de la naturaleza y origen del elemento. Cuando el origen del elemento es Revit, el GUID generado se obtiene a partir del UniqueId del elemento.

El GUID generado es único y consistente a lo largo de sucesivas exportaciones. Ese GUID será el “DWF GUID” en caso de exportar a *.dwf, o será codificado en base 64 usando 22 caracteres para convertirse en el “IFC GUID”.

Preguntas

¿Es posible que haya dos elementos con el mismo Id dentro de un modelo?

  • ElementId: No, no es posible que haya dos elementos con el mismo Id en un mismo modelo.
  • UniqueId: No.

¿Es posible que haya dos elementos con el mismo Id en distintos modelos?

 

  • ElementId: Sí, pero es muy poco probable. Un ejemplo se da en modelos colaborativos, dado que puede que se generen dos Ids iguales en dos archivos locales trabajando al mismo tiempo, y a la hora de sincronizar al central, para evitar duplicidades, uno de los dos elementos cambie su Id.

 

  • UniqueId: Desde la documentación de la API de Revit, se define el UniqueId como un identificador único y estable, que no varía a lo largo del tiempo, y por tanto puede utilizarse para identificar un elemento a lo largo del tiempo, y entre varios modelos. Sin embargo, existe algún caso de inconsistencia en el UniqueId (ver link en la parte inferior).

¿Es posible que el Id de un elemento eliminado del modelo se reutilice para otro elemento?

  • ElementId: Sí, es un caso raro, pero es posible.
  • UniqueId: No.

Posible uso en la fase de operación y mantenimiento

Para la vinculación de un elemento de un modelo BIM con una entrada de una base de datos de una plataforma FM, es necesario la existencia de un código único e invariable en ambas plataformas que identifique al elemento. Ese código no tiene por qué ser necesariamente el mismo en ambas, pero sí tiene que ser estable a lo largo del tiempo. En caso que sean distintos códigos será necesario almacenar la relación entre los códigos de un mismo elemento en ambas plataformas.

A ese respecto, en lo referente al código identificativo en Revit, existen dos opciones:

  • Utilizar el UniqueId: En el caso de Revit, Autodesk señala el UniqueId como un identificador único y estable, que puede ser utilizado como identificador para bases de datos externas, y por tanto, útil para este propósito.
  • Generar un código customizado: Puede partir del ElementId o UniqueId con ciertas modificaciones que aseguren que sean únicos en el proyecto. En estos casos, los códigos son creados y mantenidos por el usuario, y por tanto es muy importante establecer las reglas de creación y mantenimiento para evitar inconsistencias. Otra opción es generar un GUID distinto del UniqueId a partir de la API de Revit, pero en ese caso también debe considerarse las reglas para su mantenimiento. En todo caso recomendamos mantener una longitud acotada en lo posible del código. Añadir prefijos que aporten información sobre el tipo de elemento puede ser contraproducente si eso hace que generen códigos muy largos o que no pueden ser mantenidos mediante automatizaciones ya que dependen de clasificaciones que necesitan input de usuarios.

Como conclusión diremos que la identificación de los elementos de los modelos BIM es un tema complejo que es necesario entender si queremos vincular la información de los elementos de los modelos con la existente en otras fuentes de información externa, y mantener esa vinculación a lo largo del tiempo.

Esperamos vuestros comentarios.

Referencias

Explicación general de GUIDs (http://bimtoolbox.org)

Relación entre UniqueId de Revit, GUID, e IFC GUID (https://thebuildingcoder.typepad.com)

Problemas de consistencia del UniqueId y soluciones (https://thebuildingcoder.typepad.com)

Autores: Alberto Ramos y Juan Manuel Pérez.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit exceeded. Please complete the captcha once again.

  • Antes de enviar tu consulta, échale un vistazo a la información básica sobre protección de datos aquí.

    Modelical.com le informa que los datos personales que usted proporcione serán tratados por MODELICAL CONSULTORIA S.L. como responsable de este sitio web.

    Finalidad de la recogida y tratamiento de los datos personales: Enviar la información que el usuario requiera a través del sitio web. - Legitimación: Consentimiento del interesado. - Destinatarios: Hosting: Gigas, hosting 100% español y 100% seguro. - Derechos: Podrá ejercer sus derechos de acceso, rectificación, limitación y supresión de los datos de unsubscribe@modelical.com así como el derecho a presentar una reclamación ante una autoridad de control.