{
 "schema": "sunset-serra/model-manifest",
 "version": "2.0",
 "generated": "2026-08-22",
 "units": "meters",
 "scale": [
  1,
  1,
  1
 ],
 "up_axis": "Z",
 "crs": "SIRGAS 2000 / UTM 22S (EPSG:31982)",
 "origin": {
  "E": 625177.937,
  "N": 6930104.86,
  "lat": -27.7476529,
  "lon": -49.7298701
 },
 "models": [
  {
   "model_id": "l35q",
   "product_name": "Módulo 35 · 1 Quarto",
   "typology": "CHALE",
   "source_plan": "/root/ss/v3/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/l35q_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 8.3,
   "length_m": 6.0,
   "built_area_m2": 34.95,
   "footprint_area_m2": 84.0,
   "deck_area_m2": 12.45,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 49.8,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     11.2,
     6.0,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:192af73c000eaaa1",
    "model_3d": "sha256:f093d5097f5c51a8"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/l35q_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/l35q_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/l35q_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/l35q_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:253bd9a8cbaaf524",
    "lod200": "sha256:7e751416cfab77fb",
    "lod300": "sha256:88f68110fc375572"
   },
   "file_sha256": {
    "lod100": "sha256:cf6cb995d2f52078",
    "lod200": "sha256:5147dc61cc3c4de0",
    "lod300": "sha256:a0c13d2c39bd7611"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 696,
    "lod300": 1492
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1392,
    "lod300": 2642
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0509,
    "lod300": 0.0976
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 12,
    "materializadas_no_3d": 12,
    "furos": 10,
    "folhas_sobre_pano": 2
   },
   "footprint_hash": "sha256:8dc8b9f3f726ab9b",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.5
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     11.2,
     6.0,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     8.3,
     4.8
    ],
    "cobertura": [
     8.3,
     6.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "l35q",
    "area_interna_util_m2": 34.95,
    "area_caixa_m2": 39.84,
    "area_construida_m2": 39.84,
    "area_cobertura_m2": 49.8,
    "area_deck_m2": 12.45,
    "footprint_m2": 84.0,
    "bounding_box": {
     "min": [
      0.0,
      -1.5,
      -0.15
     ],
     "max": [
      11.2,
      6.0,
      2.85
     ]
    },
    "volume_solido_m3": 23.823,
    "volume_envelope_m3": 113.544,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     8.3,
     6.0,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     8.3,
     6.0,
     2.85
    ]
   }
  },
  {
   "model_id": "l35h",
   "product_name": "Módulo 35 · Studio Hidro",
   "typology": "CHALE",
   "source_plan": "/root/ss/v3/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/l35h_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 8.3,
   "length_m": 6.0,
   "built_area_m2": 34.93,
   "footprint_area_m2": 84.0,
   "deck_area_m2": 12.45,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 49.8,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     11.2,
     6.0,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:c3247619f83369a3",
    "model_3d": "sha256:3b3f0d5a763d4bab"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/l35h_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/l35h_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/l35h_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/l35h_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:253bd9a8cbaaf524",
    "lod200": "sha256:a1d4c1378e92f0c2",
    "lod300": "sha256:79a058c0cb48e354"
   },
   "file_sha256": {
    "lod100": "sha256:a51cf4a1c5db4317",
    "lod200": "sha256:4d1e8b9f0bb142df",
    "lod300": "sha256:3a45021e37147519"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 624,
    "lod300": 1256
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1248,
    "lod300": 2430
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0466,
    "lod300": 0.0897
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 11,
    "materializadas_no_3d": 11,
    "furos": 9,
    "folhas_sobre_pano": 2
   },
   "footprint_hash": "sha256:59dec36992bf35ae",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.5
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     11.2,
     6.0,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     8.3,
     4.8
    ],
    "cobertura": [
     8.3,
     6.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "l35h",
    "area_interna_util_m2": 34.93,
    "area_caixa_m2": 39.84,
    "area_construida_m2": 39.84,
    "area_cobertura_m2": 49.8,
    "area_deck_m2": 12.45,
    "footprint_m2": 84.0,
    "bounding_box": {
     "min": [
      0.0,
      -1.5,
      -0.15
     ],
     "max": [
      11.2,
      6.0,
      2.85
     ]
    },
    "volume_solido_m3": 24.0495,
    "volume_envelope_m3": 113.544,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     8.3,
     6.0,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     8.3,
     6.0,
     2.85
    ]
   }
  },
  {
   "model_id": "l45q",
   "product_name": "Módulo 45 · 2 Quartos",
   "typology": "CHALE",
   "source_plan": "/root/ss/v3/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/l45q_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 10.7,
   "length_m": 6.0,
   "built_area_m2": 44.8,
   "footprint_area_m2": 102.0,
   "deck_area_m2": 16.05,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 64.2,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:89e44f191f9603c8",
    "model_3d": "sha256:effd603702448e06"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/l45q_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/l45q_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/l45q_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/l45q_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:f14d4e375562873a",
    "lod200": "sha256:6ac0237a8e29c6c8",
    "lod300": "sha256:8f67dde8587af990"
   },
   "file_sha256": {
    "lod100": "sha256:368336a83d3adde0",
    "lod200": "sha256:886365fc96bebd6d",
    "lod300": "sha256:540ac4e7f6a0b0a6"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 672,
    "lod300": 1540
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1344,
    "lod300": 2738
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0494,
    "lod300": 0.1005
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 13,
    "materializadas_no_3d": 13,
    "furos": 10,
    "folhas_sobre_pano": 3
   },
   "footprint_hash": "sha256:0204d0b8f985a632",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.5
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     10.7,
     4.8
    ],
    "cobertura": [
     10.7,
     6.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "l45q",
    "area_interna_util_m2": 44.795,
    "area_caixa_m2": 51.36,
    "area_construida_m2": 51.36,
    "area_cobertura_m2": 64.2,
    "area_deck_m2": 16.05,
    "footprint_m2": 102.0,
    "bounding_box": {
     "min": [
      0.0,
      -1.5,
      -0.15
     ],
     "max": [
      13.6,
      6.0,
      2.85
     ]
    },
    "volume_solido_m3": 31.5382,
    "volume_envelope_m3": 146.376,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   }
  },
  {
   "model_id": "l45s",
   "product_name": "Módulo 45 · Duas Suítes",
   "typology": "CHALE",
   "source_plan": "/root/ss/v3/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/l45s_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 10.7,
   "length_m": 6.0,
   "built_area_m2": 44.46,
   "footprint_area_m2": 102.0,
   "deck_area_m2": 16.05,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 64.2,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:4926f92cabfcccd8",
    "model_3d": "sha256:386084badd5c9382"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/l45s_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/l45s_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/l45s_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/l45s_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:f14d4e375562873a",
    "lod200": "sha256:9e1895b9bdaf3c8b",
    "lod300": "sha256:1a1d9c840c6213da"
   },
   "file_sha256": {
    "lod100": "sha256:28e1c7ea08120454",
    "lod200": "sha256:2152269f6b1e440f",
    "lod300": "sha256:76e5e30429b70eee"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 756,
    "lod300": 1800
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1512,
    "lod300": 3176
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0545,
    "lod300": 0.1142
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 14,
    "materializadas_no_3d": 14,
    "furos": 11,
    "folhas_sobre_pano": 3
   },
   "footprint_hash": "sha256:fd2f149ffa6260a5",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.5
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     10.7,
     4.8
    ],
    "cobertura": [
     10.7,
     6.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "l45s",
    "area_interna_util_m2": 44.46,
    "area_caixa_m2": 51.36,
    "area_construida_m2": 51.36,
    "area_cobertura_m2": 64.2,
    "area_deck_m2": 16.05,
    "footprint_m2": 102.0,
    "bounding_box": {
     "min": [
      0.0,
      -1.5,
      -0.15
     ],
     "max": [
      13.6,
      6.0,
      2.85
     ]
    },
    "volume_solido_m3": 32.1375,
    "volume_envelope_m3": 146.376,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   }
  },
  {
   "model_id": "l45h",
   "product_name": "Módulo 45 · Master Spa",
   "typology": "CHALE",
   "source_plan": "/root/ss/v3/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/l45h_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 10.7,
   "length_m": 6.0,
   "built_area_m2": 44.89,
   "footprint_area_m2": 102.0,
   "deck_area_m2": 16.05,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 64.2,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:ca2e65ef29f1c35f",
    "model_3d": "sha256:f64ff9b089889a83"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/l45h_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/l45h_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/l45h_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/l45h_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:f14d4e375562873a",
    "lod200": "sha256:97e58d959f8b686a",
    "lod300": "sha256:5e441a365a45d16a"
   },
   "file_sha256": {
    "lod100": "sha256:ebc49eba01913090",
    "lod200": "sha256:84791a78d6b63844",
    "lod300": "sha256:85b837e9994f7b9f"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 540,
    "lod300": 1196
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1080,
    "lod300": 2310
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0415,
    "lod300": 0.086
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 11,
    "materializadas_no_3d": 11,
    "furos": 8,
    "folhas_sobre_pano": 3
   },
   "footprint_hash": "sha256:3394038ec74ea53b",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.5
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.5,
     -0.15
    ],
    "max": [
     13.6,
     6.0,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     10.7,
     4.8
    ],
    "cobertura": [
     10.7,
     6.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "l45h",
    "area_interna_util_m2": 44.895,
    "area_caixa_m2": 51.36,
    "area_construida_m2": 51.36,
    "area_cobertura_m2": 64.2,
    "area_deck_m2": 16.05,
    "footprint_m2": 102.0,
    "bounding_box": {
     "min": [
      0.0,
      -1.5,
      -0.15
     ],
     "max": [
      13.6,
      6.0,
      2.85
     ]
    },
    "volume_solido_m3": 31.3785,
    "volume_envelope_m3": 146.376,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     10.7,
     6.0,
     2.85
    ]
   }
  },
  {
   "model_id": "f35q",
   "product_name": "Módulo 35 · 1 Quarto",
   "typology": "CHALE",
   "source_plan": "/root/ss/v2/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/f35q_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 4.0,
   "length_m": 11.3,
   "built_area_m2": 34.95,
   "footprint_area_m2": 89.01,
   "deck_area_m2": 6.4,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 45.2,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     6.9,
     11.3,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:75b22b906ebcbf31",
    "model_3d": "sha256:d1b05130ca949411"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/f35q_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/f35q_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/f35q_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/f35q_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:4e49d76444969beb",
    "lod200": "sha256:0f9c2e5417f14c23",
    "lod300": "sha256:68857a1404940cf1"
   },
   "file_sha256": {
    "lod100": "sha256:f0abbd15daf7351d",
    "lod200": "sha256:fd2065142950f538",
    "lod300": "sha256:00f4c78081ab2f25"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 720,
    "lod300": 1468
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1440,
    "lod300": 2594
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0523,
    "lod300": 0.0962
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 11,
    "materializadas_no_3d": 11,
    "furos": 10,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": "sha256:8b0ef474a5503e85",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.6
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     6.9,
     11.3,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     4.0,
     10.0
    ],
    "cobertura": [
     4.0,
     11.3
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "f35q",
    "area_interna_util_m2": 34.95,
    "area_caixa_m2": 40.0,
    "area_construida_m2": 40.0,
    "area_cobertura_m2": 45.2,
    "area_deck_m2": 6.4,
    "footprint_m2": 89.01,
    "bounding_box": {
     "min": [
      0.0,
      -1.6,
      -0.15
     ],
     "max": [
      6.9,
      11.3,
      2.85
     ]
    },
    "volume_solido_m3": 24.1875,
    "volume_envelope_m3": 114.0,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     4.0,
     11.3,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     4.0,
     11.3,
     2.85
    ]
   }
  },
  {
   "model_id": "f35h",
   "product_name": "Módulo 35 · Studio Hidro",
   "typology": "CHALE",
   "source_plan": "/root/ss/v2/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/f35h_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 4.0,
   "length_m": 11.3,
   "built_area_m2": 34.97,
   "footprint_area_m2": 89.01,
   "deck_area_m2": 6.4,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 45.2,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     6.9,
     11.3,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:3b2d231f61ef8668",
    "model_3d": "sha256:cbfe1d9ab1e95024"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/f35h_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/f35h_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/f35h_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/f35h_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:4e49d76444969beb",
    "lod200": "sha256:fb80f3249409e6b4",
    "lod300": "sha256:8cab7ed3f0377685"
   },
   "file_sha256": {
    "lod100": "sha256:03e6cf119a1cc6f6",
    "lod200": "sha256:f16053a9198b2e3d",
    "lod300": "sha256:c12492b9eeda78bd"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 720,
    "lod300": 1328
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1440,
    "lod300": 2574
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0523,
    "lod300": 0.0941
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 11,
    "materializadas_no_3d": 11,
    "furos": 10,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": "sha256:bdba4d904c214083",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.6
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     6.9,
     11.3,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     4.0,
     10.0
    ],
    "cobertura": [
     4.0,
     11.3
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "f35h",
    "area_interna_util_m2": 34.97,
    "area_caixa_m2": 40.0,
    "area_construida_m2": 40.0,
    "area_cobertura_m2": 45.2,
    "area_deck_m2": 6.4,
    "footprint_m2": 89.01,
    "bounding_box": {
     "min": [
      0.0,
      -1.6,
      -0.15
     ],
     "max": [
      6.9,
      11.3,
      2.85
     ]
    },
    "volume_solido_m3": 24.201,
    "volume_envelope_m3": 114.0,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     4.0,
     11.3,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     4.0,
     11.3,
     2.85
    ]
   }
  },
  {
   "model_id": "f45q",
   "product_name": "Módulo 45 · 2 Quartos",
   "typology": "CHALE",
   "source_plan": "/root/ss/v2/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/f45q_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 5.0,
   "length_m": 11.3,
   "built_area_m2": 44.1,
   "footprint_area_m2": 101.91,
   "deck_area_m2": 8.0,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 56.5,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:a8e2ceb230e7c568",
    "model_3d": "sha256:86782e28a11a619e"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/f45q_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/f45q_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/f45q_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/f45q_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:757af7850df57c1a",
    "lod200": "sha256:f1cd166f5bffce8a",
    "lod300": "sha256:2b2039e8772b4377"
   },
   "file_sha256": {
    "lod100": "sha256:ee11c9764150dafa",
    "lod200": "sha256:2bd5d7ed3ab8ab5c",
    "lod300": "sha256:2668718f92e77532"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 948,
    "lod300": 1804
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1896,
    "lod300": 3266
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.066,
    "lod300": 0.1164
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 15,
    "materializadas_no_3d": 15,
    "furos": 14,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": "sha256:074a2c56b82df4fa",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.6
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     5.0,
     10.0
    ],
    "cobertura": [
     5.0,
     11.3
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "f45q",
    "area_interna_util_m2": 44.1,
    "area_caixa_m2": 50.0,
    "area_construida_m2": 50.0,
    "area_cobertura_m2": 56.5,
    "area_deck_m2": 8.0,
    "footprint_m2": 101.91,
    "bounding_box": {
     "min": [
      0.0,
      -1.6,
      -0.15
     ],
     "max": [
      7.9,
      11.3,
      2.85
     ]
    },
    "volume_solido_m3": 28.8735,
    "volume_envelope_m3": 142.5,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   }
  },
  {
   "model_id": "f45s",
   "product_name": "Módulo 45 · Duas Suítes",
   "typology": "CHALE",
   "source_plan": "/root/ss/v2/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/f45s_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 5.0,
   "length_m": 11.3,
   "built_area_m2": 44.16,
   "footprint_area_m2": 101.91,
   "deck_area_m2": 8.0,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 56.5,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:911227ff8a04ae8d",
    "model_3d": "sha256:598ff64d90444f11"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/f45s_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/f45s_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/f45s_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/f45s_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:757af7850df57c1a",
    "lod200": "sha256:453e8d82245e21af",
    "lod300": "sha256:e83ce6e386452aed"
   },
   "file_sha256": {
    "lod100": "sha256:cf5309469753b12c",
    "lod200": "sha256:81336675bc3e748d",
    "lod300": "sha256:f0767d50123ee4da"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 924,
    "lod300": 1920
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1848,
    "lod300": 3416
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0646,
    "lod300": 0.1213
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 14,
    "materializadas_no_3d": 14,
    "furos": 13,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": "sha256:eb71bd42d75d8558",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.6
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     5.0,
     10.0
    ],
    "cobertura": [
     5.0,
     11.3
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "f45s",
    "area_interna_util_m2": 44.16,
    "area_caixa_m2": 50.0,
    "area_construida_m2": 50.0,
    "area_cobertura_m2": 56.5,
    "area_deck_m2": 8.0,
    "footprint_m2": 101.91,
    "bounding_box": {
     "min": [
      0.0,
      -1.6,
      -0.15
     ],
     "max": [
      7.9,
      11.3,
      2.85
     ]
    },
    "volume_solido_m3": 29.0115,
    "volume_envelope_m3": 142.5,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   }
  },
  {
   "model_id": "f45h",
   "product_name": "Módulo 45 · Master Hidro",
   "typology": "CHALE",
   "source_plan": "/root/ss/v2/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/f45h_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 5.0,
   "length_m": 11.3,
   "built_area_m2": 44.65,
   "footprint_area_m2": 101.91,
   "deck_area_m2": 8.0,
   "parking_area_m2": 13.0,
   "total_envelope_area_m2": 56.5,
   "total_height_m": 3.0,
   "roof_top_m": 2.85,
   "roof_base_m": 2.7,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:b5dc8bb481b5694e",
    "model_3d": "sha256:7dcbef3ce0377636"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/f45h_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/f45h_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/f45h_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/f45h_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:757af7850df57c1a",
    "lod200": "sha256:a5b59c333f0cb3f2",
    "lod300": "sha256:bf09e884a9cb6d67"
   },
   "file_sha256": {
    "lod100": "sha256:1a4b4453b6acd3a1",
    "lod200": "sha256:cb058e3e7e22b0b9",
    "lod300": "sha256:293a367d9e3d5b18"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 756,
    "lod300": 1376
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 1512,
    "lod300": 2670
   },
   "file_size_mb": {
    "lod100": 0.0101,
    "lod200": 0.0545,
    "lod300": 0.0969
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_EXTERNO_DRENANTE",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 11,
    "materializadas_no_3d": 11,
    "furos": 10,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": "sha256:7f0ca52974f6d6ad",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": -1.6
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     -1.6,
     -0.15
    ],
    "max": [
     7.9,
     11.3,
     2.85
    ]
   },
   "dimensions": {
    "caixa": [
     5.0,
     10.0
    ],
    "cobertura": [
     5.0,
     11.3
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.7
    ],
    "topo_laje_m": 2.85,
    "altura_total_m": 3.0
   },
   "areas": {
    "model_id": "f45h",
    "area_interna_util_m2": 44.65,
    "area_caixa_m2": 50.0,
    "area_construida_m2": 50.0,
    "area_cobertura_m2": 56.5,
    "area_deck_m2": 8.0,
    "footprint_m2": 101.91,
    "bounding_box": {
     "min": [
      0.0,
      -1.6,
      -0.15
     ],
     "max": [
      7.9,
      11.3,
      2.85
     ]
    },
    "volume_solido_m3": 28.134,
    "volume_envelope_m3": 142.5,
    "altura_total_m": 3.0,
    "topo_laje_m": 2.85
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.15
    ],
    "max": [
     5.0,
     11.3,
     2.85
    ]
   }
  },
  {
   "model_id": "hstd",
   "product_name": "Suíte Standard",
   "typology": "HOTEL-A-UNIDADE",
   "source_plan": "/root/ss/hotel/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/hstd_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 3.6,
   "length_m": 11.65,
   "built_area_m2": 20.86,
   "footprint_area_m2": 41.94,
   "deck_area_m2": 7.2,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 41.94,
   "total_height_m": 3.35,
   "roof_top_m": 3.1,
   "roof_base_m": 2.85,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     3.6,
     11.65,
     3.1
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:5d17fdb872d8c6cc",
    "model_3d": "sha256:df4c35de656fbbd5"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/hstd_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/hstd_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/hstd_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/hstd_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:1659d30f8254492c",
    "lod200": "sha256:7144d35ce19e1194",
    "lod300": "sha256:7ed7c05bb1b41691"
   },
   "file_sha256": {
    "lod100": "sha256:674324ab74e82fde",
    "lod200": "sha256:4851bb3acceffef7",
    "lod300": "sha256:119ecbde94350afe"
   },
   "triangle_count": {
    "lod100": 72,
    "lod200": 276,
    "lod300": 868
   },
   "vertex_count": {
    "lod100": 144,
    "lod200": 552,
    "lod300": 1394
   },
   "file_size_mb": {
    "lod100": 0.0086,
    "lod200": 0.0241,
    "lod300": 0.0586
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 4,
    "materializadas_no_3d": 4,
    "furos": 3,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": null,
   "footprint_in_masterplan": false,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     3.6,
     11.65,
     3.1
    ]
   },
   "dimensions": {
    "caixa": [
     3.6,
     8.45
    ],
    "cobertura": [
     3.6,
     9.65
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.85
    ],
    "topo_laje_m": 3.1,
    "altura_total_m": 3.35
   },
   "areas": {
    "model_id": "hstd",
    "area_interna_util_m2": 20.86,
    "area_caixa_m2": 30.42,
    "area_construida_m2": 30.42,
    "area_cobertura_m2": 34.74,
    "area_deck_m2": 7.2,
    "footprint_m2": null,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.25
     ],
     "max": [
      3.6,
      11.65,
      3.1
     ]
    },
    "volume_solido_m3": 29.8655,
    "volume_envelope_m3": 94.302,
    "altura_total_m": 3.35,
    "topo_laje_m": 3.1
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     2.0,
     -0.25
    ],
    "max": [
     3.6,
     11.65,
     3.1
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     3.6,
     11.65,
     3.1
    ]
   }
  },
  {
   "model_id": "hmst",
   "product_name": "Suíte Master",
   "typology": "HOTEL-A-UNIDADE",
   "source_plan": "/root/ss/hotel/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/hmst_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 5.4,
   "length_m": 11.65,
   "built_area_m2": 27.86,
   "footprint_area_m2": 62.91,
   "deck_area_m2": 15.12,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 62.91,
   "total_height_m": 3.35,
   "roof_top_m": 3.1,
   "roof_base_m": 2.85,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     5.4,
     11.65,
     3.1
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:e25bab3e7c12e4f6",
    "model_3d": "sha256:b9c9ec068e7a09c3"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/hmst_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/hmst_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/hmst_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/hmst_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:f8634be62a074065",
    "lod200": "sha256:5ca11697c4b553e2",
    "lod300": "sha256:52f891e1716604d2"
   },
   "file_sha256": {
    "lod100": "sha256:6a24c5edcbfcb3bc",
    "lod200": "sha256:40bb2a23b668ce7a",
    "lod300": "sha256:a17bd36664f2c694"
   },
   "triangle_count": {
    "lod100": 72,
    "lod200": 276,
    "lod300": 880
   },
   "vertex_count": {
    "lod100": 144,
    "lod200": 552,
    "lod300": 1418
   },
   "file_size_mb": {
    "lod100": 0.0086,
    "lod200": 0.0241,
    "lod300": 0.0594
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 4,
    "materializadas_no_3d": 4,
    "furos": 3,
    "folhas_sobre_pano": 1
   },
   "footprint_hash": null,
   "footprint_in_masterplan": false,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     5.4,
     11.65,
     3.1
    ]
   },
   "dimensions": {
    "caixa": [
     5.4,
     7.65
    ],
    "cobertura": [
     5.4,
     8.85
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.85
    ],
    "topo_laje_m": 3.1,
    "altura_total_m": 3.35
   },
   "areas": {
    "model_id": "hmst",
    "area_interna_util_m2": 27.86,
    "area_caixa_m2": 41.31,
    "area_construida_m2": 41.31,
    "area_cobertura_m2": 47.79,
    "area_deck_m2": 15.12,
    "footprint_m2": null,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.25
     ],
     "max": [
      5.4,
      11.65,
      3.1
     ]
    },
    "volume_solido_m3": 37.118,
    "volume_envelope_m3": 128.061,
    "altura_total_m": 3.35,
    "topo_laje_m": 3.1
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     2.8,
     -0.25
    ],
    "max": [
     5.4,
     11.65,
     3.1
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     5.4,
     11.65,
     3.1
    ]
   }
  },
  {
   "model_id": "loft30",
   "product_name": "Loft 30 · unidade do hotel",
   "typology": "HOTEL-BC-UNIDADE",
   "source_plan": "/root/ss/hotelfinal/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/loft30_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 6.3,
   "length_m": 10.8,
   "built_area_m2": 30.0,
   "footprint_area_m2": 68.04,
   "deck_area_m2": 15.12,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 68.04,
   "total_height_m": 3.44,
   "roof_top_m": 3.2,
   "roof_base_m": 2.96,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     6.3,
     10.8,
     3.2
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:a407dd67f2ddcff8",
    "model_3d": "sha256:a2bd2286d74e06e6"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/loft30_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/loft30_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/loft30_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/loft30_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:91198e4bdc30f907",
    "lod200": "sha256:3871473253923d57",
    "lod300": "sha256:da0b39bbe9466ac1"
   },
   "file_sha256": {
    "lod100": "sha256:f4d1fd3051f01ec8",
    "lod200": "sha256:754dc2627148a20f",
    "lod300": "sha256:48509648e90394f3"
   },
   "triangle_count": {
    "lod100": 72,
    "lod200": 312,
    "lod300": 1036
   },
   "vertex_count": {
    "lod100": 144,
    "lod200": 624,
    "lod300": 1730
   },
   "file_size_mb": {
    "lod100": 0.0087,
    "lod200": 0.0263,
    "lod300": 0.0688
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_DECK_MADEIRA",
     "MAT_DIVISORIA_DRYWALL",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_LUMINARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_MOBILIARIO_BASE",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PISO_MOLHADO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_MADEIRA",
     "MAT_TECIDO_ESTOFADO",
     "MAT_VIDRO_INTERNO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 6,
    "materializadas_no_3d": 6,
    "furos": 4,
    "folhas_sobre_pano": 2
   },
   "footprint_hash": null,
   "footprint_in_masterplan": false,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     6.3,
     10.8,
     3.2
    ]
   },
   "dimensions": {
    "caixa": [
     6.3,
     7.2
    ],
    "cobertura": [
     6.3,
     8.4
    ],
    "pavimentos": 1,
    "pe_direito": [
     2.96
    ],
    "topo_laje_m": 3.2,
    "altura_total_m": 3.44
   },
   "areas": {
    "model_id": "loft30",
    "area_interna_util_m2": 30.0,
    "area_caixa_m2": 45.36,
    "area_construida_m2": 45.36,
    "area_cobertura_m2": 52.92,
    "area_deck_m2": 15.12,
    "footprint_m2": null,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.24
     ],
     "max": [
      6.3,
      10.8,
      3.2
     ]
    },
    "volume_solido_m3": 39.1464,
    "volume_envelope_m3": 145.152,
    "altura_total_m": 3.44,
    "topo_laje_m": 3.2
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     2.4,
     -0.24
    ],
    "max": [
     6.3,
     10.8,
     3.2
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     6.3,
     10.8,
     3.2
    ]
   }
  },
  {
   "model_id": "pav_A",
   "product_name": "Pavilhão · 20 suítes",
   "typology": "HOTEL-A-EDIFICIO",
   "source_plan": "/root/ss/hotel/pav.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/pav_A_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 52.4,
   "length_m": 11.65,
   "built_area_m2": 473.2,
   "footprint_area_m2": 1123.46,
   "deck_area_m2": 0.0,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 610.46,
   "total_height_m": 6.45,
   "roof_top_m": 6.2,
   "roof_base_m": 5.95,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     52.4,
     11.65,
     6.2
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:ca80d7d7a9b55055",
    "model_3d": "sha256:e435572a3a765eef"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/pav_A_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/pav_A_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/pav_A_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/pav_A_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:e9a998f6c9f45d08",
    "lod200": "sha256:45e7309b135be2f3",
    "lod300": "sha256:cb60c632ce33b132"
   },
   "file_sha256": {
    "lod100": "sha256:d69ba187e599b6e4",
    "lod200": "sha256:a4d3bd7d9ffbe94c",
    "lod300": "sha256:588404ebbf037f84"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 7116,
    "lod300": 9036
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 14232,
    "lod300": 18072
   },
   "file_size_mb": {
    "lod100": 0.0086,
    "lod200": 0.4347,
    "lod300": 0.5507
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 84,
    "materializadas_no_3d": 84,
    "furos": 84,
    "folhas_sobre_pano": 0
   },
   "footprint_hash": "sha256:7f7bceeed2d70661",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     52.4,
     11.65,
     6.2
    ]
   },
   "dimensions": {
    "caixa": [
     52.4,
     11.65
    ],
    "cobertura": [
     52.4,
     11.65
    ],
    "pavimentos": 2,
    "pe_direito": [
     2.85,
     2.85
    ],
    "topo_laje_m": 6.2,
    "altura_total_m": 6.45
   },
   "areas": {
    "model_id": "pav_A",
    "area_interna_util_m2": 0,
    "area_caixa_m2": 610.46,
    "area_construida_m2": 1220.92,
    "area_cobertura_m2": 610.46,
    "area_deck_m2": 0,
    "footprint_m2": 1123.46,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.25
     ],
     "max": [
      52.4,
      11.65,
      6.2
     ]
    },
    "volume_solido_m3": 757.7916,
    "volume_envelope_m3": 3784.852,
    "altura_total_m": 6.45,
    "topo_laje_m": 6.2
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     52.4,
     11.65,
     6.2
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     52.4,
     11.65,
     6.2
    ]
   }
  },
  {
   "model_id": "bloco_B",
   "product_name": "Bloco · térreo + 4 pavimentos",
   "typology": "HOTEL-B-EDIFICIO",
   "source_plan": "/root/ss/hotelfinal/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/bloco_B_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 79.4,
   "length_m": 14.4,
   "built_area_m2": 1200.0,
   "footprint_area_m2": 1143.36,
   "deck_area_m2": 0.0,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 1143.36,
   "total_height_m": 17.24,
   "roof_top_m": 17.0,
   "roof_base_m": 16.76,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     79.4,
     14.4,
     17.0
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:49785be8d1b64919",
    "model_3d": "sha256:3d55ea041ac0a1f9"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/bloco_B_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/bloco_B_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/bloco_B_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/bloco_B_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:f4030c7dbd43e70c",
    "lod200": "sha256:a62959b913bf5f66",
    "lod300": "sha256:5eab02af50dc2cc9"
   },
   "file_sha256": {
    "lod100": "sha256:29e5f8aa58a9c679",
    "lod200": "sha256:539ab6ee69f39d56",
    "lod300": "sha256:74db5cefbd890c10"
   },
   "triangle_count": {
    "lod100": 192,
    "lod200": 18480,
    "lod300": 23760
   },
   "vertex_count": {
    "lod100": 384,
    "lod200": 36960,
    "lod300": 47520
   },
   "file_size_mb": {
    "lod100": 0.0151,
    "lod200": 1.1166,
    "lod300": 1.4342
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 233,
    "materializadas_no_3d": 233,
    "furos": 233,
    "folhas_sobre_pano": 0
   },
   "footprint_hash": "sha256:87c62e2a03b4ac15",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     79.4,
     14.4,
     17.0
    ]
   },
   "dimensions": {
    "caixa": [
     72.2,
     10.8
    ],
    "cobertura": [
     79.4,
     14.4
    ],
    "pavimentos": 5,
    "pe_direito": [
     3.96,
     2.96,
     2.96,
     2.96,
     2.96
    ],
    "topo_laje_m": 17.0,
    "altura_total_m": 17.24
   },
   "areas": {
    "model_id": "bloco_B",
    "area_interna_util_m2": 0,
    "area_caixa_m2": 779.76,
    "area_construida_m2": 3898.8,
    "area_cobertura_m2": 1143.36,
    "area_deck_m2": 0,
    "footprint_m2": 1143.36,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.24
     ],
     "max": [
      79.4,
      14.4,
      17.0
     ]
    },
    "volume_solido_m3": 2121.8504,
    "volume_envelope_m3": 13255.92,
    "altura_total_m": 17.24,
    "topo_laje_m": 17.0
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     79.4,
     14.4,
     17.0
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     79.4,
     14.4,
     17.0
    ]
   }
  },
  {
   "model_id": "ala_C",
   "product_name": "Ala · 2 pavimentos",
   "typology": "HOTEL-C-EDIFICIO",
   "source_plan": "/root/ss/hotel2p/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/ala_C_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 70.0,
   "length_m": 10.8,
   "built_area_m2": 600.0,
   "footprint_area_m2": 1428.8,
   "deck_area_m2": 0.0,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 756.0,
   "total_height_m": 6.64,
   "roof_top_m": 6.4,
   "roof_base_m": 6.16,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     70.0,
     10.8,
     6.4
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:41c8f6f090c897ac",
    "model_3d": "sha256:de1b1ae1666b2f06"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/ala_C_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/ala_C_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/ala_C_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/ala_C_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:e6edc3f96e476ac5",
    "lod200": "sha256:fc283951608ca870",
    "lod300": "sha256:3118998f6ee97933"
   },
   "file_sha256": {
    "lod100": "sha256:64c0738d36019bd2",
    "lod200": "sha256:1af4b012d356ca0d",
    "lod300": "sha256:ef097dd64669a6b4"
   },
   "triangle_count": {
    "lod100": 84,
    "lod200": 7500,
    "lod300": 9660
   },
   "vertex_count": {
    "lod100": 168,
    "lod200": 15000,
    "lod300": 19320
   },
   "file_size_mb": {
    "lod100": 0.0086,
    "lod200": 0.4577,
    "lod300": 0.5881
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PORTA_ALUMINIO_VIDRO",
     "MAT_PORTA_CORTA_FOGO",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_GUARDA_CORPO",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 92,
    "materializadas_no_3d": 92,
    "furos": 92,
    "folhas_sobre_pano": 0
   },
   "footprint_hash": "sha256:640040f22c7d081f",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     70.0,
     10.8,
     6.4
    ]
   },
   "dimensions": {
    "caixa": [
     70.0,
     10.8
    ],
    "cobertura": [
     70.0,
     10.8
    ],
    "pavimentos": 2,
    "pe_direito": [
     2.96,
     2.96
    ],
    "topo_laje_m": 6.4,
    "altura_total_m": 6.64
   },
   "areas": {
    "model_id": "ala_C",
    "area_interna_util_m2": 0,
    "area_caixa_m2": 756.0,
    "area_construida_m2": 1512.0,
    "area_cobertura_m2": 756.0,
    "area_deck_m2": 0,
    "footprint_m2": 1428.8,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.24
     ],
     "max": [
      70.0,
      10.8,
      6.4
     ]
    },
    "volume_solido_m3": 844.664,
    "volume_envelope_m3": 4838.4,
    "altura_total_m": 6.64,
    "topo_laje_m": 6.4
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     70.0,
     10.8,
     6.4
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.24
    ],
    "max": [
     70.0,
     10.8,
     6.4
    ]
   }
  },
  {
   "model_id": "pavilhao_C",
   "product_name": "Pavilhão de convívio",
   "typology": "HOTEL-C-CONVIVIO",
   "source_plan": "/root/ss/hotel2p/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/pavilhao_C_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 77.2,
   "length_m": 14.4,
   "built_area_m2": 725.55,
   "footprint_area_m2": 1111.68,
   "deck_area_m2": 0.0,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 1111.68,
   "total_height_m": 5.0,
   "roof_top_m": 4.75,
   "roof_base_m": 4.5,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     77.2,
     14.4,
     4.75
    ]
   },
   "status": "PENDENTE_3D",
   "version": "v01",
   "checksum": {
    "plan": "sha256:4c3fcb806f7d7754",
    "model_3d": ""
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/pavilhao_C_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/pavilhao_C_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/pavilhao_C_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/pavilhao_C_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:2194f584a3708b81",
    "lod200": "sha256:fa58f6095bdd48da",
    "lod300": "sha256:90977693e55fdd81"
   },
   "file_sha256": {
    "lod100": "sha256:d2ce7332f586be13",
    "lod200": "sha256:de9112447dfd51c1",
    "lod300": "sha256:6d43524d1efad271"
   },
   "triangle_count": {
    "lod100": 48,
    "lod200": 2292,
    "lod300": 3132
   },
   "vertex_count": {
    "lod100": 96,
    "lod200": 4584,
    "lod300": 6264
   },
   "file_size_mb": {
    "lod100": 0.0064,
    "lod200": 0.1436,
    "lod300": 0.1947
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PORTA_METALICA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PORTA_METALICA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 39,
    "materializadas_no_3d": 39,
    "furos": 39,
    "folhas_sobre_pano": 0
   },
   "footprint_hash": "sha256:4289a26c3eccc85e",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     77.2,
     14.4,
     4.75
    ]
   },
   "dimensions": {
    "caixa": [
     70.0,
     10.8
    ],
    "cobertura": [
     77.2,
     14.4
    ],
    "pavimentos": 1,
    "pe_direito": [
     4.5
    ],
    "topo_laje_m": 4.75,
    "altura_total_m": 5.0
   },
   "areas": {
    "model_id": "pavilhao_C",
    "area_interna_util_m2": 0,
    "area_caixa_m2": 756.0,
    "area_construida_m2": 756.0,
    "area_cobertura_m2": 1111.68,
    "area_deck_m2": 0,
    "footprint_m2": 1111.68,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.25
     ],
     "max": [
      77.2,
      14.4,
      4.75
     ]
    },
    "volume_solido_m3": 620.3088,
    "volume_envelope_m3": 3591.0,
    "altura_total_m": 5.0,
    "topo_laje_m": 4.75
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     77.2,
     14.4,
     4.75
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     77.2,
     14.4,
     4.75
    ]
   }
  },
  {
   "model_id": "rest",
   "product_name": "Restaurante Vento Alto",
   "typology": "RESTAURANTE",
   "source_plan": "/root/ss/rest/gen.py",
   "source_dxf": "/root/ss/pranchas_cad/DXF-PARA-CAD/",
   "source_3d": "09_MODELOS-3D/LOD200/rest_LOD200.obj",
   "footprint_file": "FOOTPRINTS/SS_FOOTPRINTS.json",
   "width_m": 37.0,
   "length_m": 27.0,
   "built_area_m2": 625.25,
   "footprint_area_m2": 999.0,
   "deck_area_m2": 0.0,
   "parking_area_m2": 0.0,
   "total_envelope_area_m2": 999.0,
   "total_height_m": 5.0,
   "roof_top_m": 4.75,
   "roof_base_m": 4.5,
   "origin_definition": "canto inferior esquerdo da projeção de cobertura, no nível do piso acabado (± 0,00)",
   "anchor_point": [
    0.0,
    0.0,
    0.0
   ],
   "front_axis": "-Y",
   "glass_facade_axis": "-Y",
   "up_axis": "Z",
   "units": "meters",
   "scale": [
    1,
    1,
    1
   ],
   "mirror_allowed": false,
   "rotation_allowed": true,
   "bounding_box": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     37.0,
     27.0,
     4.75
    ]
   },
   "status": "OK",
   "version": "v01",
   "checksum": {
    "plan": "sha256:63079adafecf76cd",
    "model_3d": "sha256:8633cd09e521e81c"
   },
   "model_version": "v02",
   "lod100_file": "09_MODELOS-3D/LOD100/rest_LOD100.glb",
   "lod200_file": "09_MODELOS-3D/LOD200/rest_LOD200.glb",
   "lod200_obj_file": "09_MODELOS-3D/LOD200/rest_LOD200.obj",
   "lod300_file": "09_MODELOS-3D/LOD300/rest_LOD300.glb",
   "mesh_hash": {
    "lod100": "sha256:6bb478f357ebe89f",
    "lod200": "sha256:41f2bb3a8f1a179b",
    "lod300": "sha256:149679ab145cbc2f"
   },
   "file_sha256": {
    "lod100": "sha256:bd7e3e95e8ce0e04",
    "lod200": "sha256:a661ebdb68e5457e",
    "lod300": "sha256:d7c960834f46324b"
   },
   "triangle_count": {
    "lod100": 48,
    "lod200": 2792,
    "lod300": 4292
   },
   "vertex_count": {
    "lod100": 96,
    "lod200": 3704,
    "lod300": 5966
   },
   "file_size_mb": {
    "lod100": 0.0063,
    "lod200": 0.1291,
    "lod300": 0.2046
   },
   "materials": {
    "lod100": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_LAJE_CONCRETO",
     "MAT_VIDRO_LOW_E"
    ],
    "lod200": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_PILAR_CONCRETO",
     "MAT_PORTA_METALICA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ],
    "lod300": [
     "MAT_COBERTURA_IMPERMEAB",
     "MAT_CONCRETO_APARENTE",
     "MAT_ESQUADRIA_ALUMINIO",
     "MAT_LAJE_CONCRETO",
     "MAT_LOUCA_SANITARIA",
     "MAT_MARCENARIA",
     "MAT_METAL_CROMADO",
     "MAT_PILAR_CONCRETO",
     "MAT_PINGADEIRA_ALUMINIO",
     "MAT_PORTA_METALICA",
     "MAT_VIDRO_BASCULANTE",
     "MAT_VIDRO_LOW_E"
    ]
   },
   "opening_count": {
    "quadro_04": 25,
    "materializadas_no_3d": 25,
    "furos": 25,
    "folhas_sobre_pano": 0
   },
   "footprint_hash": "sha256:f22577404e8912de",
   "footprint_in_masterplan": true,
   "footprint_offset": {
    "x": 0.0,
    "y": 0.0
   },
   "bounding_box_lod300": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     37.0,
     27.0,
     4.75
    ]
   },
   "dimensions": {
    "caixa": [
     31.0,
     21.0
    ],
    "cobertura": [
     37.0,
     27.0
    ],
    "pavimentos": 1,
    "pe_direito": [
     4.5
    ],
    "topo_laje_m": 4.75,
    "altura_total_m": 5.0
   },
   "areas": {
    "model_id": "rest",
    "area_interna_util_m2": 0,
    "area_caixa_m2": 651.0,
    "area_construida_m2": 651.0,
    "area_cobertura_m2": 999.0,
    "area_deck_m2": 0,
    "footprint_m2": 999.0,
    "bounding_box": {
     "min": [
      0.0,
      0.0,
      -0.25
     ],
     "max": [
      37.0,
      27.0,
      4.75
     ]
    },
    "volume_solido_m3": 549.8961,
    "volume_envelope_m3": 3092.25,
    "altura_total_m": 5.0,
    "topo_laje_m": 4.75
   },
   "qa_status": "PASS",
   "qa_detalhe": {
    "esquadrias_fail": 0,
    "footprint_fail": 0,
    "cortes_fail": 0,
    "niveis": "PASS"
   },
   "bounding_box_cobertura": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     37.0,
     27.0,
     4.75
    ]
   },
   "bounding_box_nota": "bounding_box é a caixa de TODO o modelo (inclui deck e vaga, que podem ficar fora da projeção de cobertura). bounding_box_cobertura é só a projeção da cobertura — é ela que corresponde a width_m × length_m.",
   "bounding_box_envelope": {
    "min": [
     0.0,
     0.0,
     -0.25
    ],
    "max": [
     37.0,
     27.0,
     4.75
    ]
   }
  }
 ],
 "lod_definicao": {
  "LOD100": "volume, cobertura, deck, vidro principal, materiais gerais — masterplan, centenas de instâncias",
  "LOD200": "paredes com vão real, lajes, esquadrias, cobertura, deck, guarda-corpo — pranchas e vistas próximas",
  "LOD300": "LOD200 + caixilho de perfil real, pingadeira, marcenaria fixa, louças, metais, luminárias e mobiliário base — visualização"
 },
 "regra_consumo": "Somente modelos com qa_status = PASS podem ser consumidos pelo masterplan.",
 "fonte_unica": "Os três LODs derivam da mesma definição paramétrica (m3d/produto.py sobre spec.py + 04_QUADRO-ESQUADRIAS.csv). Não existem três modelos editáveis independentes."
}