Propósito: Visualización 3D del modelo BIM (Gemelo Digital). Proporciona datos necesarios para renderizar modelos tridimensionales coloreados por estado de ejecución, con filtrado por etiquetas.
Tecnología: Go 1.24.1 / Gin v1.10.0
Puerto::8107
Módulo:digitaltwin
Propósito de Negocio
El “gemelo digital” es la representación virtual del estado actual de la obra en 3D. Este servicio: - Provee datos de geometría y estado de cada elemento del modelo - Permite filtrar la vista por etiquetas de trabajo - Soporta operadores AND/OR para composición de filtros - Muestra el estado histórico del modelo (simulación temporal) - Gestiona rangos de tolerancia para la geometría
POST /digital-twin con body { projectId, filters, labelCodes, operator }:
Consulta etiquetas activas del proyecto
Si labelCodes vacío → incluye todas las etiquetas
Aplica recursividad de etiquetas (etiqueta padre → sub-etiquetas vía DataRecursiveLabel)
Según operador:
OR: unión de todos los bloques de las etiquetas seleccionadas
AND: intersección — solo bloques presentes en TODAS las etiquetas
Para cada bloque calcula: val_executed, displacement_date, estado
Retorna DataOutBlockLabelArray: mapa etiqueta → lista de bloques con datos de geometría
Estructura de Respuesta
{"labelCode":[{"blockCode":"string","dbId":"int (ID Autodesk Viewer)","guid":"string (GUID del elemento IFC)","executed":"bool","val_executed":"float64","displacement_date":"time"}]}
Gestión de Tolerancia
GET /tolerance-range/:projectId: retorna rango configurado de tolerancia para geometría
POST /set-tolerance-range: establece rango que define qué tan “diferente” puede ser la geometría real vs el modelo
Cors
Restringido a dominios específicos (no AllowAllOrigins): - apibt.bimtrazer.com - apibt-dev.bimtrazer.com - apibt-qa.bimtrazer.com