Propósito: Motor de procesamiento y mapeo de bloques BIM. Transforma datos crudos de modelos IFC en estructura optimizada de “Lean BIM”, gestiona estados de avance y sincroniza con otros servicios.
LBP actúa como capa de transformación entre el modelo IFC crudo y la representación operativa de Lean BIM: - Convierte blockIfc (formato IFC) → leanbim_blocks (formato Lean BIM operativo) - Calcula estados visuales de cada bloque (BLOCKED, ON_TIME, LATE, etc.) - Sincroniza datos cuando se certifican bloques o se suben imágenes - Provee endpoints de filtrado inteligente para el frontend
Endpoints Expuestos
Path
Descripción
GET /projects
Lista todos los proyectos activos
GET /project-details
Detalles específicos de un proyecto
GET /ifc-models
Modelos IFC de un proyecto
GET /leanbim/blocks/map
Mapea bloques IFC → estructura Lean BIM
GET /leanbim/blocks
Bloques con filtros de etiquetas (?labelA=X&labelB=Y¶meter=Z&projectId=P)
GET /leanbim/blocks/get-minimal-data
Datos mínimos de bloques (solo código y propiedades esenciales)
POST /leanbim/blocks/create-collection
Crea colección leanbim_blocks desde cero
POST /leanbim/blocks/update-collection
Actualiza leanbim_blocks con upsert masivo
POST /leanbim/blocks/filter-blocks
Filtra bloques por rango de fechas y etiquetas AND/OR
POST /leanbim/blocks/map-and-create
Mapea y crea colección en una operación
POST /leanbim/blocks/map-and-update
Mapea, respeta estados y actualiza colección
PATCH /leanbim/blocks/update-block
Actualiza un bloque individual (execution, status, executedValue)
PATCH /leanbim/blocks/update-image-status
Marca bloque como que tiene imagen asociada
Base de Datos
Motor: MongoDB
Driver: Mongoose v8.x
Conexión: Clase DatabaseManager con conexiones dinámicas por proyecto
Patrón: Reutiliza conexión principal para múltiples proyectos (useDb pattern)