P1
P0
All
Camera: Isometric · Pitch 35° · Azimuth 215°
Selected: Building · "Cultiva Coworking"
Units: Metros · Grid: 100mm · Scale: 1:75
Selected: Building · "Cultiva Coworking"
Units: Metros · Grid: 100mm · Scale: 1:75
Escena
Props
Export
Code
Resumen del Edificio
280
m² construidos
2
plantas
47
nodos en escena
12
huecos (ptas/vents)
Grafo de Escena (Pascal Node Tree)
🏘️
Site · Malasaña-14
site
🏢
Cultiva Coworking
building
📐
Planta Baja (P0)
level
▭
Forjado P0 · 14×10m
slab
▮
Muro Norte · 14.0m EXT
wall
🚪Puerta Entrada 1.0×2.1item
▮Muro Este · 10.0m EXTwall
🪟Ventana E1 · 1.2×1.2item
🪟Ventana E2 · 1.2×1.2item
▮Muro Sur · 14.0m EXTwall
▮Muro Oeste · 10.0m EXTwall
▯Tabique Recepción · 10.0m INTwall
▯Tabique Salas · 4.0m INTwall
🏠Recepción / Café · 40 m²zone
🏠Coworking Abierto · 100 m²zone
🏠Sala Reuniones 1 · 16 m²zone
🏠Sala Reuniones 2 · 16 m²zone
📐
Planta 1 (P1)
level
▭Forjado P1 · 14×10mslab
▮Muro Norte P1 · 14.0m EXTwall
▮Muro Este P1 · 10.0m EXTwall
▯Tabiques Despachos ×7wall
🏠Despacho 1…6 · 12 m² c/uzone
🏠Kitchen / Descanso · 20 m²zone
Sistema de Validacion (registerSystem)
✅
wall-validator
Muros exteriores: espesor 0.20m ≥ 0.14m mín.
Todos los 8 muros ext. pasan · P0 + P1
Muros exteriores: espesor 0.20m ≥ 0.14m mín.
Todos los 8 muros ext. pasan · P0 + P1
✅
height-check
Alturas: P0=3.2m, P1=2.9m ≥ 2.1m mín.
Cumple CTE DB SUA art. 3.1
Alturas: P0=3.2m, P1=2.9m ≥ 2.1m mín.
Cumple CTE DB SUA art. 3.1
✅
grid-snap
Todos los nodos alineados a grid 100mm
47/47 nodos · sin geometría sucia
Todos los nodos alineados a grid 100mm
47/47 nodos · sin geometría sucia
⚠️
area-ratio
Ratio circulación/útil P1: 18% (rec. ≤15%)
Revisar pasillo despachos (zona 5m)
Ratio circulación/útil P1: 18% (rec. ≤15%)
Revisar pasillo despachos (zona 5m)
Export JSON (BuildingExport)
{
"units": "meters",
"site": {
"id": "site-a1b2c3",
"width": 14.0,
"depth": 10.0
},
"building": {
"id": "bld-cc2025",
"name": "Cultiva Coworking",
"levels": [
{
"name": "Planta Baja",
"elevation": 0,
"height": 3.2,
"totalArea": 140,
"walls": [
{"id":"w-n0","start":{"x":0,"y":0},"end":{"x":14,"y":0},
"thickness":0.20,"isExterior":true,"material":"masonry"},
{"id":"w-e0","start":{"x":14,"y":0},"end":{"x":14,"y":10},
"thickness":0.20,"isExterior":true,"material":"masonry"}
],
"rooms": [
{"name":"Recepción/Café","type":"reception","area":40},
{"name":"Coworking Abierto","type":"openOffice","area":100},
{"name":"Sala Reuniones 1","type":"meeting","area":16}
]
},
{
"name": "Planta 1",
"elevation": 3.2,
"height": 2.9,
"totalArea": 140,
"rooms": [
{"name":"Despacho 1","type":"privateOffice","area":12},
{"name":"Kitchen","type":"breakRoom","area":20}
]
}
]
}
}
Codigo — Sistema de Validacion
import { registerSystem } from '@pascal-app/core'
registerSystem({
name: 'cultiva-wall-validator',
nodeTypes: ['wall'],
priority: 100,
process(dirtyNodes) {
for (const node of dirtyNodes) {
const { thickness, isExterior,
height } = node.props
// CTE: exterior ≥ 0.14m, min height 2.1m
if (isExterior && thickness < 0.14)
console.warn(`Wall ${node.id}: ` +
`${thickness}m < 0.14m mín`)
if (height < 2.1)
console.warn(`Wall ${node.id}: ` +
`height ${height}m < 2.1m`)
}
}
})