{
  "project": "pacote-galpao-jundiai",
  "caa": "II",
  "disclaimer": "AVISO IMPORTANTE: Verificação automática de referência conforme NBR 6118:2014. NÃO substitui a responsabilidade técnica do engenheiro calculista (CREA/ART). Toda decisão de projeto permanece sob autoridade do profissional habilitado.",
  "summary": {
    "total_elements": 319,
    "PASS": 216,
    "WARN": 103
  },
  "elements": [
    {
      "id": "0WG2G7yAn1CQIJ6iTnqo3L",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 48.5,
              "lambda1": 90.0,
              "alpha_b": 0.6496,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 24.2,
              "lambda1": 75.41,
              "alpha_b": 0.6496,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=48.5 vs λ1=90.0; dir y: λ=24.2 vs λ1=75.41.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 80.4,
            "rho_pct": 2.512,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6043,
            "interacao": 1.0,
            "mrdx_kncm": 63115.39,
            "mrdy_kncm": 138261.98,
            "msdx_kncm": 61952.3,
            "msdy_kncm": 5760.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 373.2 kN, Mdx = 57287 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3428 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=73.0 ⇒ 2ª ordem; M2d=4665, Md,tot=61952 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2332, Md,tot=5760 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=61952, MSdy=5760 kN·cm; Resiste com As = 80.40 cm² (2.51%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 80.40 cm² (2.51%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 72.97,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 153.5,
                "m1d_kncm": 57287.3,
                "status": "OK",
                "md_tot_kncm": 61952.3,
                "m2d_kncm": 4665.0,
                "nu": 0.0408,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 9.18,
                "m1d_kncm": 3427.6,
                "status": "OK",
                "md_tot_kncm": 5760.1,
                "m2d_kncm": 2332.5,
                "nu": 0.0408,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 5.6,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=72.97 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 84.69,
            "rho_pct": 2.646,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6385,
            "interacao": 1.0,
            "mrdx_kncm": 66075.08,
            "mrdy_kncm": 144910.55,
            "msdx_kncm": 64924.6,
            "msdy_kncm": 5760.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 21.2308,
            "v_vento_base_kn": 10.6154,
            "w_vento_kn_m": 1.69846,
            "largura_tributaria_m": 7.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 373.2 kN, Mdx = 60260 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3428 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=75.5 ⇒ 2ª ordem; M2d=4665, Md,tot=64925 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2332, Md,tot=5760 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=64925, MSdy=5760 kN·cm; Resiste com As = 84.69 cm² (2.65%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 84.69 cm² (2.65%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          0,
          1,
          2,
          3,
          4
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=572.9 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.60 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "0": {
            "N_i_kn": 373.1974377468597,
            "N_j_kn": -373.1974377468597,
            "Mz_i_knm": -116.711,
            "Mz_j_knm": -11.71,
            "My_i_knm": -20.172,
            "My_j_knm": 5.522,
            "M_i_knm": 116.711,
            "M_j_knm": 11.71,
            "L_m": 3.6999999999999975
          },
          "1": {
            "N_i_kn": 298.57513172160543,
            "N_j_kn": -298.57513172160543,
            "Mz_i_knm": -56.472,
            "Mz_j_knm": 51.215,
            "My_i_knm": -4.45,
            "My_j_knm": 4.373,
            "M_i_knm": 56.472,
            "M_j_knm": 51.215,
            "L_m": 0.05000000000000071
          },
          "2": {
            "N_i_kn": 244.68492706885328,
            "N_j_kn": -244.68492706885328,
            "Mz_i_knm": -71.042,
            "Mz_j_knm": -572.873,
            "My_i_knm": 10.055,
            "My_j_knm": -33.165,
            "M_i_knm": 71.042,
            "M_j_knm": 572.873,
            "L_m": 5.6
          },
          "3": {
            "N_i_kn": 26.219965323722136,
            "N_j_kn": -26.219965323722136,
            "Mz_i_knm": 4.678,
            "Mz_j_knm": -5.167,
            "My_i_knm": 33.141,
            "My_j_knm": -34.276,
            "M_i_knm": 33.141,
            "M_j_knm": 34.276,
            "L_m": 0.34999999999999964
          },
          "4": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.29999999999999893
          }
        }
      }
    },
    {
      "id": "3VqfQ8n1P7puFJ9C8yZBRd",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.0,
              "alpha_b": 0.9171,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.9171,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1044,
            "interacao": 0.7967,
            "mrdx_kncm": 18114.45,
            "mrdy_kncm": 37655.33,
            "msdx_kncm": 13088.3,
            "msdy_kncm": 6418.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 478.9 kN, Mdx = 7102 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3426 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=5986, Md,tot=13088 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2993, Md,tot=6419 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=13088, MSdy=6419 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7967 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7967 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 14.83,
                "m1d_kncm": 7102.3,
                "status": "OK",
                "md_tot_kncm": 13088.3,
                "m2d_kncm": 5986.0,
                "nu": 0.0524,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 7.15,
                "m1d_kncm": 3425.6,
                "status": "OK",
                "md_tot_kncm": 6418.6,
                "m2d_kncm": 2993.0,
                "nu": 0.0524,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1294,
            "interacao": 0.9852,
            "mrdx_kncm": 18114.45,
            "mrdy_kncm": 37655.33,
            "msdx_kncm": 16060.6,
            "msdy_kncm": 6418.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 21.2308,
            "v_vento_base_kn": 10.6154,
            "w_vento_kn_m": 1.69846,
            "largura_tributaria_m": 7.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 478.9 kN, Mdx = 10075 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3426 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=5986, Md,tot=16061 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2993, Md,tot=6419 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=16061, MSdy=6419 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.9852 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.9852 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          5,
          6,
          7
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=71.0 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "5": {
            "N_i_kn": 478.8807714598135,
            "N_j_kn": -478.8807714598135,
            "Mz_i_knm": 56.297,
            "Mz_j_knm": 71.023,
            "My_i_knm": -16.188,
            "My_j_knm": -32.32,
            "M_i_knm": 56.297,
            "M_j_knm": 71.023,
            "L_m": 9.35
          },
          "6": {
            "N_i_kn": 26.211111418522705,
            "N_j_kn": -26.211111418522705,
            "Mz_i_knm": -1.933,
            "Mz_j_knm": 0.86,
            "My_i_knm": 32.335,
            "My_j_knm": -34.256,
            "M_i_knm": 32.335,
            "M_j_knm": 34.256,
            "L_m": 0.34999999999999964
          },
          "7": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "0y6dGxkF94PAH7bDo8TK37",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.14,
              "alpha_b": 0.7791,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.7791,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.14 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.077,
            "interacao": 0.5892,
            "mrdx_kncm": 18135.83,
            "mrdy_kncm": 37699.87,
            "msdx_kncm": 9659.9,
            "msdy_kncm": 6425.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 3657 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3424 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6002, Md,tot=9660 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6425 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=9660, MSdy=6425 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.5892 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.5892 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 7.62,
                "m1d_kncm": 3657.4,
                "status": "OK",
                "md_tot_kncm": 9659.9,
                "m2d_kncm": 6002.5,
                "nu": 0.0525,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 7.13,
                "m1d_kncm": 3424.1,
                "status": "OK",
                "md_tot_kncm": 6425.35,
                "m2d_kncm": 3001.25,
                "nu": 0.0525,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1007,
            "interacao": 0.7676,
            "mrdx_kncm": 18135.83,
            "mrdy_kncm": 37699.87,
            "msdx_kncm": 12632.2,
            "msdy_kncm": 6425.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 21.2308,
            "v_vento_base_kn": 10.6154,
            "w_vento_kn_m": 1.69846,
            "largura_tributaria_m": 7.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 6630 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3424 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6002, Md,tot=12632 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6425 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=12632, MSdy=6425 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7676 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7676 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          8,
          9,
          10
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=36.6 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "8": {
            "N_i_kn": 480.1951605496585,
            "N_j_kn": -480.1951605496585,
            "Mz_i_knm": 1.698,
            "Mz_j_knm": -36.574,
            "My_i_knm": -16.38,
            "My_j_knm": -32.693,
            "M_i_knm": 16.38,
            "M_j_knm": 36.574,
            "L_m": 9.35
          },
          "9": {
            "N_i_kn": 26.20814707937825,
            "N_j_kn": -26.20814707937825,
            "Mz_i_knm": -1.008,
            "Mz_j_knm": -0.027,
            "My_i_knm": 32.605,
            "My_j_knm": -34.241,
            "M_i_knm": 32.605,
            "M_j_knm": 34.241,
            "L_m": 0.34999999999999964
          },
          "10": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "29NCvklXz8YBuUDAUHx3Xs",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.8134,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.2,
              "alpha_b": 0.8134,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.2.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 76.06,
            "rho_pct": 2.377,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.563,
            "interacao": 1.0,
            "mrdx_kncm": 58476.26,
            "mrdy_kncm": 127916.85,
            "msdx_kncm": 57461.0,
            "msdy_kncm": 5072.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.2 kN, Mdx = 57461 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3409 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1664, Md,tot=5073 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=57461, MSdy=5073 kN·cm; Resiste com As = 76.06 cm² (2.38%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 76.06 cm² (2.38%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 215.86,
                "m1d_kncm": 57461.0,
                "status": "OK",
                "md_tot_kncm": 57461.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 12.81,
                "m1d_kncm": 3408.8,
                "status": "OK",
                "md_tot_kncm": 5072.55,
                "m2d_kncm": 1663.75,
                "nu": 0.0291,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 80.36,
            "rho_pct": 2.511,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.5974,
            "interacao": 1.0,
            "mrdx_kncm": 61436.86,
            "mrdy_kncm": 134562.08,
            "msdx_kncm": 60433.3,
            "msdy_kncm": 5072.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 21.2308,
            "v_vento_base_kn": 10.6154,
            "w_vento_kn_m": 1.69846,
            "largura_tributaria_m": 7.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.2 kN, Mdx = 60433 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3409 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1664, Md,tot=5073 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=60433, MSdy=5073 kN·cm; Resiste com As = 80.36 cm² (2.51%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 80.36 cm² (2.51%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          11,
          12,
          13
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=574.6 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "11": {
            "N_i_kn": 266.19624147393813,
            "N_j_kn": -266.19624147393813,
            "Mz_i_knm": 306.483,
            "Mz_j_knm": 574.61,
            "My_i_knm": -13.691,
            "My_j_knm": -31.88,
            "M_i_knm": 306.483,
            "M_j_knm": 574.61,
            "L_m": 9.35
          },
          "12": {
            "N_i_kn": 26.177876730639582,
            "N_j_kn": -26.177876730639582,
            "Mz_i_knm": -5.17,
            "Mz_j_knm": 3.964,
            "My_i_knm": 31.977,
            "My_j_knm": -34.088,
            "M_i_knm": 31.977,
            "M_j_knm": 34.088,
            "L_m": 0.34999999999999964
          },
          "13": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1UvkgVblP4vw8ToMvIgnre",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7945,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.09,
              "alpha_b": 0.7945,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.09.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 89.15,
            "rho_pct": 2.786,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6722,
            "interacao": 1.0,
            "mrdx_kncm": 68468.25,
            "mrdy_kncm": 150314.33,
            "msdx_kncm": 67876.1,
            "msdy_kncm": 3335.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.6 kN, Mdx = 67876 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 249 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 249",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2054, Md,tot=3335 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=67876, MSdy=3335 kN·cm; Resiste com As = 89.15 cm² (2.79%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 89.15 cm² (2.79%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 89.55,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 206.56,
                "m1d_kncm": 67876.1,
                "status": "OK",
                "md_tot_kncm": 67876.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1281.5,
                "status": "OK",
                "md_tot_kncm": 3335.29,
                "m2d_kncm": 2053.75,
                "nu": 0.0359,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=89.55 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 95.29,
            "rho_pct": 2.978,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7225,
            "interacao": 1.0,
            "mrdx_kncm": 72706.19,
            "mrdy_kncm": 159836.21,
            "msdx_kncm": 72122.3,
            "msdy_kncm": 3335.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.6 kN, Mdx = 72122 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 249 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 249",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2054, Md,tot=3335 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72122, MSdy=3335 kN·cm; Resiste com As = 95.29 cm² (2.98%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 95.29 cm² (2.98%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          14,
          15,
          16
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=678.8 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.5 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "14": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          },
          "15": {
            "N_i_kn": 47.44975235907805,
            "N_j_kn": -47.44975235907805,
            "Mz_i_knm": 5.236,
            "Mz_j_knm": -5.066,
            "My_i_knm": -0.127,
            "My_j_knm": -0.089,
            "M_i_knm": 5.236,
            "M_j_knm": 5.066,
            "L_m": 0.34999999999999964
          },
          "16": {
            "N_i_kn": 328.5952111271985,
            "N_j_kn": -328.5952111271985,
            "Mz_i_knm": -678.761,
            "Mz_j_knm": -330.061,
            "My_i_knm": 0.228,
            "My_j_knm": 2.49,
            "M_i_knm": 678.761,
            "M_j_knm": 330.061,
            "L_m": 9.35
          }
        }
      }
    },
    {
      "id": "1iNTJXDuDE9gYeNmegPMdU",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.0,
              "alpha_b": 0.8441,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8441,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1172,
            "interacao": 0.8124,
            "mrdx_kncm": 19942.33,
            "mrdy_kncm": 41467.06,
            "msdx_kncm": 15057.4,
            "msdy_kncm": 6018.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 593.0 kN, Mdx = 7645 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 90 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2313 kN·cm governa sobre Mdy = 90",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=15057 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6019 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=15057, MSdy=6019 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8124 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8124 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 12.89,
                "m1d_kncm": 7645.1,
                "status": "OK",
                "md_tot_kncm": 15057.35,
                "m2d_kncm": 7412.25,
                "nu": 0.0649,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.6,
                "status": "OK",
                "md_tot_kncm": 6018.75,
                "m2d_kncm": 3706.12,
                "nu": 0.0649,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 14.23,
            "rho_pct": 0.445,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1532,
            "interacao": 1.0,
            "mrdx_kncm": 20934.81,
            "mrdy_kncm": 43657.65,
            "msdx_kncm": 19303.5,
            "msdy_kncm": 6018.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 593.0 kN, Mdx = 11891 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 90 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2313 kN·cm governa sobre Mdy = 90",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=19304 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6019 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=19304, MSdy=6019 kN·cm; Resiste com As = 14.23 cm² (0.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 14.23 cm² (0.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          17,
          18,
          19
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=76.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.9 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "17": {
            "N_i_kn": 592.9756768021496,
            "N_j_kn": -592.9756768021496,
            "Mz_i_knm": 46.65,
            "Mz_j_knm": 76.451,
            "My_i_knm": 0.898,
            "My_j_knm": 0.482,
            "M_i_knm": 46.65,
            "M_j_knm": 76.451,
            "L_m": 9.35
          },
          "18": {
            "N_i_kn": 47.42423397268249,
            "N_j_kn": -47.42423397268249,
            "Mz_i_knm": 1.406,
            "Mz_j_knm": -0.669,
            "My_i_knm": -0.354,
            "My_j_knm": 0.369,
            "M_i_knm": 1.406,
            "M_j_knm": 0.669,
            "L_m": 0.34999999999999964
          },
          "19": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1sJTQIpvbFGQhlz0M_dhSR",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 37.66,
              "alpha_b": 0.7509,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.47,
              "alpha_b": 0.7509,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=37.66 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.47.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1054,
            "interacao": 0.7318,
            "mrdx_kncm": 19940.75,
            "mrdy_kncm": 41463.74,
            "msdx_kncm": 13624.7,
            "msdy_kncm": 6017.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6214 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 74 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 74",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=13625 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=13625, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7318 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7318 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 10.48,
                "m1d_kncm": 6213.7,
                "status": "OK",
                "md_tot_kncm": 13624.7,
                "m2d_kncm": 7411.0,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.2,
                "status": "OK",
                "md_tot_kncm": 6017.73,
                "m2d_kncm": 3705.5,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1409,
            "interacao": 0.9754,
            "mrdx_kncm": 19940.75,
            "mrdy_kncm": 41463.74,
            "msdx_kncm": 17870.9,
            "msdy_kncm": 6017.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 10460 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 74 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 74",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=17871 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=17871, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.9754 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.9754 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          20,
          21,
          22
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=62.1 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.7 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "20": {
            "N_i_kn": 592.8823817283723,
            "N_j_kn": -592.8823817283723,
            "Mz_i_knm": -23.448,
            "Mz_j_knm": -62.137,
            "My_i_knm": 0.735,
            "My_j_knm": 0.094,
            "M_i_knm": 23.448,
            "M_j_knm": 62.137,
            "L_m": 9.35
          },
          "21": {
            "N_i_kn": 47.42436966655805,
            "N_j_kn": -47.42436966655805,
            "Mz_i_knm": 0.501,
            "Mz_j_knm": 0.174,
            "My_i_knm": -0.172,
            "My_j_knm": 0.398,
            "M_i_knm": 0.501,
            "M_j_knm": 0.398,
            "L_m": 0.34999999999999964
          },
          "22": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "3pqGRjcfX2Hf21DoTyzgT8",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.8039,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 71.72,
              "alpha_b": 0.8039,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=71.72.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.52,
            "rho_pct": 2.829,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6834,
            "interacao": 1.0,
            "mrdx_kncm": 69428.73,
            "mrdy_kncm": 152471.67,
            "msdx_kncm": 68836.7,
            "msdy_kncm": 3343.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.4 kN, Mdx = 68837 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 344 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1285 kN·cm governa sobre Mdy = 344",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2059, Md,tot=3343 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68837, MSdy=3343 kN·cm; Resiste com As = 90.52 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.52 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 208.99,
                "m1d_kncm": 68836.7,
                "status": "OK",
                "md_tot_kncm": 68836.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1284.6,
                "status": "OK",
                "md_tot_kncm": 3343.21,
                "m2d_kncm": 2058.62,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.66,
            "rho_pct": 3.021,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7338,
            "interacao": 1.0,
            "mrdx_kncm": 73666.45,
            "mrdy_kncm": 161993.52,
            "msdx_kncm": 73082.9,
            "msdy_kncm": 3343.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.4 kN, Mdx = 73083 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 344 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1285 kN·cm governa sobre Mdy = 344",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2059, Md,tot=3343 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=73083, MSdy=3343 kN·cm; Resiste com As = 96.66 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.66 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          23,
          24,
          25
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=688.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=3.4 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "23": {
            "N_i_kn": 329.3764629992185,
            "N_j_kn": -329.3764629992185,
            "Mz_i_knm": 350.908,
            "Mz_j_knm": 688.367,
            "My_i_knm": 3.443,
            "My_j_knm": 1.061,
            "M_i_knm": 350.908,
            "M_j_knm": 688.367,
            "L_m": 9.35
          },
          "24": {
            "N_i_kn": 47.43137665861468,
            "N_j_kn": -47.43137665861468,
            "Mz_i_knm": 4.599,
            "Mz_j_knm": -3.637,
            "My_i_knm": -0.971,
            "My_j_knm": 0.663,
            "M_i_knm": 4.599,
            "M_j_knm": 3.637,
            "L_m": 0.34999999999999964
          },
          "25": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "24LjzizCP7Eglp_tYkGml5",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7976,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.23,
              "alpha_b": 0.7976,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.23.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.18,
            "rho_pct": 2.818,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6807,
            "interacao": 1.0,
            "mrdx_kncm": 69183.98,
            "mrdy_kncm": 151922.27,
            "msdx_kncm": 68593.6,
            "msdy_kncm": 3335.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.7 kN, Mdx = 68594 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 273 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 273",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2054, Md,tot=3336 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68594, MSdy=3336 kN·cm; Resiste com As = 90.18 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.18 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 208.71,
                "m1d_kncm": 68593.6,
                "status": "OK",
                "md_tot_kncm": 68593.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1281.8,
                "status": "OK",
                "md_tot_kncm": 3335.9,
                "m2d_kncm": 2054.13,
                "nu": 0.0359,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.32,
            "rho_pct": 3.01,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.731,
            "interacao": 1.0,
            "mrdx_kncm": 73422.23,
            "mrdy_kncm": 161445.12,
            "msdx_kncm": 72839.8,
            "msdy_kncm": 3335.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.7 kN, Mdx = 72840 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 273 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 273",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2054, Md,tot=3336 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72840, MSdy=3336 kN·cm; Resiste com As = 96.32 cm² (3.01%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.32 cm² (3.01%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          26,
          27,
          28
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=685.9 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.7 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "26": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          },
          "27": {
            "N_i_kn": 47.32105450927702,
            "N_j_kn": -47.32105450927702,
            "Mz_i_knm": 0.009,
            "Mz_j_knm": 0.233,
            "My_i_knm": 0.301,
            "My_j_knm": -0.312,
            "M_i_knm": 0.301,
            "M_j_knm": 0.312,
            "L_m": 0.34999999999999964
          },
          "28": {
            "N_i_kn": 328.65874925847686,
            "N_j_kn": -328.65874925847686,
            "Mz_i_knm": -685.936,
            "Mz_j_knm": -338.837,
            "My_i_knm": 0.447,
            "My_j_knm": 2.726,
            "M_i_knm": 685.936,
            "M_j_knm": 338.837,
            "L_m": 9.35
          }
        }
      }
    },
    {
      "id": "0Hs9r5ZpHEev_99meeMa9g",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.24,
              "alpha_b": 0.8178,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8178,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.24 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1139,
            "interacao": 0.7901,
            "mrdx_kncm": 19941.22,
            "mrdy_kncm": 41464.72,
            "msdx_kncm": 14663.4,
            "msdy_kncm": 6018.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 7252 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 47 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14663 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14663, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7901 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7901 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 12.23,
                "m1d_kncm": 7252.0,
                "status": "OK",
                "md_tot_kncm": 14663.38,
                "m2d_kncm": 7411.38,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6018.04,
                "m2d_kncm": 3705.69,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.68,
            "rho_pct": 0.427,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1498,
            "interacao": 1.0,
            "mrdx_kncm": 20549.31,
            "mrdy_kncm": 42806.41,
            "msdx_kncm": 18909.5,
            "msdy_kncm": 6018.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11498 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 47 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18910 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18910, MSdy=6018 kN·cm; Resiste com As = 13.68 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.68 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          29,
          30,
          31
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=72.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.5 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "29": {
            "N_i_kn": 592.9113245201752,
            "N_j_kn": -592.9113245201752,
            "Mz_i_knm": 39.481,
            "Mz_j_knm": 72.52,
            "My_i_knm": 0.471,
            "My_j_knm": 0.151,
            "M_i_knm": 39.481,
            "M_j_knm": 72.52,
            "L_m": 9.35
          },
          "30": {
            "N_i_kn": 47.321902372668774,
            "N_j_kn": -47.321902372668774,
            "Mz_i_knm": 0.351,
            "Mz_j_knm": -0.131,
            "My_i_knm": -0.027,
            "My_j_knm": 0.039,
            "M_i_knm": 0.351,
            "M_j_knm": 0.131,
            "L_m": 0.34999999999999964
          },
          "31": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2N3brWG$b4geCvzdAw197Q",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 36.34,
              "alpha_b": 0.7857,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.7857,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=36.34 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1098,
            "interacao": 0.7616,
            "mrdx_kncm": 19940.6,
            "mrdy_kncm": 41463.42,
            "msdx_kncm": 14156.8,
            "msdy_kncm": 6017.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6746 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 47 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14157 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3705, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14157, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7616 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7616 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.38,
                "m1d_kncm": 6745.9,
                "status": "OK",
                "md_tot_kncm": 14156.77,
                "m2d_kncm": 7410.88,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.2,
                "status": "OK",
                "md_tot_kncm": 6017.63,
                "m2d_kncm": 3705.44,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.96,
            "rho_pct": 0.405,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1455,
            "interacao": 1.0,
            "mrdx_kncm": 20053.86,
            "mrdy_kncm": 41713.19,
            "msdx_kncm": 18402.9,
            "msdy_kncm": 6017.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 10992 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 47 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18403 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3705, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18403, MSdy=6018 kN·cm; Resiste com As = 12.96 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 12.96 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          32,
          33,
          34
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=67.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.5 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "32": {
            "N_i_kn": 592.8653936616713,
            "N_j_kn": -592.8653936616713,
            "Mz_i_knm": -31.326,
            "Mz_j_knm": -67.459,
            "My_i_knm": 0.474,
            "My_j_knm": -0.048,
            "M_i_knm": 31.326,
            "M_j_knm": 67.459,
            "L_m": 9.35
          },
          "33": {
            "N_i_kn": 47.32195669425164,
            "N_j_kn": -47.32195669425164,
            "Mz_i_knm": 0.331,
            "Mz_j_knm": -0.089,
            "My_i_knm": -0.037,
            "My_j_knm": 0.066,
            "M_i_knm": 0.331,
            "M_j_knm": 0.089,
            "L_m": 0.34999999999999964
          },
          "34": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2Lm8QrA1bAFxKQYqN_PN$C",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.8009,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.06,
              "alpha_b": 0.8009,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.06.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.58,
            "rho_pct": 2.831,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6839,
            "interacao": 1.0,
            "mrdx_kncm": 69459.11,
            "mrdy_kncm": 152540.16,
            "msdx_kncm": 68868.2,
            "msdy_kncm": 3338.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.9 kN, Mdx = 68868 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 278 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 278",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68868, MSdy=3339 kN·cm; Resiste com As = 90.58 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.58 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.36,
                "m1d_kncm": 68868.2,
                "status": "OK",
                "md_tot_kncm": 68868.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.9,
                "status": "OK",
                "md_tot_kncm": 3338.84,
                "m2d_kncm": 2055.94,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.71,
            "rho_pct": 3.022,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7343,
            "interacao": 1.0,
            "mrdx_kncm": 73697.44,
            "mrdy_kncm": 162063.44,
            "msdx_kncm": 73114.4,
            "msdy_kncm": 3338.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.9 kN, Mdx = 73114 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 278 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 278",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=73114, MSdy=3339 kN·cm; Resiste com As = 96.71 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.71 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          35,
          36,
          37
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=688.7 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.8 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "35": {
            "N_i_kn": 328.9510487534991,
            "N_j_kn": -328.9510487534991,
            "Mz_i_knm": 345.834,
            "Mz_j_knm": 688.682,
            "My_i_knm": 2.78,
            "My_j_knm": 0.41,
            "M_i_knm": 345.834,
            "M_j_knm": 688.682,
            "L_m": 9.35
          },
          "36": {
            "N_i_kn": 47.32160261761783,
            "N_j_kn": -47.32160261761783,
            "Mz_i_knm": 0.399,
            "Mz_j_knm": -0.245,
            "My_i_knm": -0.315,
            "My_j_knm": 0.303,
            "M_i_knm": 0.399,
            "M_j_knm": 0.303,
            "L_m": 0.34999999999999964
          },
          "37": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "3W0Y8iqS53Thb_Kbxm$GUJ",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7987,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.18,
              "alpha_b": 0.7987,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.18.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.32,
            "rho_pct": 2.823,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6818,
            "interacao": 1.0,
            "mrdx_kncm": 69281.24,
            "mrdy_kncm": 152140.73,
            "msdx_kncm": 68690.5,
            "msdy_kncm": 3336.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68690 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 280 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 280",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68690, MSdy=3337 kN·cm; Resiste com As = 90.32 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.32 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 208.94,
                "m1d_kncm": 68690.5,
                "status": "OK",
                "md_tot_kncm": 68690.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.1,
                "status": "OK",
                "md_tot_kncm": 3336.81,
                "m2d_kncm": 2054.69,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.46,
            "rho_pct": 3.014,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7322,
            "interacao": 1.0,
            "mrdx_kncm": 73519.51,
            "mrdy_kncm": 161663.72,
            "msdx_kncm": 72936.7,
            "msdy_kncm": 3336.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72937 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 280 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 280",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72937, MSdy=3337 kN·cm; Resiste com As = 96.46 cm² (3.01%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.46 cm² (3.01%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          38,
          39,
          40
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=686.9 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.8 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "38": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          },
          "39": {
            "N_i_kn": 47.32202142720598,
            "N_j_kn": -47.32202142720598,
            "Mz_i_knm": -0.05,
            "Mz_j_knm": 0.113,
            "My_i_knm": 0.318,
            "My_j_knm": -0.223,
            "M_i_knm": 0.318,
            "M_j_knm": 0.223,
            "L_m": 0.34999999999999964
          },
          "40": {
            "N_i_kn": 328.75416144195873,
            "N_j_kn": -328.75416144195873,
            "Mz_i_knm": -686.905,
            "Mz_j_knm": -341.164,
            "My_i_knm": 0.355,
            "My_j_knm": 2.797,
            "M_i_knm": 686.905,
            "M_j_knm": 341.164,
            "L_m": 9.35
          }
        }
      }
    },
    {
      "id": "2pq5$LBK13QRinozjBymKj",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.57,
              "alpha_b": 0.8078,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8078,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.57 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1126,
            "interacao": 0.7808,
            "mrdx_kncm": 19941.07,
            "mrdy_kncm": 41464.4,
            "msdx_kncm": 14498.6,
            "msdy_kncm": 6017.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 7087 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 19 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 19",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14499 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14499, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7808 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7808 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.95,
                "m1d_kncm": 7087.4,
                "status": "OK",
                "md_tot_kncm": 14498.65,
                "m2d_kncm": 7411.25,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.93,
                "m2d_kncm": 3705.62,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.45,
            "rho_pct": 0.42,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1484,
            "interacao": 1.0,
            "mrdx_kncm": 20388.53,
            "mrdy_kncm": 42451.5,
            "msdx_kncm": 18744.8,
            "msdy_kncm": 6017.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11334 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 19 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 19",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18745 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18745, MSdy=6018 kN·cm; Resiste com As = 13.45 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.45 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          41,
          42,
          43
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.9 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "41": {
            "N_i_kn": 592.8983279347775,
            "N_j_kn": -592.8983279347775,
            "Mz_i_knm": 36.815,
            "Mz_j_knm": 70.874,
            "My_i_knm": 0.187,
            "My_j_knm": 0.087,
            "M_i_knm": 36.815,
            "M_j_knm": 70.874,
            "L_m": 9.35
          },
          "42": {
            "N_i_kn": 47.322903117190435,
            "N_j_kn": -47.322903117190435,
            "Mz_i_knm": 0.122,
            "Mz_j_knm": -0.039,
            "My_i_knm": 0.033,
            "My_j_knm": 0.013,
            "M_i_knm": 0.122,
            "M_j_knm": 0.039,
            "L_m": 0.34999999999999964
          },
          "43": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2YNCD5PpT2kBCdz_Iu0XyD",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.95,
              "alpha_b": 0.7968,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.7968,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.95 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1111,
            "interacao": 0.771,
            "mrdx_kncm": 19940.75,
            "mrdy_kncm": 41463.74,
            "msdx_kncm": 14323.9,
            "msdy_kncm": 6017.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6913 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 30 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 30",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14324 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14324, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.771 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.771 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.66,
                "m1d_kncm": 6912.9,
                "status": "OK",
                "md_tot_kncm": 14323.9,
                "m2d_kncm": 7411.0,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.2,
                "status": "OK",
                "md_tot_kncm": 6017.73,
                "m2d_kncm": 3705.5,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.2,
            "rho_pct": 0.412,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1469,
            "interacao": 1.0,
            "mrdx_kncm": 20217.17,
            "mrdy_kncm": 42073.45,
            "msdx_kncm": 18570.1,
            "msdy_kncm": 6017.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11159 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 30 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 30",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18570 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18570, MSdy=6018 kN·cm; Resiste com As = 13.20 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.20 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          44,
          45,
          46
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=69.1 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "44": {
            "N_i_kn": 592.8817942171279,
            "N_j_kn": -592.8817942171279,
            "Mz_i_knm": -34.003,
            "Mz_j_knm": -69.129,
            "My_i_knm": 0.305,
            "My_j_knm": -0.022,
            "M_i_knm": 34.003,
            "M_j_knm": 69.129,
            "L_m": 9.35
          },
          "45": {
            "N_i_kn": 47.322491463237384,
            "N_j_kn": -47.322491463237384,
            "Mz_i_knm": 0.119,
            "Mz_j_knm": -0.038,
            "My_i_knm": -0.059,
            "My_j_knm": 0.043,
            "M_i_knm": 0.119,
            "M_j_knm": 0.043,
            "L_m": 0.34999999999999964
          },
          "46": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1hsorETWj2iuyKiKSL71JD",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7998,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.12,
              "alpha_b": 0.7998,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.12.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.46,
            "rho_pct": 2.827,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6829,
            "interacao": 1.0,
            "mrdx_kncm": 69374.57,
            "mrdy_kncm": 152350.32,
            "msdx_kncm": 68783.8,
            "msdy_kncm": 3337.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.9 kN, Mdx = 68784 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 240 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 240",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3338 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68784, MSdy=3338 kN·cm; Resiste com As = 90.46 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.46 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.16,
                "m1d_kncm": 68783.8,
                "status": "OK",
                "md_tot_kncm": 68783.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.6,
                "status": "OK",
                "md_tot_kncm": 3337.93,
                "m2d_kncm": 2055.38,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.59,
            "rho_pct": 3.019,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7333,
            "interacao": 1.0,
            "mrdx_kncm": 73612.9,
            "mrdy_kncm": 161873.46,
            "msdx_kncm": 73030.0,
            "msdy_kncm": 3337.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.9 kN, Mdx = 73030 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 240 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 240",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3338 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=73030, MSdy=3338 kN·cm; Resiste com As = 96.59 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.59 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          47,
          48,
          49
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.8 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.4 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "47": {
            "N_i_kn": 328.85670207201537,
            "N_j_kn": -328.85670207201537,
            "Mz_i_knm": 343.571,
            "Mz_j_knm": 687.838,
            "My_i_knm": 2.399,
            "My_j_knm": 0.297,
            "M_i_knm": 343.571,
            "M_j_knm": 687.838,
            "L_m": 9.35
          },
          "48": {
            "N_i_kn": 47.32356965823783,
            "N_j_kn": -47.32356965823783,
            "Mz_i_knm": 0.124,
            "Mz_j_knm": -0.054,
            "My_i_knm": -0.205,
            "My_j_knm": 0.274,
            "M_i_knm": 0.205,
            "M_j_knm": 0.274,
            "L_m": 0.34999999999999964
          },
          "49": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "13v$hKCQvChPCWtOvYZmhr",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.799,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.16,
              "alpha_b": 0.799,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.16.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.37,
            "rho_pct": 2.824,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6822,
            "interacao": 1.0,
            "mrdx_kncm": 69312.21,
            "mrdy_kncm": 152210.27,
            "msdx_kncm": 68721.7,
            "msdy_kncm": 3337.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68722 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 292 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 292",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68722, MSdy=3337 kN·cm; Resiste com As = 90.37 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.37 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.01,
                "m1d_kncm": 68721.7,
                "status": "OK",
                "md_tot_kncm": 68721.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.3,
                "status": "OK",
                "md_tot_kncm": 3337.22,
                "m2d_kncm": 2054.94,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.5,
            "rho_pct": 3.016,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7325,
            "interacao": 1.0,
            "mrdx_kncm": 73550.49,
            "mrdy_kncm": 161733.29,
            "msdx_kncm": 72967.9,
            "msdy_kncm": 3337.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72968 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 292 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 292",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72968, MSdy=3337 kN·cm; Resiste com As = 96.50 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.50 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          50,
          51,
          52
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.2 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.9 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "50": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          },
          "51": {
            "N_i_kn": 47.321919866704775,
            "N_j_kn": -47.321919866704775,
            "Mz_i_knm": -0.018,
            "Mz_j_knm": 0.041,
            "My_i_knm": 0.337,
            "My_j_knm": -0.204,
            "M_i_knm": 0.337,
            "M_j_knm": 0.204,
            "L_m": 0.34999999999999964
          },
          "52": {
            "N_i_kn": 328.78723675071757,
            "N_j_kn": -328.78723675071757,
            "Mz_i_knm": -687.217,
            "Mz_j_knm": -341.959,
            "My_i_knm": 0.332,
            "My_j_knm": 2.917,
            "M_i_knm": 687.217,
            "M_j_knm": 341.959,
            "L_m": 9.35
          }
        }
      }
    },
    {
      "id": "2klPIeEWrE$AIoP4hCRZSZ",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.69,
              "alpha_b": 0.8042,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8042,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.69 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1121,
            "interacao": 0.7776,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14441.2,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 7030 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 8 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 8",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14441 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14441, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7776 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7776 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.86,
                "m1d_kncm": 7030.1,
                "status": "OK",
                "md_tot_kncm": 14441.23,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.36,
            "rho_pct": 0.418,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1479,
            "interacao": 1.0,
            "mrdx_kncm": 20331.76,
            "mrdy_kncm": 42326.26,
            "msdx_kncm": 18687.4,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11276 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 8 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 8",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18687 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18687, MSdy=6018 kN·cm; Resiste com As = 13.36 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.36 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          53,
          54,
          55
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.3 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "53": {
            "N_i_kn": 592.8931215296842,
            "N_j_kn": -592.8931215296842,
            "Mz_i_knm": 35.89,
            "Mz_j_knm": 70.301,
            "My_i_knm": -0.076,
            "My_j_knm": 0.051,
            "M_i_knm": 35.89,
            "M_j_knm": 70.301,
            "L_m": 9.35
          },
          "54": {
            "N_i_kn": 47.322945914493175,
            "N_j_kn": -47.322945914493175,
            "Mz_i_knm": 0.042,
            "Mz_j_knm": -0.013,
            "My_i_knm": 0.063,
            "My_j_knm": -0.016,
            "M_i_knm": 0.063,
            "M_j_knm": 0.016,
            "L_m": 0.34999999999999964
          },
          "55": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "3C_LZboXn5dhheBSTLzXsX",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.82,
              "alpha_b": 0.8004,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8004,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.82 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1116,
            "interacao": 0.7742,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14381.6,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6970 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 12 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 12",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14382 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14382, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7742 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7742 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.76,
                "m1d_kncm": 6970.5,
                "status": "OK",
                "md_tot_kncm": 14381.62,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.28,
            "rho_pct": 0.415,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1474,
            "interacao": 1.0,
            "mrdx_kncm": 20273.94,
            "mrdy_kncm": 42198.67,
            "msdx_kncm": 18627.8,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11217 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 12 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 12",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18628 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18628, MSdy=6018 kN·cm; Resiste com As = 13.28 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.28 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          56,
          57,
          58
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=69.7 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "56": {
            "N_i_kn": 592.8870916068303,
            "N_j_kn": -592.8870916068303,
            "Mz_i_knm": -34.929,
            "Mz_j_knm": -69.705,
            "My_i_knm": 0.122,
            "My_j_knm": -0.02,
            "M_i_knm": 34.929,
            "M_j_knm": 69.705,
            "L_m": 9.35
          },
          "57": {
            "N_i_kn": 47.322421328006385,
            "N_j_kn": -47.322421328006385,
            "Mz_i_knm": 0.042,
            "Mz_j_knm": -0.013,
            "My_i_knm": -0.053,
            "My_j_knm": 0.018,
            "M_i_knm": 0.053,
            "M_j_knm": 0.018,
            "L_m": 0.34999999999999964
          },
          "58": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "07wvYYO2H6teHlauj2vN$U",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7994,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.14,
              "alpha_b": 0.7994,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.14.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.41,
            "rho_pct": 2.825,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6825,
            "interacao": 1.0,
            "mrdx_kncm": 69344.23,
            "mrdy_kncm": 152282.16,
            "msdx_kncm": 68753.5,
            "msdy_kncm": 3337.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68754 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 206 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 206",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3338 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68754, MSdy=3338 kN·cm; Resiste com As = 90.41 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.41 cm² (2.83%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.09,
                "m1d_kncm": 68753.5,
                "status": "OK",
                "md_tot_kncm": 68753.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.4,
                "status": "OK",
                "md_tot_kncm": 3337.52,
                "m2d_kncm": 2055.12,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.55,
            "rho_pct": 3.017,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7329,
            "interacao": 1.0,
            "mrdx_kncm": 73582.52,
            "mrdy_kncm": 161805.3,
            "msdx_kncm": 72999.7,
            "msdy_kncm": 3337.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 73000 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 206 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 206",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3338 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=73000, MSdy=3338 kN·cm; Resiste com As = 96.55 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.55 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          59,
          60,
          61
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=2.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "59": {
            "N_i_kn": 328.823511929792,
            "N_j_kn": -328.823511929792,
            "Mz_i_knm": 342.781,
            "Mz_j_knm": 687.535,
            "My_i_knm": 2.055,
            "My_j_knm": 0.236,
            "M_i_knm": 342.781,
            "M_j_knm": 687.535,
            "L_m": 9.35
          },
          "60": {
            "N_i_kn": 47.32367470781173,
            "N_j_kn": -47.32367470781173,
            "Mz_i_knm": 0.041,
            "Mz_j_knm": -0.019,
            "My_i_knm": -0.149,
            "My_j_knm": 0.237,
            "M_i_knm": 0.149,
            "M_j_knm": 0.237,
            "L_m": 0.34999999999999964
          },
          "61": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2VhEZMYN92TxCHmVdzcJqT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.15,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.15.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.38,
            "rho_pct": 2.824,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6823,
            "interacao": 1.0,
            "mrdx_kncm": 69322.69,
            "mrdy_kncm": 152233.76,
            "msdx_kncm": 68732.3,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68732 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 307 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 307",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68732, MSdy=3337 kN·cm; Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.04,
                "m1d_kncm": 68732.3,
                "status": "OK",
                "md_tot_kncm": 68732.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.3,
                "status": "OK",
                "md_tot_kncm": 3337.32,
                "m2d_kncm": 2055.0,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.52,
            "rho_pct": 3.016,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7326,
            "interacao": 1.0,
            "mrdx_kncm": 73560.97,
            "mrdy_kncm": 161756.84,
            "msdx_kncm": 72978.5,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72978 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 307 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 307",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72978, MSdy=3337 kN·cm; Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          62,
          63,
          64
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.3 kN·m (resistido pela dimensão 0.40 m) · My,máx=3.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "62": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          },
          "63": {
            "N_i_kn": 47.32205971324947,
            "N_j_kn": -47.32205971324947,
            "Mz_i_knm": -0.006,
            "Mz_j_knm": 0.014,
            "My_i_knm": 0.357,
            "My_j_knm": -0.207,
            "M_i_knm": 0.357,
            "M_j_knm": 0.207,
            "L_m": 0.34999999999999964
          },
          "64": {
            "N_i_kn": 328.7988964876717,
            "N_j_kn": -328.7988964876717,
            "Mz_i_knm": -687.323,
            "Mz_j_knm": -342.233,
            "My_i_knm": 0.331,
            "My_j_knm": 3.067,
            "M_i_knm": 687.323,
            "M_j_knm": 342.233,
            "L_m": 9.35
          }
        }
      }
    },
    {
      "id": "17qWWG$G95WfeiQUhHI6k2",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.73,
              "alpha_b": 0.803,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.803,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.73 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1119,
            "interacao": 0.7765,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14421.3,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 7010 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 33 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 33",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14421 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14421, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7765 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7765 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.82,
                "m1d_kncm": 7010.2,
                "status": "OK",
                "md_tot_kncm": 14421.33,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.34,
            "rho_pct": 0.417,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1477,
            "interacao": 1.0,
            "mrdx_kncm": 20312.29,
            "mrdy_kncm": 42283.3,
            "msdx_kncm": 18667.5,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11256 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 33 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 33",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18667 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18667, MSdy=6018 kN·cm; Resiste com As = 13.34 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.34 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          65,
          66,
          67
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.1 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "65": {
            "N_i_kn": 592.8912498572616,
            "N_j_kn": -592.8912498572616,
            "Mz_i_knm": 35.569,
            "Mz_j_knm": 70.102,
            "My_i_knm": -0.328,
            "My_j_knm": 0.024,
            "M_i_knm": 35.569,
            "M_j_knm": 70.102,
            "L_m": 9.35
          },
          "66": {
            "N_i_kn": 47.32291796693244,
            "N_j_kn": -47.32291796693244,
            "Mz_i_knm": 0.014,
            "Mz_j_knm": -0.005,
            "My_i_knm": 0.084,
            "My_j_knm": -0.046,
            "M_i_knm": 0.084,
            "M_j_knm": 0.046,
            "L_m": 0.34999999999999964
          },
          "67": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2JHBvD$9f2NuI9NbfiRjDD",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.78,
              "alpha_b": 0.8017,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8017,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.78 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1118,
            "interacao": 0.7754,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14401.5,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6990 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 7 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 7",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14402 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14402, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7754 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7754 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.79,
                "m1d_kncm": 6990.4,
                "status": "OK",
                "md_tot_kncm": 14401.52,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.31,
            "rho_pct": 0.416,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1476,
            "interacao": 1.0,
            "mrdx_kncm": 20293.42,
            "mrdy_kncm": 42241.65,
            "msdx_kncm": 18647.7,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11237 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 7 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 7",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18648 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18648, MSdy=6018 kN·cm; Resiste com As = 13.31 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.31 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          68,
          69,
          70
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=69.9 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "68": {
            "N_i_kn": 592.8889609558692,
            "N_j_kn": -592.8889609558692,
            "Mz_i_knm": -35.25,
            "Mz_j_knm": -69.904,
            "My_i_knm": -0.072,
            "My_j_knm": -0.027,
            "M_i_knm": 35.25,
            "M_j_knm": 69.904,
            "L_m": 9.35
          },
          "69": {
            "N_i_kn": 47.32244595618613,
            "N_j_kn": -47.32244595618613,
            "Mz_i_knm": 0.014,
            "Mz_j_knm": -0.005,
            "My_i_knm": -0.039,
            "My_j_knm": -0.006,
            "M_i_knm": 0.039,
            "M_j_knm": 0.006,
            "L_m": 0.34999999999999964
          },
          "70": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "0bJ9GLj4X8xv6U26DsL6kT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.15,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.15.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.4,
            "rho_pct": 2.825,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6824,
            "interacao": 1.0,
            "mrdx_kncm": 69333.75,
            "mrdy_kncm": 152258.66,
            "msdx_kncm": 68742.9,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68743 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 173 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 173",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68743, MSdy=3337 kN·cm; Resiste com As = 90.40 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.40 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.07,
                "m1d_kncm": 68742.9,
                "status": "OK",
                "md_tot_kncm": 68742.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.4,
                "status": "OK",
                "md_tot_kncm": 3337.42,
                "m2d_kncm": 2055.06,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.54,
            "rho_pct": 3.017,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7328,
            "interacao": 1.0,
            "mrdx_kncm": 73572.04,
            "mrdy_kncm": 161781.75,
            "msdx_kncm": 72989.1,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72989 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 173 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 173",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72989, MSdy=3337 kN·cm; Resiste com As = 96.54 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.54 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          71,
          72,
          73
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=1.7 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "71": {
            "N_i_kn": 328.8119397644749,
            "N_j_kn": -328.8119397644749,
            "Mz_i_knm": 342.507,
            "Mz_j_knm": 687.429,
            "My_i_knm": 1.734,
            "My_j_knm": 0.197,
            "M_i_knm": 342.507,
            "M_j_knm": 687.429,
            "L_m": 9.35
          },
          "72": {
            "N_i_kn": 47.3236234288961,
            "N_j_kn": -47.3236234288961,
            "Mz_i_knm": 0.013,
            "Mz_j_knm": -0.006,
            "My_i_knm": -0.115,
            "My_j_knm": 0.201,
            "M_i_knm": 0.115,
            "M_j_knm": 0.201,
            "L_m": 0.34999999999999964
          },
          "73": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2WqnMlyjr39fPW9$wFSQiI",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.15,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.15.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.39,
            "rho_pct": 2.825,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6823,
            "interacao": 1.0,
            "mrdx_kncm": 69326.31,
            "mrdy_kncm": 152241.96,
            "msdx_kncm": 68735.7,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68736 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 324 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 324",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68736, MSdy=3337 kN·cm; Resiste com As = 90.39 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.39 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.05,
                "m1d_kncm": 68735.7,
                "status": "OK",
                "md_tot_kncm": 68735.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.3,
                "status": "OK",
                "md_tot_kncm": 3337.32,
                "m2d_kncm": 2055.0,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.52,
            "rho_pct": 3.016,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7327,
            "interacao": 1.0,
            "mrdx_kncm": 73564.61,
            "mrdy_kncm": 161765.03,
            "msdx_kncm": 72981.9,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72982 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 324 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 324",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72982, MSdy=3337 kN·cm; Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          74,
          75,
          76
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=3.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "74": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.29999999999999893
          },
          "75": {
            "N_i_kn": 47.32230234632152,
            "N_j_kn": -47.32230234632152,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.379,
            "My_j_knm": -0.219,
            "M_i_knm": 0.379,
            "M_j_knm": 0.219,
            "L_m": 0.34999999999999964
          },
          "76": {
            "N_i_kn": 328.8032559269528,
            "N_j_kn": -328.8032559269528,
            "Mz_i_knm": -687.357,
            "Mz_j_knm": -342.329,
            "My_i_knm": 0.34,
            "My_j_knm": 3.241,
            "M_i_knm": 687.357,
            "M_j_knm": 342.329,
            "L_m": 9.349999999999998
          }
        }
      }
    },
    {
      "id": "1vTGqhDez4Pxh$IjD11NIg",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.75,
              "alpha_b": 0.8025,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8025,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.75 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1119,
            "interacao": 0.7761,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14414.1,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 7003 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 57 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 57",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14414 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14414, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7761 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7761 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.81,
                "m1d_kncm": 7003.0,
                "status": "OK",
                "md_tot_kncm": 14414.12,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.33,
            "rho_pct": 0.416,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1477,
            "interacao": 1.0,
            "mrdx_kncm": 20305.6,
            "mrdy_kncm": 42268.52,
            "msdx_kncm": 18660.3,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11249 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 57 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 57",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18660 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18660, MSdy=6018 kN·cm; Resiste com As = 13.33 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.33 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          77,
          78,
          79
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.0 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.6 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "77": {
            "N_i_kn": 592.8905183579326,
            "N_j_kn": -592.8905183579326,
            "Mz_i_knm": 35.455,
            "Mz_j_knm": 70.03,
            "My_i_knm": -0.573,
            "My_j_knm": 0.001,
            "M_i_knm": 35.455,
            "M_j_knm": 70.03,
            "L_m": 9.35
          },
          "78": {
            "N_i_kn": 47.3228815607381,
            "N_j_kn": -47.3228815607381,
            "Mz_i_knm": 0.006,
            "Mz_j_knm": -0.002,
            "My_i_knm": 0.102,
            "My_j_knm": -0.075,
            "M_i_knm": 0.102,
            "M_j_knm": 0.075,
            "L_m": 0.34999999999999964
          },
          "79": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1xgjTJRsL338QI9QbY44CW",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.76,
              "alpha_b": 0.8022,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8022,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.76 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1118,
            "interacao": 0.7757,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14408.4,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6997 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 27 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 27",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14408 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14408, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7757 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7757 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.8,
                "m1d_kncm": 6997.3,
                "status": "OK",
                "md_tot_kncm": 14408.42,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.32,
            "rho_pct": 0.416,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1476,
            "interacao": 1.0,
            "mrdx_kncm": 20300.12,
            "mrdy_kncm": 42256.42,
            "msdx_kncm": 18654.6,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11243 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 27 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 27",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18655 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18655, MSdy=6018 kN·cm; Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          80,
          81,
          82
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.0 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "80": {
            "N_i_kn": 592.8896282317644,
            "N_j_kn": -592.8896282317644,
            "Mz_i_knm": -35.363,
            "Mz_j_knm": -69.973,
            "My_i_knm": -0.273,
            "My_j_knm": -0.039,
            "M_i_knm": 35.363,
            "M_j_knm": 69.973,
            "L_m": 9.35
          },
          "81": {
            "N_i_kn": 47.322508752498834,
            "N_j_kn": -47.322508752498834,
            "Mz_i_knm": 0.003,
            "Mz_j_knm": -0.001,
            "My_i_knm": -0.021,
            "My_j_knm": -0.031,
            "M_i_knm": 0.021,
            "M_j_knm": 0.031,
            "L_m": 0.34999999999999964
          },
          "82": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2a$3b$Kyb58OYSaae$KUQT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.14,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.14.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.39,
            "rho_pct": 2.825,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6824,
            "interacao": 1.0,
            "mrdx_kncm": 69329.52,
            "mrdy_kncm": 152249.07,
            "msdx_kncm": 68738.8,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68739 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 143 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 143",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68739, MSdy=3337 kN·cm; Resiste com As = 90.39 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.39 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.05,
                "m1d_kncm": 68738.8,
                "status": "OK",
                "md_tot_kncm": 68738.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.4,
                "status": "OK",
                "md_tot_kncm": 3337.42,
                "m2d_kncm": 2055.06,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.53,
            "rho_pct": 3.017,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7327,
            "interacao": 1.0,
            "mrdx_kncm": 73567.79,
            "mrdy_kncm": 161772.2,
            "msdx_kncm": 72985.0,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72985 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 143 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 143",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72985, MSdy=3337 kN·cm; Resiste com As = 96.53 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.53 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          83,
          84,
          85
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=1.4 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "83": {
            "N_i_kn": 328.807836779456,
            "N_j_kn": -328.807836779456,
            "Mz_i_knm": 342.408,
            "Mz_j_knm": 687.388,
            "My_i_knm": 1.429,
            "My_j_knm": 0.166,
            "M_i_knm": 342.408,
            "M_j_knm": 687.388,
            "L_m": 9.35
          },
          "84": {
            "N_i_kn": 47.323546636540414,
            "N_j_kn": -47.323546636540414,
            "Mz_i_knm": 0.008,
            "Mz_j_knm": -0.004,
            "My_i_knm": -0.088,
            "My_j_knm": 0.165,
            "M_i_knm": 0.088,
            "M_j_knm": 0.165,
            "L_m": 0.34999999999999964
          },
          "85": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "232xvfg3PB2ehrH8AWnDX1",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.15,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.15.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.38,
            "rho_pct": 2.824,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6823,
            "interacao": 1.0,
            "mrdx_kncm": 69323.29,
            "mrdy_kncm": 152235.1,
            "msdx_kncm": 68732.6,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68733 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 344 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 344",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68733, MSdy=3337 kN·cm; Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.04,
                "m1d_kncm": 68732.6,
                "status": "OK",
                "md_tot_kncm": 68732.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.3,
                "status": "OK",
                "md_tot_kncm": 3337.32,
                "m2d_kncm": 2055.0,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.52,
            "rho_pct": 3.016,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7327,
            "interacao": 1.0,
            "mrdx_kncm": 73561.59,
            "mrdy_kncm": 161758.19,
            "msdx_kncm": 72978.8,
            "msdy_kncm": 3337.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72979 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 344 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 344",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72979, MSdy=3337 kN·cm; Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          86,
          87,
          88
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.3 kN·m (resistido pela dimensão 0.40 m) · My,máx=3.4 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "86": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.29999999999999893
          },
          "87": {
            "N_i_kn": 47.32125724866819,
            "N_j_kn": -47.32125724866819,
            "Mz_i_knm": 0.097,
            "Mz_j_knm": -0.063,
            "My_i_knm": 0.399,
            "My_j_knm": -0.228,
            "M_i_knm": 0.399,
            "M_j_knm": 0.228,
            "L_m": 0.34999999999999964
          },
          "88": {
            "N_i_kn": 328.8046365462666,
            "N_j_kn": -328.8046365462666,
            "Mz_i_knm": -687.326,
            "Mz_j_knm": -342.345,
            "My_i_knm": 0.347,
            "My_j_knm": 3.436,
            "M_i_knm": 687.326,
            "M_j_knm": 342.345,
            "L_m": 9.349999999999998
          }
        }
      }
    },
    {
      "id": "3KNztTMkPCzxgoIM9Km1xr",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.76,
              "alpha_b": 0.8023,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8023,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.76 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1119,
            "interacao": 0.7758,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14410.2,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6999 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 81 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 81",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14410 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14410, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7758 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7758 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.81,
                "m1d_kncm": 6999.1,
                "status": "OK",
                "md_tot_kncm": 14410.23,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.32,
            "rho_pct": 0.416,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1476,
            "interacao": 1.0,
            "mrdx_kncm": 20301.94,
            "mrdy_kncm": 42260.45,
            "msdx_kncm": 18656.4,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11245 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 81 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 81",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18656 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18656, MSdy=6018 kN·cm; Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          89,
          90,
          91
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.0 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.8 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "89": {
            "N_i_kn": 592.8886789715833,
            "N_j_kn": -592.8886789715833,
            "Mz_i_knm": 35.403,
            "Mz_j_knm": 69.991,
            "My_i_knm": -0.814,
            "My_j_knm": -0.02,
            "M_i_knm": 35.403,
            "M_j_knm": 69.991,
            "L_m": 9.35
          },
          "90": {
            "N_i_kn": 47.322014122148175,
            "N_j_kn": -47.322014122148175,
            "Mz_i_knm": 0.009,
            "Mz_j_knm": -0.016,
            "My_i_knm": 0.12,
            "My_j_knm": -0.1,
            "M_i_knm": 0.12,
            "M_j_knm": 0.1,
            "L_m": 0.34999999999999964
          },
          "91": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2M2eDIfxzE7uFYIlTr4KR9",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.76,
              "alpha_b": 0.8023,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8023,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.76 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1119,
            "interacao": 0.7759,
            "mrdx_kncm": 19940.9,
            "mrdy_kncm": 41464.06,
            "msdx_kncm": 14410.5,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6999 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 48 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 48",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=14411 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14411, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7759 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7759 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.81,
                "m1d_kncm": 6999.4,
                "status": "OK",
                "md_tot_kncm": 14410.52,
                "m2d_kncm": 7411.12,
                "nu": 0.0648,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.3,
                "status": "OK",
                "md_tot_kncm": 6017.83,
                "m2d_kncm": 3705.56,
                "nu": 0.0648,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.32,
            "rho_pct": 0.416,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1476,
            "interacao": 1.0,
            "mrdx_kncm": 20301.94,
            "mrdy_kncm": 42260.45,
            "msdx_kncm": 18656.7,
            "msdy_kncm": 6017.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11246 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 48 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 48",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7411, Md,tot=18657 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18657, MSdy=6018 kN·cm; Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.32 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          92,
          93,
          94
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=70.0 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.5 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "92": {
            "N_i_kn": 592.888450666814,
            "N_j_kn": -592.888450666814,
            "Mz_i_knm": -35.407,
            "Mz_j_knm": -69.994,
            "My_i_knm": -0.482,
            "My_j_knm": -0.053,
            "M_i_knm": 35.407,
            "M_j_knm": 69.994,
            "L_m": 9.35
          },
          "93": {
            "N_i_kn": 47.3217517606372,
            "N_j_kn": -47.3217517606372,
            "Mz_i_knm": -0.008,
            "Mz_j_knm": 0.016,
            "My_i_knm": -0.002,
            "My_j_knm": -0.054,
            "M_i_knm": 0.008,
            "M_j_knm": 0.054,
            "L_m": 0.34999999999999964
          },
          "94": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "0ypOE8dsX2OQb1PvhkTY4w",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.15,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.15.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 90.38,
            "rho_pct": 2.824,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6823,
            "interacao": 1.0,
            "mrdx_kncm": 69323.45,
            "mrdy_kncm": 152235.48,
            "msdx_kncm": 68732.5,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 68732 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 114 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 114",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68732, MSdy=3337 kN·cm; Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 90.38 cm² (2.82%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 209.03,
                "m1d_kncm": 68732.5,
                "status": "OK",
                "md_tot_kncm": 68732.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.4,
                "status": "OK",
                "md_tot_kncm": 3337.42,
                "m2d_kncm": 2055.06,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.52,
            "rho_pct": 3.016,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7327,
            "interacao": 1.0,
            "mrdx_kncm": 73561.72,
            "mrdy_kncm": 161758.53,
            "msdx_kncm": 72978.7,
            "msdy_kncm": 3337.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 328.8 kN, Mdx = 72979 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 114 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1282 kN·cm governa sobre Mdy = 114",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2055, Md,tot=3337 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72979, MSdy=3337 kN·cm; Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.52 cm² (3.02%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          95,
          96,
          97
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=687.3 kN·m (resistido pela dimensão 0.40 m) · My,máx=1.1 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "95": {
            "N_i_kn": 328.8054137091378,
            "N_j_kn": -328.8054137091378,
            "Mz_i_knm": 342.342,
            "Mz_j_knm": 687.325,
            "My_i_knm": 1.14,
            "My_j_knm": 0.146,
            "M_i_knm": 342.342,
            "M_j_knm": 687.325,
            "L_m": 9.35
          },
          "96": {
            "N_i_kn": 47.322156762338636,
            "N_j_kn": -47.322156762338636,
            "Mz_i_knm": 0.063,
            "Mz_j_knm": -0.098,
            "My_i_knm": -0.072,
            "My_j_knm": 0.134,
            "M_i_knm": 0.072,
            "M_j_knm": 0.134,
            "L_m": 0.34999999999999964
          },
          "97": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "2R0mm6Yr91ZwmVbAxJnp4w",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 71.95,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=71.95.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 89.97,
            "rho_pct": 2.811,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6789,
            "interacao": 1.0,
            "mrdx_kncm": 69037.51,
            "mrdy_kncm": 151592.98,
            "msdx_kncm": 68446.0,
            "msdy_kncm": 3338.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.0 kN, Mdx = 68446 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 386 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 386",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68446, MSdy=3339 kN·cm; Resiste com As = 89.97 cm² (2.81%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 89.97 cm² (2.81%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 208.07,
                "m1d_kncm": 68446.0,
                "status": "OK",
                "md_tot_kncm": 68446.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.9,
                "status": "OK",
                "md_tot_kncm": 3338.94,
                "m2d_kncm": 2056.0,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.1,
            "rho_pct": 3.003,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7292,
            "interacao": 1.0,
            "mrdx_kncm": 73275.68,
            "mrdy_kncm": 161115.69,
            "msdx_kncm": 72692.2,
            "msdy_kncm": 3338.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.0 kN, Mdx = 72692 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 386 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 386",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72692, MSdy=3339 kN·cm; Resiste com As = 96.10 cm² (3.00%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.10 cm² (3.00%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          98,
          99,
          100
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=684.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=3.9 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "98": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.29999999999999893
          },
          "99": {
            "N_i_kn": 47.43110931701085,
            "N_j_kn": -47.43110931701085,
            "Mz_i_knm": 3.413,
            "Mz_j_knm": -3.722,
            "My_i_knm": 0.759,
            "My_j_knm": -0.621,
            "M_i_knm": 3.413,
            "M_j_knm": 3.722,
            "L_m": 0.34999999999999964
          },
          "100": {
            "N_i_kn": 328.96374055942493,
            "N_j_kn": -328.96374055942493,
            "Mz_i_knm": -684.46,
            "Mz_j_knm": -340.96,
            "My_i_knm": 0.736,
            "My_j_knm": 3.855,
            "M_i_knm": 684.46,
            "M_j_knm": 340.96,
            "L_m": 9.349999999999998
          }
        }
      }
    },
    {
      "id": "1sBHUDDcX0yhwjZ9I68C0_",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.73,
              "alpha_b": 0.8021,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8021,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.73 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1114,
            "interacao": 0.7727,
            "mrdx_kncm": 19941.7,
            "mrdy_kncm": 41465.73,
            "msdx_kncm": 14355.5,
            "msdy_kncm": 6018.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6944 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 117 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 117",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=14355 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14355, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7727 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7727 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.71,
                "m1d_kncm": 6943.7,
                "status": "OK",
                "md_tot_kncm": 14355.45,
                "m2d_kncm": 7411.75,
                "nu": 0.0649,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.5,
                "status": "OK",
                "md_tot_kncm": 6018.34,
                "m2d_kncm": 3705.88,
                "nu": 0.0649,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.24,
            "rho_pct": 0.414,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1472,
            "interacao": 1.0,
            "mrdx_kncm": 20248.56,
            "mrdy_kncm": 42142.59,
            "msdx_kncm": 18601.6,
            "msdy_kncm": 6018.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11190 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 117 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 117",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=18602 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18602, MSdy=6018 kN·cm; Resiste com As = 13.24 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.24 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          101,
          102,
          103
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=69.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=1.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "101": {
            "N_i_kn": 592.9432283307941,
            "N_j_kn": -592.9432283307941,
            "Mz_i_knm": 35.09,
            "Mz_j_knm": 69.437,
            "My_i_knm": -1.172,
            "My_j_knm": -0.27,
            "M_i_knm": 35.09,
            "M_j_knm": 69.437,
            "L_m": 9.35
          },
          "102": {
            "N_i_kn": 47.42445592900731,
            "N_j_kn": -47.42445592900731,
            "Mz_i_knm": 0.332,
            "Mz_j_knm": -0.321,
            "My_i_knm": 0.365,
            "My_j_knm": -0.433,
            "M_i_knm": 0.365,
            "M_j_knm": 0.433,
            "L_m": 0.34999999999999964
          },
          "103": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "3twD0DKn51aRbxxZ2$FLi8",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.72,
              "alpha_b": 0.8025,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8025,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.72 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1114,
            "interacao": 0.7731,
            "mrdx_kncm": 19941.7,
            "mrdy_kncm": 41465.73,
            "msdx_kncm": 14361.1,
            "msdy_kncm": 6018.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 6949 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 82 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 82",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=14361 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14361, MSdy=6018 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7731 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7731 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.72,
                "m1d_kncm": 6949.4,
                "status": "OK",
                "md_tot_kncm": 14361.15,
                "m2d_kncm": 7411.75,
                "nu": 0.0649,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 2312.5,
                "status": "OK",
                "md_tot_kncm": 6018.34,
                "m2d_kncm": 3705.88,
                "nu": 0.0649,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.25,
            "rho_pct": 0.414,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1472,
            "interacao": 1.0,
            "mrdx_kncm": 20254.04,
            "mrdy_kncm": 42154.68,
            "msdx_kncm": 18607.3,
            "msdy_kncm": 6018.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 592.9 kN, Mdx = 11196 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 82 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 2312 kN·cm governa sobre Mdy = 82",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=7412, Md,tot=18607 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3706, Md,tot=6018 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=18607, MSdy=6018 kN·cm; Resiste com As = 13.25 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.25 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          104,
          105,
          106
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=69.5 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.8 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "104": {
            "N_i_kn": 592.9434632843191,
            "N_j_kn": -592.9434632843191,
            "Mz_i_knm": -35.182,
            "Mz_j_knm": -69.494,
            "My_i_knm": -0.822,
            "My_j_knm": -0.3,
            "M_i_knm": 35.182,
            "M_j_knm": 69.494,
            "L_m": 9.35
          },
          "105": {
            "N_i_kn": 47.42418508611809,
            "N_j_kn": -47.42418508611809,
            "Mz_i_knm": -0.341,
            "Mz_j_knm": 0.323,
            "My_i_knm": 0.245,
            "My_j_knm": -0.383,
            "M_i_knm": 0.341,
            "M_j_knm": 0.383,
            "L_m": 0.34999999999999964
          },
          "106": {
            "N_i_kn": 1.679999999996653,
            "N_j_kn": -1.679999999996653,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "3PhBVHoEX0vf60zYAfRNAh",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 71.96,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=71.96.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 89.96,
            "rho_pct": 2.811,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.6788,
            "interacao": 1.0,
            "mrdx_kncm": 69034.49,
            "mrdy_kncm": 151586.19,
            "msdx_kncm": 68442.8,
            "msdy_kncm": 3338.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.0 kN, Mdx = 68443 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 66 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 66",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=68443, MSdy=3339 kN·cm; Resiste com As = 89.96 cm² (2.81%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 89.96 cm² (2.81%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 208.06,
                "m1d_kncm": 68442.8,
                "status": "OK",
                "md_tot_kncm": 68442.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 3.9,
                "m1d_kncm": 1282.9,
                "status": "OK",
                "md_tot_kncm": 3338.94,
                "m2d_kncm": 2056.0,
                "nu": 0.036,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "WARN",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "WARN",
            "as_necessaria_cm2": 96.1,
            "rho_pct": 3.003,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.7292,
            "interacao": 1.0,
            "mrdx_kncm": 73272.66,
            "mrdy_kncm": 161108.86,
            "msdx_kncm": 72689.0,
            "msdy_kncm": 3338.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 30.3297,
            "v_vento_base_kn": 15.1648,
            "w_vento_kn_m": 2.42638,
            "largura_tributaria_m": 10.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 329.0 kN, Mdx = 72689 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 66 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·80) = 1283 kN·cm governa sobre Mdy = 66",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=2056, Md,tot=3339 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=72689, MSdy=3339 kN·cm; Resiste com As = 96.10 cm² (3.00%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade)."
            ],
            "avisos": [
              "taxa de armadura 3.0%·Ac é alta para execução (o limite normativo é 4%·Ac fora de emendas; acima de ~3% o detalhamento costuma não caber)"
            ]
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 96.10 cm² (3.00%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0. ⚠ taxa acima de 3%·Ac: passa no limite NORMATIVO de 4%, mas o congestionamento de barras costuma inviabilizar a execução (3% NÃO é limite de norma, é alerta de exequibilidade).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          107,
          108,
          109
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=684.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=0.7 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "107": {
            "N_i_kn": 328.960125452302,
            "N_j_kn": -328.960125452302,
            "Mz_i_knm": 340.88,
            "Mz_j_knm": 684.428,
            "My_i_knm": 0.662,
            "My_j_knm": -0.246,
            "M_i_knm": 340.88,
            "M_j_knm": 684.428,
            "L_m": 9.35
          },
          "108": {
            "N_i_kn": 47.43080729470785,
            "N_j_kn": -47.43080729470785,
            "Mz_i_knm": 3.715,
            "Mz_j_knm": -3.409,
            "My_i_knm": 0.321,
            "My_j_knm": -0.23,
            "M_i_knm": 3.715,
            "M_j_knm": 3.409,
            "L_m": 0.34999999999999964
          },
          "109": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1EQG9vznX7pePnzHCNpDuA",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.71,
              "alpha_b": 0.7993,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.71.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 74.29,
            "rho_pct": 2.322,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.5489,
            "interacao": 1.0,
            "mrdx_kncm": 57239.32,
            "mrdy_kncm": 125141.76,
            "msdx_kncm": 56221.5,
            "msdy_kncm": 5062.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 56222 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3404 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1658, Md,tot=5062 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=56222, MSdy=5062 kN·cm; Resiste com As = 74.29 cm² (2.32%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 74.29 cm² (2.32%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 211.96,
                "m1d_kncm": 56221.5,
                "status": "OK",
                "md_tot_kncm": 56221.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 12.83,
                "m1d_kncm": 3404.3,
                "status": "OK",
                "md_tot_kncm": 5062.05,
                "m2d_kncm": 1657.75,
                "nu": 0.029,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 78.09,
            "rho_pct": 2.44,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.5792,
            "interacao": 1.0,
            "mrdx_kncm": 59861.28,
            "mrdy_kncm": 131026.02,
            "msdx_kncm": 58854.1,
            "msdy_kncm": 5062.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 18.8044,
            "v_vento_base_kn": 9.4022,
            "w_vento_kn_m": 1.50435,
            "largura_tributaria_m": 6.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 58854 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3404 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1658, Md,tot=5062 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=58854, MSdy=5062 kN·cm; Resiste com As = 78.09 cm² (2.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 78.09 cm² (2.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          110,
          111,
          112
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=562.2 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.0 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "110": {
            "N_i_kn": 265.2423575872022,
            "N_j_kn": -265.2423575872022,
            "Mz_i_knm": -280.12,
            "Mz_j_knm": -562.215,
            "My_i_knm": 13.31,
            "My_j_knm": 32.173,
            "M_i_knm": 280.12,
            "M_j_knm": 562.215,
            "L_m": 9.349999999999998
          },
          "111": {
            "N_i_kn": 26.168557888747273,
            "N_j_kn": -26.168557888747273,
            "Mz_i_knm": 3.772,
            "Mz_j_knm": -3.513,
            "My_i_knm": -32.29,
            "My_j_knm": 34.043,
            "M_i_knm": 32.29,
            "M_j_knm": 34.043,
            "L_m": 0.34999999999999964
          },
          "112": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.29999999999999893
          }
        }
      }
    },
    {
      "id": "0J3D2yvYH7B9t5_rR5tRJT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.84,
              "alpha_b": 0.8017,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.8017,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.84 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.0934,
            "interacao": 0.7132,
            "mrdx_kncm": 18135.83,
            "mrdy_kncm": 37699.87,
            "msdx_kncm": 11742.7,
            "msdy_kncm": 6423.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 5740 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3422 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6002, Md,tot=11743 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6424 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=11743, MSdy=6424 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7132 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7132 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.95,
                "m1d_kncm": 5740.2,
                "status": "OK",
                "md_tot_kncm": 11742.7,
                "m2d_kncm": 6002.5,
                "nu": 0.0525,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 7.13,
                "m1d_kncm": 3422.3,
                "status": "OK",
                "md_tot_kncm": 6423.55,
                "m2d_kncm": 3001.25,
                "nu": 0.0525,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1151,
            "interacao": 0.8762,
            "mrdx_kncm": 18135.83,
            "mrdy_kncm": 37699.87,
            "msdx_kncm": 14375.3,
            "msdy_kncm": 6423.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 18.8044,
            "v_vento_base_kn": 9.4022,
            "w_vento_kn_m": 1.50435,
            "largura_tributaria_m": 6.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 8373 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3422 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6002, Md,tot=14375 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6424 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14375, MSdy=6424 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8762 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8762 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          113,
          114,
          115
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=57.4 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "113": {
            "N_i_kn": 480.20492861641253,
            "N_j_kn": -480.20492861641253,
            "Mz_i_knm": 28.938,
            "Mz_j_knm": 57.402,
            "My_i_knm": 15.933,
            "My_j_knm": 32.535,
            "M_i_knm": 28.938,
            "M_j_knm": 57.402,
            "L_m": 9.35
          },
          "114": {
            "N_i_kn": 26.20463362556802,
            "N_j_kn": -26.20463362556802,
            "Mz_i_knm": -0.349,
            "Mz_j_knm": 0.337,
            "My_i_knm": -32.439,
            "My_j_knm": 34.223,
            "M_i_knm": 32.439,
            "M_j_knm": 34.223,
            "L_m": 0.34999999999999964
          },
          "115": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "0RJTgU941EfOuGFUOA37vP",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 35.8,
              "alpha_b": 0.803,
              "second_order_required": true,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 35.0,
              "alpha_b": 0.803,
              "second_order_required": true,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 > λ1=35.8 → efeitos de 2ª ordem exigidos; dir y: λ=40.5 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.0936,
            "interacao": 0.7144,
            "mrdx_kncm": 18136.0,
            "mrdy_kncm": 37700.22,
            "msdx_kncm": 11762.1,
            "msdy_kncm": 6426.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 5760 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3425 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6003, Md,tot=11762 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6426 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=11762, MSdy=6426 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7144 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.7144 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 11.99,
                "m1d_kncm": 5759.5,
                "status": "OK",
                "md_tot_kncm": 11762.12,
                "m2d_kncm": 6002.62,
                "nu": 0.0525,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 7.13,
                "m1d_kncm": 3424.9,
                "status": "OK",
                "md_tot_kncm": 6426.21,
                "m2d_kncm": 3001.31,
                "nu": 0.0525,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.8,
            "rho_pct": 0.4,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.1152,
            "interacao": 0.8775,
            "mrdx_kncm": 18136.0,
            "mrdy_kncm": 37700.22,
            "msdx_kncm": 14394.7,
            "msdy_kncm": 6426.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 18.8044,
            "v_vento_base_kn": 9.4022,
            "w_vento_kn_m": 1.50435,
            "largura_tributaria_m": 6.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 480.2 kN, Mdx = 8392 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3425 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=86.6 > λ1=35.0 ⇒ 2ª ordem; M2d=6003, Md,tot=14395 kN·cm",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=3001, Md,tot=6426 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=14395, MSdy=6426 kN·cm; Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8775 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=12.80 cm² (0.40%·Ac); interação = 0.8775 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          116,
          117,
          118
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=57.6 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.2 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "116": {
            "N_i_kn": 480.2119023276127,
            "N_j_kn": -480.2119023276127,
            "Mz_i_knm": -29.234,
            "Mz_j_knm": -57.595,
            "My_i_knm": 16.275,
            "My_j_knm": 32.473,
            "M_i_knm": 29.234,
            "M_j_knm": 57.595,
            "L_m": 9.35
          },
          "117": {
            "N_i_kn": 26.20972221305965,
            "N_j_kn": -26.20972221305965,
            "Mz_i_knm": 0.348,
            "Mz_j_knm": -0.341,
            "My_i_knm": -32.527,
            "My_j_knm": 34.249,
            "M_i_knm": 32.527,
            "M_j_knm": 34.249,
            "L_m": 0.34999999999999964
          },
          "118": {
            "N_i_kn": 1.679999999998472,
            "N_j_kn": -1.679999999998472,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "0ulDlm6Cz2ZOYS_zD0g1kv",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 40.0,
            "h_cm": 80.0,
            "area_cm2": 3200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 40 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 81.0,
              "lambda1": 90.0,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 40.0
            },
            "y": {
              "lambda": 40.5,
              "lambda1": 72.71,
              "alpha_b": 0.7992,
              "second_order_required": false,
              "h_cm": 80.0
            }
          },
          "message": "dir x: λ=81.0 vs λ1=90.0; dir y: λ=40.5 vs λ1=72.71.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 74.29,
            "rho_pct": 2.321,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.5488,
            "interacao": 1.0,
            "mrdx_kncm": 57236.45,
            "mrdy_kncm": 125135.29,
            "msdx_kncm": 56211.7,
            "msdy_kncm": 5089.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.3 kN, Mdx = 56212 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3431 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1658, Md,tot=5089 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=56212, MSdy=5089 kN·cm; Resiste com As = 74.29 cm² (2.32%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 74.29 cm² (2.32%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 86.6,
                "lambda1": 90.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 40.0,
                "e1_cm": 211.89,
                "m1d_kncm": 56211.7,
                "status": "OK",
                "md_tot_kncm": 56211.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              },
              "y": {
                "lambda": 43.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 1000.0,
                "h_cm": 80.0,
                "e1_cm": 12.93,
                "m1d_kncm": 3431.0,
                "status": "OK",
                "md_tot_kncm": 5089.06,
                "m2d_kncm": 1658.06,
                "nu": 0.029,
                "inv_r_1_cm": 6.25e-05,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 10.0,
            "le_m": 10.0,
            "le_trecho_malha_m": 9.35,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=86.6 vs λ1=90.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2); dir y: λ=43.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 78.09,
            "rho_pct": 2.44,
            "as_max_cm2": 128.0,
            "as_min_cm2": 12.8,
            "interacao_com_as_max": 0.5792,
            "interacao": 1.0,
            "mrdx_kncm": 59858.43,
            "mrdy_kncm": 131019.56,
            "msdx_kncm": 58844.3,
            "msdy_kncm": 5089.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 18.8044,
            "v_vento_base_kn": 9.4022,
            "w_vento_kn_m": 1.50435,
            "largura_tributaria_m": 6.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 40×80 cm, fck 40 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.3 kN, Mdx = 58844 kN·cm (flexão na direção x, profundidade 40 cm), Mdy = 3431 kN·cm (profundidade 80 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 12.80 cm² · As,máx = 4%·Ac = 128.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·10 m = 10 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção y: λ=43.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1658, Md,tot=5089 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=58844, MSdy=5089 kN·cm; Resiste com As = 78.09 cm² (2.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 78.09 cm² (2.44%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          119,
          120,
          121
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=562.1 kN·m (resistido pela dimensão 0.40 m) · My,máx=34.3 kN·m (dimensão 0.80 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=9.35 m é o maior TRECHO entre nós; a altura real do pilar é 10.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "119": {
            "N_i_kn": 265.28549070072484,
            "N_j_kn": -265.28549070072484,
            "Mz_i_knm": 279.872,
            "Mz_j_knm": 562.117,
            "My_i_knm": 17.676,
            "My_j_knm": 32.427,
            "M_i_knm": 279.872,
            "M_j_knm": 562.117,
            "L_m": 9.35
          },
          "120": {
            "N_i_kn": 26.221765504566974,
            "N_j_kn": -26.221765504566974,
            "Mz_i_knm": -3.792,
            "Mz_j_knm": 3.507,
            "My_i_knm": -32.352,
            "My_j_knm": 34.31,
            "M_i_knm": 32.352,
            "M_j_knm": 34.31,
            "L_m": 0.34999999999999964
          },
          "121": {
            "N_i_kn": 1.680000000000291,
            "N_j_kn": -1.680000000000291,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.3000000000000007
          }
        }
      }
    },
    {
      "id": "1Er5Lg_o96nRCTyHKGrouA",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 79.62,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 67.55,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 vs λ1=79.62; dir y: λ=49.4 vs λ1=67.55.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.78,
            "rho_pct": 1.065,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2411,
            "interacao": 1.0,
            "mrdx_kncm": 7423.68,
            "mrdy_kncm": 10373.0,
            "msdx_kncm": 6536.1,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6138 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=63.5 ⇒ 2ª ordem; M2d=398, Md,tot=6536 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6536, MSdy=2035 kN·cm; Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 63.51,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 92.44,
                "m1d_kncm": 6137.7,
                "status": "OK",
                "md_tot_kncm": 6536.1,
                "m2d_kncm": 398.4,
                "nu": 0.0258,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 26.15,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2035.1,
                "m2d_kncm": 298.8,
                "nu": 0.0258,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=63.51 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.7,
            "rho_pct": 1.142,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2586,
            "interacao": 1.0,
            "mrdx_kncm": 7864.89,
            "mrdy_kncm": 11009.46,
            "msdx_kncm": 6990.3,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 3.2444,
            "v_vento_base_kn": 2.7037,
            "w_vento_kn_m": 0.72098,
            "largura_tributaria_m": 5.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6592 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=66.4 ⇒ 2ª ordem; M2d=398, Md,tot=6990 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6990, MSdy=2035 kN·cm; Resiste com As = 13.70 cm² (1.14%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.70 cm² (1.14%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          122,
          123,
          124
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=61.4 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "122": {
            "N_i_kn": 0.5249999999998636,
            "N_j_kn": -0.5249999999998636,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25000000000000266
          },
          "123": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.363,
            "My_j_knm": -17.137,
            "M_i_knm": 17.363,
            "M_j_knm": 17.137,
            "L_m": 0.05000000000000071
          },
          "124": {
            "N_i_kn": 66.39672831408316,
            "N_j_kn": -66.39672831408316,
            "Mz_i_knm": -61.377,
            "Mz_j_knm": -30.341,
            "My_i_knm": 17.137,
            "My_j_knm": 8.655,
            "M_i_knm": 61.377,
            "M_j_knm": 30.341,
            "L_m": 5.700000000000002
          }
        }
      }
    },
    {
      "id": "1dKy8Bb_H8YvDVCKpwdV0y",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0622,
            "interacao": 0.5604,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 1171.4,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 505 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=1171 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1171, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 4.55,
                "m1d_kncm": 504.9,
                "status": "OK",
                "md_tot_kncm": 1171.38,
                "m2d_kncm": 666.48,
                "nu": 0.0432,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.63,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2236.16,
                "m2d_kncm": 499.86,
                "nu": 0.0432,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0877,
            "interacao": 0.7831,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 2079.5,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 6.4864,
            "v_vento_base_kn": 5.4054,
            "w_vento_kn_m": 1.44143,
            "largura_tributaria_m": 3.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 1413 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=2079 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2079, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.7831 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.7831 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          125,
          126,
          127
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "125": {
            "N_i_kn": 111.08315970857794,
            "N_j_kn": -111.08315970857794,
            "Mz_i_knm": 2.749,
            "Mz_j_knm": 5.049,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "126": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "127": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "08mdd4jYL0uebX0s6Czz9y",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0554,
            "interacao": 0.5049,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 915.7,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 29 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 29",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=916 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=916, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 261.6,
                "status": "OK",
                "md_tot_kncm": 915.68,
                "m2d_kncm": 654.06,
                "nu": 0.0424,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.93,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2226.84,
                "m2d_kncm": 490.55,
                "nu": 0.0424,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0611,
            "interacao": 0.5549,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 1137.3,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 3.2444,
            "v_vento_base_kn": 2.7037,
            "w_vento_kn_m": 0.72098,
            "largura_tributaria_m": 5.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 483 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=1137 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1137, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5549 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5549 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          128,
          129,
          130
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.3 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "128": {
            "N_i_kn": 109.01395220643423,
            "N_j_kn": -109.01395220643423,
            "Mz_i_knm": -0.033,
            "Mz_j_knm": -0.29,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "129": {
            "N_i_kn": 15.155000000002474,
            "N_j_kn": -15.155000000002474,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "130": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0MOVVaZdHCgetildBn9ZWt",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0555,
            "interacao": 0.5051,
            "mrdx_kncm": 4043.63,
            "mrdy_kncm": 5521.13,
            "msdx_kncm": 917.2,
            "msdy_kncm": 2227.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.2 kN, Mdx = 0 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 0",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=655, Md,tot=917 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2228 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=917, MSdy=2228 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5051 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5051 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 262.1,
                "status": "OK",
                "md_tot_kncm": 917.2,
                "m2d_kncm": 655.14,
                "nu": 0.0425,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.9,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2227.65,
                "m2d_kncm": 491.36,
                "nu": 0.0425,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0727,
            "interacao": 0.6562,
            "mrdx_kncm": 4043.63,
            "mrdy_kncm": 5521.13,
            "msdx_kncm": 1563.2,
            "msdy_kncm": 2227.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 6.4864,
            "v_vento_base_kn": 5.4054,
            "w_vento_kn_m": 1.44143,
            "largura_tributaria_m": 3.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.2 kN, Mdx = 908 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=655, Md,tot=1563 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2228 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1563, MSdy=2228 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.6562 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.6562 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          131,
          132,
          133
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "131": {
            "N_i_kn": 109.19031954179162,
            "N_j_kn": -109.19031954179162,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "132": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "133": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0N9_WhMMf9SRatvcqVHBqR",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0554,
            "interacao": 0.5049,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 915.7,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 29 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 29",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=916 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=916, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 261.6,
                "status": "OK",
                "md_tot_kncm": 915.68,
                "m2d_kncm": 654.06,
                "nu": 0.0424,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.93,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2226.84,
                "m2d_kncm": 490.55,
                "nu": 0.0424,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0611,
            "interacao": 0.5549,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 1137.3,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 3.2444,
            "v_vento_base_kn": 2.7037,
            "w_vento_kn_m": 0.72098,
            "largura_tributaria_m": 5.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 483 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=1137 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1137, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5549 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5549 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          134,
          135,
          136
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.3 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "134": {
            "N_i_kn": 109.0139522064349,
            "N_j_kn": -109.0139522064349,
            "Mz_i_knm": 0.033,
            "Mz_j_knm": 0.29,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "135": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "136": {
            "N_i_kn": 0.5249999999996362,
            "N_j_kn": -0.5249999999996362,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3oeL95PPzAWAYwLjKn_l2N",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0622,
            "interacao": 0.5604,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 1171.4,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 505 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=1171 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1171, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 4.55,
                "m1d_kncm": 504.9,
                "status": "OK",
                "md_tot_kncm": 1171.38,
                "m2d_kncm": 666.48,
                "nu": 0.0432,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.63,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2236.16,
                "m2d_kncm": 499.86,
                "nu": 0.0432,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.98,
            "rho_pct": 0.415,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.1157,
            "interacao": 0.9999,
            "mrdx_kncm": 4155.27,
            "mrdy_kncm": 5678.44,
            "msdx_kncm": 2987.6,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 12.9728,
            "v_vento_base_kn": 10.8107,
            "w_vento_kn_m": 2.88285,
            "largura_tributaria_m": 6.9,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 2321 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=2988 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2988, MSdy=2236 kN·cm; Resiste com As = 4.98 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 4.98 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          137,
          138,
          139
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "137": {
            "N_i_kn": 111.083159708576,
            "N_j_kn": -111.083159708576,
            "Mz_i_knm": -2.749,
            "Mz_j_knm": -5.049,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "138": {
            "N_i_kn": 15.155000000002474,
            "N_j_kn": -15.155000000002474,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "139": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "08_6$t2R9A_PplF32Z1XL_",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 79.62,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 67.55,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 vs λ1=79.62; dir y: λ=49.4 vs λ1=67.55.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.78,
            "rho_pct": 1.065,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2411,
            "interacao": 1.0,
            "mrdx_kncm": 7423.68,
            "mrdy_kncm": 10373.0,
            "msdx_kncm": 6536.1,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6138 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=63.5 ⇒ 2ª ordem; M2d=398, Md,tot=6536 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6536, MSdy=2035 kN·cm; Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 63.51,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 92.44,
                "m1d_kncm": 6137.7,
                "status": "OK",
                "md_tot_kncm": 6536.1,
                "m2d_kncm": 398.4,
                "nu": 0.0258,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 26.15,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2035.1,
                "m2d_kncm": 298.8,
                "nu": 0.0258,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=63.51 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.7,
            "rho_pct": 1.142,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2586,
            "interacao": 1.0,
            "mrdx_kncm": 7864.89,
            "mrdy_kncm": 11009.46,
            "msdx_kncm": 6990.3,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 3.2444,
            "v_vento_base_kn": 2.7037,
            "w_vento_kn_m": 0.72098,
            "largura_tributaria_m": 5.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6592 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=66.4 ⇒ 2ª ordem; M2d=398, Md,tot=6990 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6990, MSdy=2035 kN·cm; Resiste com As = 13.70 cm² (1.14%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.70 cm² (1.14%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          140,
          141,
          142
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=61.4 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "140": {
            "N_i_kn": 66.39672831410205,
            "N_j_kn": -66.39672831410205,
            "Mz_i_knm": 30.341,
            "Mz_j_knm": 61.377,
            "My_i_knm": -8.655,
            "My_j_knm": -17.137,
            "M_i_knm": 30.341,
            "M_j_knm": 61.377,
            "L_m": 5.699999999999999
          },
          "141": {
            "N_i_kn": 15.154999999999745,
            "N_j_kn": -15.154999999999745,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 17.137,
            "My_j_knm": -17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "142": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3awpxTCJ1Eb8LBtxmEBdoy",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 79.62,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 67.55,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 vs λ1=79.62; dir y: λ=49.4 vs λ1=67.55.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.78,
            "rho_pct": 1.065,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2411,
            "interacao": 1.0,
            "mrdx_kncm": 7423.68,
            "mrdy_kncm": 10373.0,
            "msdx_kncm": 6536.1,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6138 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=63.5 ⇒ 2ª ordem; M2d=398, Md,tot=6536 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6536, MSdy=2035 kN·cm; Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 63.51,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 92.44,
                "m1d_kncm": 6137.7,
                "status": "OK",
                "md_tot_kncm": 6536.1,
                "m2d_kncm": 398.4,
                "nu": 0.0258,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 26.15,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2035.1,
                "m2d_kncm": 298.8,
                "nu": 0.0258,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=63.51 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.49,
            "rho_pct": 1.124,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2545,
            "interacao": 1.0,
            "mrdx_kncm": 7763.09,
            "mrdy_kncm": 10862.54,
            "msdx_kncm": 6885.5,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 2.4957,
            "v_vento_base_kn": 2.0797,
            "w_vento_kn_m": 0.5546,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6487 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=65.7 ⇒ 2ª ordem; M2d=398, Md,tot=6886 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6886, MSdy=2035 kN·cm; Resiste com As = 13.49 cm² (1.12%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.49 cm² (1.12%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          143,
          144,
          145
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=61.4 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "143": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25000000000000266
          },
          "144": {
            "N_i_kn": 15.154999999998836,
            "N_j_kn": -15.154999999998836,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -17.363,
            "My_j_knm": 17.137,
            "M_i_knm": 17.363,
            "M_j_knm": 17.137,
            "L_m": 0.05000000000000071
          },
          "145": {
            "N_i_kn": 66.39672831408326,
            "N_j_kn": -66.39672831408326,
            "Mz_i_knm": -61.377,
            "Mz_j_knm": -30.341,
            "My_i_knm": -17.137,
            "My_j_knm": -8.655,
            "M_i_knm": 61.377,
            "M_j_knm": 30.341,
            "L_m": 5.700000000000002
          }
        }
      }
    },
    {
      "id": "2z93azsfPEpwBMLd2B7HSP",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0622,
            "interacao": 0.5604,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 1171.4,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 505 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=1171 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1171, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 4.55,
                "m1d_kncm": 504.9,
                "status": "OK",
                "md_tot_kncm": 1171.38,
                "m2d_kncm": 666.48,
                "nu": 0.0432,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.63,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2236.16,
                "m2d_kncm": 499.86,
                "nu": 0.0432,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0877,
            "interacao": 0.7831,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 2079.5,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 6.4864,
            "v_vento_base_kn": 5.4054,
            "w_vento_kn_m": 1.44143,
            "largura_tributaria_m": 3.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 1413 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=2079 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2079, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.7831 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.7831 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          146,
          147,
          148
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "146": {
            "N_i_kn": 111.08315970857792,
            "N_j_kn": -111.08315970857792,
            "Mz_i_knm": 2.749,
            "Mz_j_knm": 5.049,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "147": {
            "N_i_kn": 15.155000000002474,
            "N_j_kn": -15.155000000002474,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "148": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "34WI8DbCT6B9Gkdm5iSoHT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0554,
            "interacao": 0.5049,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 915.7,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 29 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 29",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=916 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=916, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 261.6,
                "status": "OK",
                "md_tot_kncm": 915.68,
                "m2d_kncm": 654.06,
                "nu": 0.0424,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.93,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2226.84,
                "m2d_kncm": 490.55,
                "nu": 0.0424,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0584,
            "interacao": 0.531,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 1032.5,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 2.4957,
            "v_vento_base_kn": 2.0797,
            "w_vento_kn_m": 0.5546,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 378 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=1032 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1032, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.531 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.531 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          149,
          150,
          151
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.3 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "149": {
            "N_i_kn": 109.01395220643387,
            "N_j_kn": -109.01395220643387,
            "Mz_i_knm": -0.033,
            "Mz_j_knm": -0.29,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "150": {
            "N_i_kn": 15.154999999998836,
            "N_j_kn": -15.154999999998836,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "151": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3vfh7rb7jEVuVkPIwM$zgo",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0555,
            "interacao": 0.5051,
            "mrdx_kncm": 4043.63,
            "mrdy_kncm": 5521.13,
            "msdx_kncm": 917.2,
            "msdy_kncm": 2227.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.2 kN, Mdx = 0 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 0",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=655, Md,tot=917 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2228 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=917, MSdy=2228 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5051 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5051 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 262.1,
                "status": "OK",
                "md_tot_kncm": 917.2,
                "m2d_kncm": 655.14,
                "nu": 0.0425,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.9,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2227.65,
                "m2d_kncm": 491.36,
                "nu": 0.0425,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0727,
            "interacao": 0.6562,
            "mrdx_kncm": 4043.63,
            "mrdy_kncm": 5521.13,
            "msdx_kncm": 1563.2,
            "msdy_kncm": 2227.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 6.4864,
            "v_vento_base_kn": 5.4054,
            "w_vento_kn_m": 1.44143,
            "largura_tributaria_m": 3.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.2 kN, Mdx = 908 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=655, Md,tot=1563 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2228 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1563, MSdy=2228 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.6562 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.6562 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          152,
          153,
          154
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "152": {
            "N_i_kn": 109.1903195417907,
            "N_j_kn": -109.1903195417907,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "153": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "154": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3iBTcrGQDFRw7iD$fc5FFR",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0554,
            "interacao": 0.5049,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 915.7,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 29 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·30) = 262 kN·cm governa sobre Mdx = 29",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=916 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=916, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5049 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 2.4,
                "m1d_kncm": 261.6,
                "status": "OK",
                "md_tot_kncm": 915.68,
                "m2d_kncm": 654.06,
                "nu": 0.0424,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.93,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2226.84,
                "m2d_kncm": 490.55,
                "nu": 0.0424,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0584,
            "interacao": 0.531,
            "mrdx_kncm": 4041.51,
            "mrdy_kncm": 5518.22,
            "msdx_kncm": 1032.5,
            "msdy_kncm": 2226.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 2.4957,
            "v_vento_base_kn": 2.0797,
            "w_vento_kn_m": 0.5546,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.0 kN, Mdx = 378 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=654, Md,tot=1032 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=491, Md,tot=2227 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1032, MSdy=2227 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.531 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.531 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          155,
          156,
          157
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.3 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "155": {
            "N_i_kn": 109.01395220643437,
            "N_j_kn": -109.01395220643437,
            "Mz_i_knm": 0.033,
            "Mz_j_knm": 0.29,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "156": {
            "N_i_kn": 15.155000000000655,
            "N_j_kn": -15.155000000000655,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "157": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1MVJWkw2n6gvyy$Pt7iaAe",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 35.0,
              "alpha_b": 0.9948,
              "second_order_required": true,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=49.4 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.8,
            "rho_pct": 0.4,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.0622,
            "interacao": 0.5604,
            "mrdx_kncm": 4065.76,
            "mrdy_kncm": 5551.74,
            "msdx_kncm": 1171.4,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 505 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=1171 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1171, MSdy=2236 kN·cm; Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=4.80 cm² (0.40%·Ac); interação = 0.5604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 4.55,
                "m1d_kncm": 504.9,
                "status": "OK",
                "md_tot_kncm": 1171.38,
                "m2d_kncm": 666.48,
                "nu": 0.0432,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 15.63,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2236.16,
                "m2d_kncm": 499.86,
                "nu": 0.0432,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.98,
            "rho_pct": 0.415,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.1157,
            "interacao": 0.9999,
            "mrdx_kncm": 4155.27,
            "mrdy_kncm": 5678.44,
            "msdx_kncm": 2987.6,
            "msdy_kncm": 2236.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 12.9728,
            "v_vento_base_kn": 10.8107,
            "w_vento_kn_m": 2.88285,
            "largura_tributaria_m": 6.9,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 111.1 kN, Mdx = 2321 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=666, Md,tot=2988 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=500, Md,tot=2236 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2988, MSdy=2236 kN·cm; Resiste com As = 4.98 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 4.98 cm² (0.42%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          158,
          159,
          160
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.0 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "158": {
            "N_i_kn": 111.08315970857615,
            "N_j_kn": -111.08315970857615,
            "Mz_i_knm": -2.749,
            "Mz_j_knm": -5.049,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 8.655,
            "M_j_knm": 17.137,
            "L_m": 5.699999999999999
          },
          "159": {
            "N_i_kn": 15.155000000002474,
            "N_j_kn": -15.155000000002474,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "160": {
            "N_i_kn": 0.525000000000091,
            "N_j_kn": -0.525000000000091,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0Rjy2WYo1348pxNG2mbsib",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 30.0,
            "h_cm": 40.0,
            "area_cm2": 1200.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 30 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 65.8,
              "lambda1": 79.62,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 30.0
            },
            "y": {
              "lambda": 49.4,
              "lambda1": 67.55,
              "alpha_b": 0.7977,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=65.8 vs λ1=79.62; dir y: λ=49.4 vs λ1=67.55.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.78,
            "rho_pct": 1.065,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2411,
            "interacao": 1.0,
            "mrdx_kncm": 7423.68,
            "mrdy_kncm": 10373.0,
            "msdx_kncm": 6536.1,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6138 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=63.5 ⇒ 2ª ordem; M2d=398, Md,tot=6536 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6536, MSdy=2035 kN·cm; Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 12.78 cm² (1.06%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 63.51,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 30.0,
                "e1_cm": 92.44,
                "m1d_kncm": 6137.7,
                "status": "OK",
                "md_tot_kncm": 6536.1,
                "m2d_kncm": 398.4,
                "nu": 0.0258,
                "inv_r_1_cm": 0.00016666666666666666,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 52.0,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 600.0,
                "h_cm": 40.0,
                "e1_cm": 26.15,
                "m1d_kncm": 1736.3,
                "status": "OK",
                "md_tot_kncm": 2035.1,
                "m2d_kncm": 298.8,
                "nu": 0.0258,
                "inv_r_1_cm": 0.000125,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              }
            },
            "altura_real_m": 6.0,
            "le_m": 6.0,
            "le_trecho_malha_m": 5.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=63.51 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=52.0 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.49,
            "rho_pct": 1.124,
            "as_max_cm2": 48.0,
            "as_min_cm2": 4.8,
            "interacao_com_as_max": 0.2545,
            "interacao": 1.0,
            "mrdx_kncm": 7763.09,
            "mrdy_kncm": 10862.54,
            "msdx_kncm": 6885.5,
            "msdy_kncm": 2035.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 2.4957,
            "v_vento_base_kn": 2.0797,
            "w_vento_kn_m": 0.5546,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 30×40 cm, fck 30 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 66.4 kN, Mdx = 6487 kN·cm (flexão na direção x, profundidade 30 cm), Mdy = 1736 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 4.80 cm² · As,máx = 4%·Ac = 48.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·6 m = 6 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=65.7 ⇒ 2ª ordem; M2d=398, Md,tot=6886 kN·cm",
              "direção y: λ=52.0 > λ1=35.0 ⇒ 2ª ordem; M2d=299, Md,tot=2035 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6886, MSdy=2035 kN·cm; Resiste com As = 13.49 cm² (1.12%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.49 cm² (1.12%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          161,
          162,
          163
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=61.4 kN·m (resistido pela dimensão 0.30 m) · My,máx=17.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=5.70 m é o maior TRECHO entre nós; a altura real do pilar é 6.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "161": {
            "N_i_kn": 66.39672831410317,
            "N_j_kn": -66.39672831410317,
            "Mz_i_knm": 30.341,
            "Mz_j_knm": 61.377,
            "My_i_knm": 8.655,
            "My_j_knm": 17.137,
            "M_i_knm": 30.341,
            "M_j_knm": 61.377,
            "L_m": 5.699999999999999
          },
          "162": {
            "N_i_kn": 15.154999999999745,
            "N_j_kn": -15.154999999999745,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -17.137,
            "My_j_knm": 17.363,
            "M_i_knm": 17.137,
            "M_j_knm": 17.363,
            "L_m": 0.05000000000000071
          },
          "163": {
            "N_i_kn": 0.5249999999998636,
            "N_j_kn": -0.5249999999998636,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1u0v$SllL1XeR4gM323wg6",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 71.45,
              "alpha_b": 0.8019,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 51.32,
              "alpha_b": 0.8019,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=71.45; dir y: λ=32.0 vs λ1=51.32.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.49,
            "rho_pct": 1.687,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.4147,
            "interacao": 1.0,
            "mrdx_kncm": 4454.19,
            "mrdy_kncm": 10759.51,
            "msdx_kncm": 4168.7,
            "msdy_kncm": 1261.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 74.9 kN, Mdx = 3869 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1262 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=57.3 ⇒ 2ª ordem; M2d=299, Md,tot=4169 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=4169, MSdy=1262 kN·cm; Resiste com As = 13.49 cm² (1.69%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 13.49 cm² (1.69%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 57.3,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 51.68,
                "m1d_kncm": 3869.2,
                "status": "OK",
                "md_tot_kncm": 4168.68,
                "m2d_kncm": 299.48,
                "nu": 0.0524,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 16.85,
                "m1d_kncm": 1261.7,
                "status": "OK",
                "md_tot_kncm": 1261.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=57.3 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 13.68,
            "rho_pct": 1.71,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.4201,
            "interacao": 1.0,
            "mrdx_kncm": 4502.62,
            "mrdy_kncm": 10888.16,
            "msdx_kncm": 4218.1,
            "msdy_kncm": 1261.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.3529,
            "v_vento_base_kn": 0.4412,
            "w_vento_kn_m": 0.17646,
            "largura_tributaria_m": 2.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 74.9 kN, Mdx = 3919 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1262 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=57.7 ⇒ 2ª ordem; M2d=299, Md,tot=4218 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=4218, MSdy=1262 kN·cm; Resiste com As = 13.68 cm² (1.71%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 13.68 cm² (1.71%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          164,
          165,
          166
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=38.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.6 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "164": {
            "N_i_kn": 74.87482839368923,
            "N_j_kn": -74.87482839368923,
            "Mz_i_knm": -19.525,
            "Mz_j_knm": -38.692,
            "My_i_knm": -7.325,
            "My_j_knm": -12.617,
            "M_i_knm": 19.525,
            "M_j_knm": 38.692,
            "L_m": 3.7
          },
          "165": {
            "N_i_kn": 22.409560614318252,
            "N_j_kn": -22.409560614318252,
            "Mz_i_knm": 6.033,
            "Mz_j_knm": -5.996,
            "My_i_knm": 12.053,
            "My_j_knm": -12.335,
            "M_i_knm": 12.053,
            "M_j_knm": 12.335,
            "L_m": 0.04999999999999982
          },
          "166": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0XYcJfO$XC2OGYmAK2mSEV",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9928,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9928,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1339,
            "interacao": 0.8394,
            "mrdx_kncm": 2230.08,
            "mrdy_kncm": 4855.4,
            "msdx_kncm": 1244.4,
            "msdy_kncm": 1989.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 152.9 kN, Mdx = 633 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1990 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=611, Md,tot=1244 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1244, MSdy=1990 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8394 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8394 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.14,
                "m1d_kncm": 632.9,
                "status": "OK",
                "md_tot_kncm": 1244.38,
                "m2d_kncm": 611.48,
                "nu": 0.107,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.02,
                "m1d_kncm": 1989.9,
                "status": "OK",
                "md_tot_kncm": 1989.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1518,
            "interacao": 0.9438,
            "mrdx_kncm": 2230.08,
            "mrdy_kncm": 4855.4,
            "msdx_kncm": 1458.9,
            "msdy_kncm": 1989.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 152.9 kN, Mdx = 847 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1990 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=611, Md,tot=1459 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1459, MSdy=1990 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9438 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9438 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          167,
          168,
          169
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=6.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "167": {
            "N_i_kn": 152.86818439618145,
            "N_j_kn": -152.86818439618145,
            "Mz_i_knm": 2.931,
            "Mz_j_knm": 6.329,
            "My_i_knm": -9.464,
            "My_j_knm": -19.017,
            "M_i_knm": 9.464,
            "M_j_knm": 19.017,
            "L_m": 3.7
          },
          "168": {
            "N_i_kn": 36.42144579318665,
            "N_j_kn": -36.42144579318665,
            "Mz_i_knm": -0.847,
            "Mz_j_knm": 0.842,
            "My_i_knm": 19.54,
            "My_j_knm": -19.899,
            "M_i_knm": 19.54,
            "M_j_knm": 19.899,
            "L_m": 0.04999999999999982
          },
          "169": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0$GggQBAj27AYgQ0cmGSbk",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1065,
            "interacao": 0.6948,
            "mrdx_kncm": 2185.02,
            "mrdy_kncm": 4750.72,
            "msdx_kncm": 889.3,
            "msdy_kncm": 2003.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.8 kN, Mdx = 175 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2003 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 306 kN·cm governa sobre Mdx = 175",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=583, Md,tot=889 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=889, MSdy=2003 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6948 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6948 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 306.1,
                "status": "OK",
                "md_tot_kncm": 889.26,
                "m2d_kncm": 583.12,
                "nu": 0.102,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.74,
                "m1d_kncm": 2003.3,
                "status": "OK",
                "md_tot_kncm": 2003.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1109,
            "interacao": 0.7214,
            "mrdx_kncm": 2185.02,
            "mrdy_kncm": 4750.72,
            "msdx_kncm": 947.0,
            "msdy_kncm": 2003.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.8 kN, Mdx = 364 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2003 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=583, Md,tot=947 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=947, MSdy=2003 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7214 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7214 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          170,
          171,
          172
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.0 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "170": {
            "N_i_kn": 145.77900967795995,
            "N_j_kn": -145.77900967795995,
            "Mz_i_knm": -1.154,
            "Mz_j_knm": -1.747,
            "My_i_knm": -9.695,
            "My_j_knm": -19.557,
            "M_i_knm": 9.695,
            "M_j_knm": 19.557,
            "L_m": 3.7
          },
          "171": {
            "N_i_kn": 36.889876945426295,
            "N_j_kn": -36.889876945426295,
            "Mz_i_knm": 0.103,
            "Mz_j_knm": -0.122,
            "My_i_knm": 19.632,
            "My_j_knm": -20.033,
            "M_i_knm": 19.632,
            "M_j_knm": 20.033,
            "L_m": 0.04999999999999982
          },
          "172": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0I3Qh8N$n1zOiV3D4mg4BQ",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1051,
            "interacao": 0.6829,
            "mrdx_kncm": 2191.26,
            "mrdy_kncm": 4765.23,
            "msdx_kncm": 895.2,
            "msdy_kncm": 1945.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.8 kN, Mdx = 47 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1946 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 308 kN·cm governa sobre Mdx = 47",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=895 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=895, MSdy=1946 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6829 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6829 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 308.2,
                "status": "OK",
                "md_tot_kncm": 895.24,
                "m2d_kncm": 587.04,
                "nu": 0.1027,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.26,
                "m1d_kncm": 1945.6,
                "status": "OK",
                "md_tot_kncm": 1945.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1051,
            "interacao": 0.6829,
            "mrdx_kncm": 2191.26,
            "mrdy_kncm": 4765.23,
            "msdx_kncm": 895.2,
            "msdy_kncm": 1945.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.8 kN, Mdx = 207 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1946 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 308 kN·cm governa sobre Mdx = 207",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=895 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=895, MSdy=1946 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6829 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6829 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          173,
          174,
          175
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.5 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.5 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "173": {
            "N_i_kn": 146.75752763569648,
            "N_j_kn": -146.75752763569648,
            "Mz_i_knm": -0.473,
            "Mz_j_knm": -0.289,
            "My_i_knm": -9.53,
            "My_j_knm": -19.135,
            "M_i_knm": 9.53,
            "M_j_knm": 19.135,
            "L_m": 3.7
          },
          "174": {
            "N_i_kn": 35.80453735912124,
            "N_j_kn": -35.80453735912124,
            "Mz_i_knm": -0.154,
            "Mz_j_knm": 0.133,
            "My_i_knm": 19.07,
            "My_j_knm": -19.456,
            "M_i_knm": 19.07,
            "M_j_knm": 19.456,
            "L_m": 0.04999999999999982
          },
          "175": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0sZO51AHL3jQl4CBtQMQHM",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1067,
            "interacao": 0.6955,
            "mrdx_kncm": 2187.57,
            "mrdy_kncm": 4756.64,
            "msdx_kncm": 891.7,
            "msdy_kncm": 2005.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.2 kN, Mdx = 34 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2006 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 307 kN·cm governa sobre Mdx = 34",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=892 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=892, MSdy=2006 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6955 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6955 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 307.0,
                "status": "OK",
                "md_tot_kncm": 891.7,
                "m2d_kncm": 584.72,
                "nu": 0.1023,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.72,
                "m1d_kncm": 2005.8,
                "status": "OK",
                "md_tot_kncm": 2005.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1067,
            "interacao": 0.6955,
            "mrdx_kncm": 2187.57,
            "mrdy_kncm": 4756.64,
            "msdx_kncm": 891.7,
            "msdy_kncm": 2005.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.2 kN, Mdx = 249 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2006 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 307 kN·cm governa sobre Mdx = 249",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=892 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=892, MSdy=2006 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6955 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6955 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          176,
          177,
          178
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "176": {
            "N_i_kn": 146.17676183628956,
            "N_j_kn": -146.17676183628956,
            "Mz_i_knm": -0.343,
            "Mz_j_knm": 0.065,
            "My_i_knm": -9.797,
            "My_j_knm": -19.632,
            "M_i_knm": 9.797,
            "M_j_knm": 19.632,
            "L_m": 3.7
          },
          "177": {
            "N_i_kn": 36.902411065259,
            "N_j_kn": -36.902411065259,
            "Mz_i_knm": 0.015,
            "Mz_j_knm": -0.036,
            "My_i_knm": 19.661,
            "My_j_knm": -20.058,
            "M_i_knm": 19.661,
            "M_j_knm": 20.058,
            "L_m": 0.04999999999999982
          },
          "178": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1lKoFNxW1F6BmzJx7n_fAR",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1069,
            "interacao": 0.6968,
            "mrdx_kncm": 2188.72,
            "mrdy_kncm": 4759.31,
            "msdx_kncm": 892.8,
            "msdy_kncm": 2012.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 126 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 307 kN·cm governa sobre Mdx = 126",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=893 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=893, MSdy=2012 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6968 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6968 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 307.4,
                "status": "OK",
                "md_tot_kncm": 892.8,
                "m2d_kncm": 585.44,
                "nu": 0.1025,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.75,
                "m1d_kncm": 2012.0,
                "status": "OK",
                "md_tot_kncm": 2012.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1069,
            "interacao": 0.6968,
            "mrdx_kncm": 2188.72,
            "mrdy_kncm": 4759.31,
            "msdx_kncm": 892.8,
            "msdy_kncm": 2012.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 290 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 307 kN·cm governa sobre Mdx = 290",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=893 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=893, MSdy=2012 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6968 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6968 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          179,
          180,
          181
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "179": {
            "N_i_kn": 146.35801660133623,
            "N_j_kn": -146.35801660133623,
            "Mz_i_knm": -1.052,
            "Mz_j_knm": -1.26,
            "My_i_knm": -9.847,
            "My_j_knm": -19.7,
            "M_i_knm": 9.847,
            "M_j_knm": 19.7,
            "L_m": 3.7
          },
          "180": {
            "N_i_kn": 36.95402990650109,
            "N_j_kn": -36.95402990650109,
            "Mz_i_knm": -0.083,
            "Mz_j_knm": 0.059,
            "My_i_knm": 19.722,
            "My_j_knm": -20.12,
            "M_i_knm": 19.722,
            "M_j_knm": 20.12,
            "L_m": 0.04999999999999982
          },
          "181": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0yhScl5LjE98Cq2MJ2Aena",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.106,
            "interacao": 0.6901,
            "mrdx_kncm": 2189.16,
            "mrdy_kncm": 4760.34,
            "msdx_kncm": 893.2,
            "msdy_kncm": 1980.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 55 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1980 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 308 kN·cm governa sobre Mdx = 55",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=586, Md,tot=893 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=893, MSdy=1980 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6901 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6901 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 307.5,
                "status": "OK",
                "md_tot_kncm": 893.22,
                "m2d_kncm": 585.72,
                "nu": 0.1025,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.52,
                "m1d_kncm": 1980.2,
                "status": "OK",
                "md_tot_kncm": 1980.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.106,
            "interacao": 0.6901,
            "mrdx_kncm": 2189.16,
            "mrdy_kncm": 4760.34,
            "msdx_kncm": 893.2,
            "msdy_kncm": 1980.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 240 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1980 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 308 kN·cm governa sobre Mdx = 240",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=586, Md,tot=893 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=893, MSdy=1980 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6901 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6901 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          182,
          183,
          184
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.5 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "182": {
            "N_i_kn": 146.4322460527313,
            "N_j_kn": -146.4322460527313,
            "Mz_i_knm": -0.549,
            "Mz_j_knm": -0.162,
            "My_i_knm": -9.729,
            "My_j_knm": -19.439,
            "M_i_knm": 9.729,
            "M_j_knm": 19.439,
            "L_m": 3.7
          },
          "183": {
            "N_i_kn": 36.38616022841052,
            "N_j_kn": -36.38616022841052,
            "Mz_i_knm": -0.15,
            "Mz_j_knm": 0.124,
            "My_i_knm": 19.408,
            "My_j_knm": -19.802,
            "M_i_knm": 19.408,
            "M_j_knm": 19.802,
            "L_m": 0.04999999999999982
          },
          "184": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1KT1GKZ_vE9hPDtCpNmtf8",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1071,
            "interacao": 0.6963,
            "mrdx_kncm": 2192.98,
            "mrdy_kncm": 4769.22,
            "msdx_kncm": 896.9,
            "msdy_kncm": 2008.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 147.0 kN, Mdx = 123 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2008 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 309 kN·cm governa sobre Mdx = 123",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=588, Md,tot=897 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=897, MSdy=2008 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6963 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6963 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 308.8,
                "status": "OK",
                "md_tot_kncm": 896.88,
                "m2d_kncm": 588.12,
                "nu": 0.1029,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.66,
                "m1d_kncm": 2008.5,
                "status": "OK",
                "md_tot_kncm": 2008.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1095,
            "interacao": 0.7103,
            "mrdx_kncm": 2192.98,
            "mrdy_kncm": 4769.22,
            "msdx_kncm": 927.5,
            "msdy_kncm": 2008.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 147.0 kN, Mdx = 339 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2008 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=588, Md,tot=928 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=928, MSdy=2008 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7103 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7103 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          185,
          186,
          187
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.2 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "185": {
            "N_i_kn": 147.02685411442255,
            "N_j_kn": -147.02685411442255,
            "Mz_i_knm": -1.129,
            "Mz_j_knm": -1.23,
            "My_i_knm": -9.842,
            "My_j_knm": -19.643,
            "M_i_knm": 9.842,
            "M_j_knm": 19.643,
            "L_m": 3.7
          },
          "186": {
            "N_i_kn": 36.915087650288115,
            "N_j_kn": -36.915087650288115,
            "Mz_i_knm": 0.007,
            "Mz_j_knm": -0.036,
            "My_i_knm": 19.688,
            "My_j_knm": -20.085,
            "M_i_knm": 19.688,
            "M_j_knm": 20.085,
            "L_m": 0.04999999999999982
          },
          "187": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "321hRJFVH9mRWDaQsi5VPp",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1048,
            "interacao": 0.6832,
            "mrdx_kncm": 2183.42,
            "mrdy_kncm": 4747.02,
            "msdx_kncm": 887.7,
            "msdy_kncm": 1949.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.5 kN, Mdx = 43 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1949 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 306 kN·cm governa sobre Mdx = 43",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=582, Md,tot=888 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=888, MSdy=1949 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6832 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6832 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 305.6,
                "status": "OK",
                "md_tot_kncm": 887.73,
                "m2d_kncm": 582.12,
                "nu": 0.1019,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.39,
                "m1d_kncm": 1949.1,
                "status": "OK",
                "md_tot_kncm": 1949.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1048,
            "interacao": 0.6832,
            "mrdx_kncm": 2183.42,
            "mrdy_kncm": 4747.02,
            "msdx_kncm": 887.7,
            "msdy_kncm": 1949.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.3529,
            "v_vento_base_kn": 0.4412,
            "w_vento_kn_m": 0.17646,
            "largura_tributaria_m": 2.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.5 kN, Mdx = 93 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1949 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 306 kN·cm governa sobre Mdx = 93",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=582, Md,tot=888 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=888, MSdy=1949 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6832 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6832 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          188,
          189,
          190
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.5 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "188": {
            "N_i_kn": 145.53140069125962,
            "N_j_kn": -145.53140069125962,
            "Mz_i_knm": -0.431,
            "Mz_j_knm": 0.258,
            "My_i_knm": -9.611,
            "My_j_knm": -19.165,
            "M_i_knm": 9.611,
            "M_j_knm": 19.165,
            "L_m": 3.7
          },
          "189": {
            "N_i_kn": 35.820817984986206,
            "N_j_kn": -35.820817984986206,
            "Mz_i_knm": -0.254,
            "Mz_j_knm": 0.223,
            "My_i_knm": 19.103,
            "My_j_knm": -19.491,
            "M_i_knm": 19.103,
            "M_j_knm": 19.491,
            "L_m": 0.04999999999999982
          },
          "190": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0ALWuGDzj2o8RxwAW0p_BT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1362,
            "interacao": 0.8541,
            "mrdx_kncm": 2229.07,
            "mrdy_kncm": 4853.05,
            "msdx_kncm": 1266.2,
            "msdy_kncm": 2008.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 152.7 kN, Mdx = 655 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2008 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=611, Md,tot=1266 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1266, MSdy=2008 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8541 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8541 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.29,
                "m1d_kncm": 655.4,
                "status": "OK",
                "md_tot_kncm": 1266.24,
                "m2d_kncm": 610.84,
                "nu": 0.1069,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.15,
                "m1d_kncm": 2008.0,
                "status": "OK",
                "md_tot_kncm": 2008.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.154,
            "interacao": 0.9579,
            "mrdx_kncm": 2229.07,
            "mrdy_kncm": 4853.05,
            "msdx_kncm": 1478.8,
            "msdy_kncm": 2008.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 152.7 kN, Mdx = 868 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2008 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=611, Md,tot=1479 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1479, MSdy=2008 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9579 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9579 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          191,
          192,
          193
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=6.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "191": {
            "N_i_kn": 152.70966183692093,
            "N_j_kn": -152.70966183692093,
            "Mz_i_knm": -3.88,
            "Mz_j_knm": -6.554,
            "My_i_knm": -9.498,
            "My_j_knm": -19.279,
            "M_i_knm": 9.498,
            "M_j_knm": 19.279,
            "L_m": 3.7
          },
          "192": {
            "N_i_kn": 36.90244857153448,
            "N_j_kn": -36.90244857153448,
            "Mz_i_knm": 0.746,
            "Mz_j_knm": -0.766,
            "My_i_knm": 19.689,
            "My_j_knm": -20.08,
            "M_i_knm": 19.689,
            "M_j_knm": 20.08,
            "L_m": 0.04999999999999982
          },
          "193": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1wrqyiaanEHO03GbP_A6Q8",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 71.56,
              "alpha_b": 0.7929,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 51.55,
              "alpha_b": 0.7929,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=71.56; dir y: λ=32.0 vs λ1=51.55.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.72,
            "rho_pct": 1.59,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.3915,
            "interacao": 1.0,
            "mrdx_kncm": 4240.7,
            "mrdy_kncm": 10194.0,
            "msdx_kncm": 3989.2,
            "msdy_kncm": 1120.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 72.8 kN, Mdx = 3698 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1121 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=56.7 ⇒ 2ª ordem; M2d=291, Md,tot=3989 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=3989, MSdy=1121 kN·cm; Resiste com As = 12.72 cm² (1.59%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 12.72 cm² (1.59%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 56.74,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 50.79,
                "m1d_kncm": 3698.0,
                "status": "OK",
                "md_tot_kncm": 3989.24,
                "m2d_kncm": 291.24,
                "nu": 0.051,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 15.39,
                "m1d_kncm": 1120.9,
                "status": "OK",
                "md_tot_kncm": 1120.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=56.74 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 12.94,
            "rho_pct": 1.618,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.398,
            "interacao": 1.0,
            "mrdx_kncm": 4298.13,
            "mrdy_kncm": 10346.25,
            "msdx_kncm": 4047.7,
            "msdy_kncm": 1120.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.4178,
            "v_vento_base_kn": 0.5223,
            "w_vento_kn_m": 0.2089,
            "largura_tributaria_m": 1.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 72.8 kN, Mdx = 3756 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1121 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=57.2 ⇒ 2ª ordem; M2d=291, Md,tot=4048 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=4048, MSdy=1121 kN·cm; Resiste com As = 12.94 cm² (1.62%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 12.94 cm² (1.62%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          194,
          195,
          196
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=37.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=11.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "194": {
            "N_i_kn": 72.81221970194225,
            "N_j_kn": -72.81221970194225,
            "Mz_i_knm": 17.835,
            "Mz_j_knm": 36.98,
            "My_i_knm": -4.302,
            "My_j_knm": -11.209,
            "M_i_knm": 17.835,
            "M_j_knm": 36.98,
            "L_m": 3.7
          },
          "195": {
            "N_i_kn": 21.78464481941137,
            "N_j_kn": -21.78464481941137,
            "Mz_i_knm": -6.236,
            "Mz_j_knm": 6.203,
            "My_i_knm": 10.828,
            "My_j_knm": -11.048,
            "M_i_knm": 10.828,
            "M_j_knm": 11.048,
            "L_m": 0.04999999999999982
          },
          "196": {
            "N_i_kn": 0.3500000000001364,
            "N_j_kn": -0.3500000000001364,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "28KO$ROY98FecshiVPC42R",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 63.65,
              "alpha_b": 0.8024,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 47.4,
              "alpha_b": 0.8024,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=63.65 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=47.4.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 19.04,
            "rho_pct": 2.38,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5976,
            "interacao": 1.0,
            "mrdx_kncm": 6235.53,
            "mrdy_kncm": 15521.09,
            "msdx_kncm": 6177.7,
            "msdy_kncm": 364.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 135.1 kN, Mdx = 5637 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 110 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 365 kN·cm governa sobre Mdy = 110",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=51.1 ⇒ 2ª ordem; M2d=541, Md,tot=6178 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6178, MSdy=365 kN·cm; Resiste com As = 19.04 cm² (2.38%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 19.04 cm² (2.38%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 51.07,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 41.72,
                "m1d_kncm": 5637.2,
                "status": "OK",
                "md_tot_kncm": 6177.72,
                "m2d_kncm": 540.52,
                "nu": 0.0946,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 364.9,
                "status": "OK",
                "md_tot_kncm": 364.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=51.07 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 19.42,
            "rho_pct": 2.428,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.6089,
            "interacao": 1.0,
            "mrdx_kncm": 6334.22,
            "mrdy_kncm": 15786.71,
            "msdx_kncm": 6276.6,
            "msdy_kncm": 364.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 135.1 kN, Mdx = 5736 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 110 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 365 kN·cm governa sobre Mdy = 110",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=51.5 ⇒ 2ª ordem; M2d=541, Md,tot=6277 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6277, MSdy=365 kN·cm; Resiste com As = 19.42 cm² (2.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 19.42 cm² (2.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          197,
          198,
          199
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=56.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=1.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "197": {
            "N_i_kn": 135.13180144933855,
            "N_j_kn": -135.13180144933855,
            "Mz_i_knm": -28.531,
            "Mz_j_knm": -56.372,
            "My_i_knm": -1.097,
            "My_j_knm": -0.308,
            "M_i_knm": 28.531,
            "M_j_knm": 56.372,
            "L_m": 3.7
          },
          "198": {
            "N_i_kn": 47.047682366885056,
            "N_j_kn": -47.047682366885056,
            "Mz_i_knm": -7.365,
            "Mz_j_knm": 7.288,
            "My_i_knm": 0.236,
            "My_j_knm": -0.252,
            "M_i_knm": 7.365,
            "M_j_knm": 7.288,
            "L_m": 0.04999999999999982
          },
          "199": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "299mzHNkX0zPoKV$VC6AI1",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.7802,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.7802,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1477,
            "interacao": 0.6802,
            "mrdx_kncm": 2931.7,
            "mrdy_kncm": 6460.53,
            "msdx_kncm": 1931.9,
            "msdy_kncm": 737.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.2 kN, Mdx = 839 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 86 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 738 kN·cm governa sobre Mdy = 86",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1093, Md,tot=1932 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1932, MSdy=738 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6802 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6802 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 3.07,
                "m1d_kncm": 839.2,
                "status": "OK",
                "md_tot_kncm": 1931.92,
                "m2d_kncm": 1092.72,
                "nu": 0.1912,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 737.6,
                "status": "OK",
                "md_tot_kncm": 737.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1658,
            "interacao": 0.7618,
            "mrdx_kncm": 2931.7,
            "mrdy_kncm": 6460.53,
            "msdx_kncm": 2146.4,
            "msdy_kncm": 737.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.2 kN, Mdx = 1054 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 86 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 738 kN·cm governa sobre Mdy = 86",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1093, Md,tot=2146 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2146, MSdy=738 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7618 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7618 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          200,
          201,
          202
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=8.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "200": {
            "N_i_kn": 273.18297711167156,
            "N_j_kn": -273.18297711167156,
            "Mz_i_knm": 3.78,
            "Mz_j_knm": 8.392,
            "My_i_knm": 0.608,
            "My_j_knm": 0.854,
            "M_i_knm": 3.78,
            "M_j_knm": 8.392,
            "L_m": 3.7
          },
          "201": {
            "N_i_kn": 78.03104532029465,
            "N_j_kn": -78.03104532029465,
            "Mz_i_knm": 0.855,
            "Mz_j_knm": -0.893,
            "My_i_knm": -0.815,
            "My_j_knm": 0.856,
            "M_i_knm": 0.855,
            "M_j_knm": 0.893,
            "L_m": 0.04999999999999982
          },
          "202": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "02Dk0pHljEveiklSMTSmWA",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.876,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.876,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1219,
            "interacao": 0.5707,
            "mrdx_kncm": 2887.81,
            "mrdy_kncm": 6367.97,
            "msdx_kncm": 1615.7,
            "msdy_kncm": 715.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 264.9 kN, Mdx = 250 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 42 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 556 kN·cm governa sobre Mdx = 250",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 715 kN·cm governa sobre Mdy = 42",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1059, Md,tot=1616 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1616, MSdy=715 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5707 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5707 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 556.2,
                "status": "OK",
                "md_tot_kncm": 1615.71,
                "m2d_kncm": 1059.48,
                "nu": 0.1854,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 715.1,
                "status": "OK",
                "md_tot_kncm": 715.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1219,
            "interacao": 0.5707,
            "mrdx_kncm": 2887.81,
            "mrdy_kncm": 6367.97,
            "msdx_kncm": 1615.7,
            "msdy_kncm": 715.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 264.9 kN, Mdx = 439 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 42 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 556 kN·cm governa sobre Mdx = 439",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 715 kN·cm governa sobre Mdy = 42",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1059, Md,tot=1616 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1616, MSdy=715 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5707 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5707 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          203,
          204,
          205
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.5 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "203": {
            "N_i_kn": 264.8729678639537,
            "N_j_kn": -264.8729678639537,
            "Mz_i_knm": -1.725,
            "Mz_j_knm": -2.5,
            "My_i_knm": 0.424,
            "My_j_knm": 0.42,
            "M_i_knm": 1.725,
            "M_j_knm": 2.5,
            "L_m": 3.7
          },
          "204": {
            "N_i_kn": 80.56434425566113,
            "N_j_kn": -80.56434425566113,
            "Mz_i_knm": -0.37,
            "Mz_j_knm": 0.337,
            "My_i_knm": -0.355,
            "My_j_knm": 0.362,
            "M_i_knm": 0.37,
            "M_j_knm": 0.362,
            "L_m": 0.04999999999999982
          },
          "205": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1ORdL3HIbCGvdRS0vdNz5V",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9915,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9915,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1213,
            "interacao": 0.569,
            "mrdx_kncm": 2881.25,
            "mrdy_kncm": 6354.08,
            "msdx_kncm": 1608.2,
            "msdy_kncm": 711.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.6 kN, Mdx = 69 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 89 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 69",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 89",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1608 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1608, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 553.6,
                "status": "OK",
                "md_tot_kncm": 1608.2,
                "m2d_kncm": 1054.56,
                "nu": 0.1845,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 711.8,
                "status": "OK",
                "md_tot_kncm": 711.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1213,
            "interacao": 0.569,
            "mrdx_kncm": 2881.25,
            "mrdy_kncm": 6354.08,
            "msdx_kncm": 1608.2,
            "msdy_kncm": 711.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.6 kN, Mdx = 229 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 89 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 229",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 89",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1608 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1608, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          206,
          207,
          208
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "206": {
            "N_i_kn": 263.6361204314346,
            "N_j_kn": -263.6361204314346,
            "Mz_i_knm": -0.693,
            "Mz_j_knm": -0.317,
            "My_i_knm": 0.577,
            "My_j_knm": 0.814,
            "M_i_knm": 0.693,
            "M_j_knm": 0.814,
            "L_m": 3.7
          },
          "207": {
            "N_i_kn": 76.8570746982914,
            "N_j_kn": -76.8570746982914,
            "Mz_i_knm": 0.129,
            "Mz_j_knm": -0.158,
            "My_i_knm": -0.874,
            "My_j_knm": 0.893,
            "M_i_knm": 0.874,
            "M_j_knm": 0.893,
            "L_m": 0.04999999999999982
          },
          "208": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3VfDofe7jAx9l5fXmzFo5B",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8307,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8307,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1223,
            "interacao": 0.5716,
            "mrdx_kncm": 2891.59,
            "mrdy_kncm": 6375.97,
            "msdx_kncm": 1620.0,
            "msdy_kncm": 717.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.6 kN, Mdx = 83 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 35 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 558 kN·cm governa sobre Mdx = 83",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 717 kN·cm governa sobre Mdy = 35",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1062, Md,tot=1620 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1620, MSdy=717 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 557.7,
                "status": "OK",
                "md_tot_kncm": 1620.04,
                "m2d_kncm": 1062.32,
                "nu": 0.1859,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 717.1,
                "status": "OK",
                "md_tot_kncm": 717.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1223,
            "interacao": 0.5716,
            "mrdx_kncm": 2891.59,
            "mrdy_kncm": 6375.97,
            "msdx_kncm": 1620.0,
            "msdy_kncm": 717.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.6 kN, Mdx = 298 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 35 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 558 kN·cm governa sobre Mdx = 298",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 717 kN·cm governa sobre Mdy = 35",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1062, Md,tot=1620 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1620, MSdy=717 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          209,
          210,
          211
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "209": {
            "N_i_kn": 265.5818960989998,
            "N_j_kn": -265.5818960989998,
            "Mz_i_knm": -0.834,
            "Mz_j_knm": -0.481,
            "My_i_knm": 0.327,
            "My_j_knm": 0.352,
            "M_i_knm": 0.834,
            "M_j_knm": 0.481,
            "L_m": 3.7
          },
          "210": {
            "N_i_kn": 80.5709534202033,
            "N_j_kn": -80.5709534202033,
            "Mz_i_knm": -0.174,
            "Mz_j_knm": 0.143,
            "My_i_knm": -0.291,
            "My_j_knm": 0.301,
            "M_i_knm": 0.291,
            "M_j_knm": 0.301,
            "L_m": 0.04999999999999982
          },
          "211": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1DRTQtd1D1K8CzWuiYRfxV",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9674,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9674,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1221,
            "interacao": 0.5711,
            "mrdx_kncm": 2889.46,
            "mrdy_kncm": 6371.47,
            "msdx_kncm": 1617.6,
            "msdy_kncm": 716.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 156 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 88 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 557 kN·cm governa sobre Mdx = 156",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 716 kN·cm governa sobre Mdy = 88",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1061, Md,tot=1618 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1618, MSdy=716 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5711 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5711 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 556.9,
                "status": "OK",
                "md_tot_kncm": 1617.6,
                "m2d_kncm": 1060.72,
                "nu": 0.1856,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 716.0,
                "status": "OK",
                "md_tot_kncm": 716.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1221,
            "interacao": 0.5711,
            "mrdx_kncm": 2889.46,
            "mrdy_kncm": 6371.47,
            "msdx_kncm": 1617.6,
            "msdy_kncm": 716.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 320 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 88 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 557 kN·cm governa sobre Mdx = 320",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 716 kN·cm governa sobre Mdy = 88",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1061, Md,tot=1618 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1618, MSdy=716 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5711 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5711 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          212,
          213,
          214
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "212": {
            "N_i_kn": 265.1801141839225,
            "N_j_kn": -265.1801141839225,
            "Mz_i_knm": -1.431,
            "Mz_j_knm": -1.558,
            "My_i_knm": 0.555,
            "My_j_knm": 0.83,
            "M_i_knm": 1.431,
            "M_j_knm": 1.558,
            "L_m": 3.7
          },
          "213": {
            "N_i_kn": 79.32144702675578,
            "N_j_kn": -79.32144702675578,
            "Mz_i_knm": -0.139,
            "Mz_j_knm": 0.113,
            "My_i_knm": -0.863,
            "My_j_knm": 0.882,
            "M_i_knm": 0.863,
            "M_j_knm": 0.882,
            "L_m": 0.04999999999999982
          },
          "214": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3s1p_QNCz2IvO5$PYp2d98",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9743,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9743,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1215,
            "interacao": 0.5693,
            "mrdx_kncm": 2882.48,
            "mrdy_kncm": 6356.68,
            "msdx_kncm": 1609.6,
            "msdy_kncm": 712.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.9 kN, Mdx = 86 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 85 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 86",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 85",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1610 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1610, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 554.1,
                "status": "OK",
                "md_tot_kncm": 1609.61,
                "m2d_kncm": 1055.48,
                "nu": 0.1847,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 712.4,
                "status": "OK",
                "md_tot_kncm": 712.4,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1215,
            "interacao": 0.5693,
            "mrdx_kncm": 2882.48,
            "mrdy_kncm": 6356.68,
            "msdx_kncm": 1609.6,
            "msdy_kncm": 712.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.9 kN, Mdx = 271 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 85 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 271",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 85",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1610 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1610, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          215,
          216,
          217
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.9 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "215": {
            "N_i_kn": 263.87472656160486,
            "N_j_kn": -263.87472656160486,
            "Mz_i_knm": -0.856,
            "Mz_j_knm": -0.291,
            "My_i_knm": 0.525,
            "My_j_knm": 0.801,
            "M_i_knm": 0.856,
            "M_j_knm": 0.801,
            "L_m": 3.7
          },
          "216": {
            "N_i_kn": 78.09757353737587,
            "N_j_kn": -78.09757353737587,
            "Mz_i_knm": 0.072,
            "Mz_j_knm": -0.097,
            "My_i_knm": -0.83,
            "My_j_knm": 0.849,
            "M_i_knm": 0.83,
            "M_j_knm": 0.849,
            "L_m": 0.04999999999999982
          },
          "217": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3DtCJvCUH7DeKeDHTAx7KE",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9657,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9657,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1227,
            "interacao": 0.5728,
            "mrdx_kncm": 2896.48,
            "mrdy_kncm": 6386.31,
            "msdx_kncm": 1625.7,
            "msdy_kncm": 719.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.5 kN, Mdx = 186 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 32 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 560 kN·cm governa sobre Mdx = 186",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 720 kN·cm governa sobre Mdy = 32",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1066, Md,tot=1626 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1626, MSdy=720 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5728 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5728 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 559.6,
                "status": "OK",
                "md_tot_kncm": 1625.65,
                "m2d_kncm": 1066.0,
                "nu": 0.1865,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 719.6,
                "status": "OK",
                "md_tot_kncm": 719.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1227,
            "interacao": 0.5728,
            "mrdx_kncm": 2896.48,
            "mrdy_kncm": 6386.31,
            "msdx_kncm": 1625.7,
            "msdy_kncm": 719.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.5 kN, Mdx = 402 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 32 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 560 kN·cm governa sobre Mdx = 402",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 720 kN·cm governa sobre Mdy = 32",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1066, Md,tot=1626 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1626, MSdy=720 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5728 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5728 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          218,
          219,
          220
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.9 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.3 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "218": {
            "N_i_kn": 266.49689305189656,
            "N_j_kn": -266.49689305189656,
            "Mz_i_knm": -1.696,
            "Mz_j_knm": -1.855,
            "My_i_knm": 0.27,
            "My_j_knm": 0.32,
            "M_i_knm": 1.696,
            "M_j_knm": 1.855,
            "L_m": 3.7
          },
          "219": {
            "N_i_kn": 80.56079852423863,
            "N_j_kn": -80.56079852423863,
            "Mz_i_knm": -0.272,
            "Mz_j_knm": 0.249,
            "My_i_knm": -0.261,
            "My_j_knm": 0.269,
            "M_i_knm": 0.272,
            "M_j_knm": 0.269,
            "L_m": 0.04999999999999982
          },
          "220": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1Ja9C5rWD2SgLgWP_xR0n5",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1205,
            "interacao": 0.5668,
            "mrdx_kncm": 2872.37,
            "mrdy_kncm": 6335.25,
            "msdx_kncm": 1598.1,
            "msdy_kncm": 707.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 262.0 kN, Mdx = 65 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 84 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 550 kN·cm governa sobre Mdx = 65",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 707 kN·cm governa sobre Mdy = 84",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1048, Md,tot=1598 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1598, MSdy=707 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5668 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5668 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 550.2,
                "status": "OK",
                "md_tot_kncm": 1598.08,
                "m2d_kncm": 1047.92,
                "nu": 0.1834,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 707.3,
                "status": "OK",
                "md_tot_kncm": 707.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1205,
            "interacao": 0.5668,
            "mrdx_kncm": 2872.37,
            "mrdy_kncm": 6335.25,
            "msdx_kncm": 1598.1,
            "msdy_kncm": 707.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 262.0 kN, Mdx = 164 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 84 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 550 kN·cm governa sobre Mdx = 164",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 707 kN·cm governa sobre Mdy = 84",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1048, Md,tot=1598 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1598, MSdy=707 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5668 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5668 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          221,
          222,
          223
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=0.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "221": {
            "N_i_kn": 261.98049534843256,
            "N_j_kn": -261.98049534843256,
            "Mz_i_knm": -0.648,
            "Mz_j_knm": 0.362,
            "My_i_knm": 0.477,
            "My_j_knm": 0.747,
            "M_i_knm": 0.648,
            "M_j_knm": 0.747,
            "L_m": 3.7
          },
          "222": {
            "N_i_kn": 76.85312556548524,
            "N_j_kn": -76.85312556548524,
            "Mz_i_knm": 0.222,
            "Mz_j_knm": -0.238,
            "My_i_knm": -0.821,
            "My_j_knm": 0.838,
            "M_i_knm": 0.821,
            "M_j_knm": 0.838,
            "L_m": 0.04999999999999982
          },
          "223": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0CZnv4_AvAYRFEMsaD8FlB",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8381,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8381,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1562,
            "interacao": 0.7166,
            "mrdx_kncm": 2941.62,
            "mrdy_kncm": 6481.37,
            "msdx_kncm": 2034.1,
            "msdy_kncm": 742.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 275.1 kN, Mdx = 934 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 47 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 743 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1100, Md,tot=2034 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2034, MSdy=743 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7166 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7166 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 3.39,
                "m1d_kncm": 933.8,
                "status": "OK",
                "md_tot_kncm": 2034.12,
                "m2d_kncm": 1100.32,
                "nu": 0.1926,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 742.7,
                "status": "OK",
                "md_tot_kncm": 742.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1743,
            "interacao": 0.798,
            "mrdx_kncm": 2941.62,
            "mrdy_kncm": 6481.37,
            "msdx_kncm": 2246.6,
            "msdy_kncm": 742.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 275.1 kN, Mdx = 1146 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 47 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 743 kN·cm governa sobre Mdy = 47",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1100, Md,tot=2247 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2247, MSdy=743 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.798 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.798 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          224,
          225,
          226
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=9.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.5 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "224": {
            "N_i_kn": 275.0759584771721,
            "N_j_kn": -275.0759584771721,
            "Mz_i_knm": -5.558,
            "Mz_j_knm": -9.338,
            "My_i_knm": 0.469,
            "My_j_knm": 0.397,
            "M_i_knm": 5.558,
            "M_j_knm": 9.338,
            "L_m": 3.7
          },
          "225": {
            "N_i_kn": 80.51635387028,
            "N_j_kn": -80.51635387028,
            "Mz_i_knm": -0.932,
            "Mz_j_knm": 0.909,
            "My_i_knm": -0.419,
            "My_j_knm": 0.423,
            "M_i_knm": 0.932,
            "M_j_knm": 0.909,
            "L_m": 0.04999999999999982
          },
          "226": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2n2_FUyy5FBgcGvh9lXbSs",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 63.39,
              "alpha_b": 0.7929,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 47.46,
              "alpha_b": 0.7929,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=63.39 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=47.46.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.24,
            "rho_pct": 2.28,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5736,
            "interacao": 1.0,
            "mrdx_kncm": 6023.91,
            "mrdy_kncm": 14951.47,
            "msdx_kncm": 5965.9,
            "msdy_kncm": 362.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.3 kN, Mdx = 5429 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 221 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 363 kN·cm governa sobre Mdy = 221",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=50.3 ⇒ 2ª ordem; M2d=537, Md,tot=5966 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5966, MSdy=363 kN·cm; Resiste com As = 18.24 cm² (2.28%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 18.24 cm² (2.28%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 50.27,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 40.43,
                "m1d_kncm": 5428.7,
                "status": "OK",
                "md_tot_kncm": 5965.86,
                "m2d_kncm": 537.16,
                "nu": 0.094,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 362.6,
                "status": "OK",
                "md_tot_kncm": 362.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=50.27 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.62,
            "rho_pct": 2.327,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5849,
            "interacao": 1.0,
            "mrdx_kncm": 6122.38,
            "mrdy_kncm": 15216.42,
            "msdx_kncm": 6064.7,
            "msdy_kncm": 362.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.3 kN, Mdx = 5528 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 221 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 363 kN·cm governa sobre Mdy = 221",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=50.7 ⇒ 2ª ordem; M2d=537, Md,tot=6065 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=6065, MSdy=363 kN·cm; Resiste com As = 18.62 cm² (2.33%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 18.62 cm² (2.33%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          227,
          228,
          229
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=54.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=2.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "227": {
            "N_i_kn": 134.28975084111752,
            "N_j_kn": -134.28975084111752,
            "Mz_i_knm": 26.183,
            "Mz_j_knm": 54.287,
            "My_i_knm": 2.208,
            "My_j_knm": 1.629,
            "M_i_knm": 26.183,
            "M_j_knm": 54.287,
            "L_m": 3.7
          },
          "228": {
            "N_i_kn": 47.779766834097245,
            "N_j_kn": -47.779766834097245,
            "Mz_i_knm": 6.995,
            "Mz_j_knm": -6.968,
            "My_i_knm": -1.562,
            "My_j_knm": 1.597,
            "M_i_knm": 6.995,
            "M_j_knm": 6.968,
            "L_m": 0.04999999999999982
          },
          "229": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1IfznTjNXAJeO2iiNxGoKm",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 68.88,
              "alpha_b": 0.8059,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 49.95,
              "alpha_b": 0.8059,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=68.88; dir y: λ=32.0 vs λ1=49.95.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.19,
            "rho_pct": 2.274,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5656,
            "interacao": 1.0,
            "mrdx_kncm": 5869.02,
            "mrdy_kncm": 14532.54,
            "msdx_kncm": 5763.3,
            "msdy_kncm": 593.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.1 kN, Mdx = 5327 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 593 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=55.5 ⇒ 2ª ordem; M2d=436, Md,tot=5763 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5763, MSdy=593 kN·cm; Resiste com As = 18.19 cm² (2.27%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 18.19 cm² (2.27%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 55.51,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 48.82,
                "m1d_kncm": 5326.9,
                "status": "OK",
                "md_tot_kncm": 5763.34,
                "m2d_kncm": 436.44,
                "nu": 0.0764,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.44,
                "m1d_kncm": 593.4,
                "status": "OK",
                "md_tot_kncm": 593.4,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=55.51 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.49,
            "rho_pct": 2.312,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5747,
            "interacao": 1.0,
            "mrdx_kncm": 5947.72,
            "mrdy_kncm": 14743.72,
            "msdx_kncm": 5842.4,
            "msdy_kncm": 593.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 109.1 kN, Mdx = 5406 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 593 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=56.0 ⇒ 2ª ordem; M2d=436, Md,tot=5842 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5842, MSdy=593 kN·cm; Resiste com As = 18.49 cm² (2.31%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 18.49 cm² (2.31%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          230,
          231,
          232
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=53.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=5.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "230": {
            "N_i_kn": 109.11041826827626,
            "N_j_kn": -109.11041826827626,
            "Mz_i_knm": -27.422,
            "Mz_j_knm": -53.269,
            "My_i_knm": 2.033,
            "My_j_knm": 5.934,
            "M_i_knm": 27.422,
            "M_j_knm": 53.269,
            "L_m": 3.7
          },
          "231": {
            "N_i_kn": 32.30785832234051,
            "N_j_kn": -32.30785832234051,
            "Mz_i_knm": 0.17,
            "Mz_j_knm": -0.17,
            "My_i_knm": -5.696,
            "My_j_knm": 5.833,
            "M_i_knm": 5.696,
            "M_j_knm": 5.833,
            "L_m": 0.04999999999999982
          },
          "232": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2JTp9XxT55UAf408R$IA7q",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9918,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9918,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1382,
            "interacao": 0.7091,
            "mrdx_kncm": 2652.1,
            "mrdy_kncm": 5849.25,
            "msdx_kncm": 1623.4,
            "msdy_kncm": 1232.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 222.4 kN, Mdx = 734 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1232 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=890, Md,tot=1623 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1623, MSdy=1232 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7091 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7091 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 3.3,
                "m1d_kncm": 733.7,
                "status": "OK",
                "md_tot_kncm": 1623.38,
                "m2d_kncm": 889.68,
                "nu": 0.1557,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.54,
                "m1d_kncm": 1232.1,
                "status": "OK",
                "md_tot_kncm": 1232.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1562,
            "interacao": 0.7982,
            "mrdx_kncm": 2652.1,
            "mrdy_kncm": 5849.25,
            "msdx_kncm": 1837.9,
            "msdy_kncm": 1232.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 222.4 kN, Mdx = 948 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1232 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=890, Md,tot=1838 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1838, MSdy=1232 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7982 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7982 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          233,
          234,
          235
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=7.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.3 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "233": {
            "N_i_kn": 222.4247653350024,
            "N_j_kn": -222.4247653350024,
            "Mz_i_knm": 2.808,
            "Mz_j_knm": 7.337,
            "My_i_knm": 6.173,
            "My_j_knm": 11.874,
            "M_i_knm": 6.173,
            "M_j_knm": 11.874,
            "L_m": 3.7
          },
          "234": {
            "N_i_kn": 51.71564462011156,
            "N_j_kn": -51.71564462011156,
            "Mz_i_knm": 0.388,
            "Mz_j_knm": -0.423,
            "My_i_knm": -12.068,
            "My_j_knm": 12.321,
            "M_i_knm": 12.068,
            "M_j_knm": 12.321,
            "L_m": 0.04999999999999982
          },
          "235": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0pS3C_NB5B2Qmp5V5RIXwT",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1145,
            "interacao": 0.6044,
            "mrdx_kncm": 2601.44,
            "mrdy_kncm": 5727.76,
            "msdx_kncm": 1303.6,
            "msdy_kncm": 1295.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 279 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1296 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 279",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1304 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1304, MSdy=1296 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6044 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6044 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 448.8,
                "status": "OK",
                "md_tot_kncm": 1303.57,
                "m2d_kncm": 854.8,
                "nu": 0.1496,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 6.06,
                "m1d_kncm": 1295.6,
                "status": "OK",
                "md_tot_kncm": 1295.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.116,
            "interacao": 0.6124,
            "mrdx_kncm": 2601.44,
            "mrdy_kncm": 5727.76,
            "msdx_kncm": 1323.2,
            "msdy_kncm": 1295.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 468 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1296 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1323 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1323, MSdy=1296 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6124 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6124 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          236,
          237,
          238
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=13.0 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "236": {
            "N_i_kn": 213.6962477858762,
            "N_j_kn": -213.6962477858762,
            "Mz_i_knm": -2.319,
            "Mz_j_knm": -2.793,
            "My_i_knm": 6.571,
            "My_j_knm": 12.608,
            "M_i_knm": 6.571,
            "M_j_knm": 12.608,
            "L_m": 3.7
          },
          "237": {
            "N_i_kn": 53.83818823851834,
            "N_j_kn": -53.83818823851834,
            "Mz_i_knm": -0.256,
            "Mz_j_knm": 0.202,
            "My_i_knm": -12.697,
            "My_j_knm": 12.956,
            "M_i_knm": 12.697,
            "M_j_knm": 12.956,
            "L_m": 0.04999999999999982
          },
          "238": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "05RQQ9Vbr3F9loGcL9lTmt",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1121,
            "interacao": 0.5895,
            "mrdx_kncm": 2602.79,
            "mrdy_kncm": 5730.98,
            "msdx_kncm": 1305.0,
            "msdy_kncm": 1197.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.9 kN, Mdx = 164 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1198 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 164",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=856, Md,tot=1305 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1305, MSdy=1198 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5895 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5895 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 449.3,
                "status": "OK",
                "md_tot_kncm": 1304.97,
                "m2d_kncm": 855.72,
                "nu": 0.1498,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.6,
                "m1d_kncm": 1197.7,
                "status": "OK",
                "md_tot_kncm": 1197.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1121,
            "interacao": 0.5895,
            "mrdx_kncm": 2602.79,
            "mrdy_kncm": 5730.98,
            "msdx_kncm": 1305.0,
            "msdy_kncm": 1197.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.9 kN, Mdx = 324 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1198 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 324",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=856, Md,tot=1305 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1305, MSdy=1198 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5895 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5895 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          239,
          240,
          241
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.0 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "239": {
            "N_i_kn": 213.92845678851103,
            "N_j_kn": -213.92845678851103,
            "Mz_i_knm": -1.644,
            "Mz_j_knm": -1.317,
            "My_i_knm": 6.131,
            "My_j_knm": 11.831,
            "M_i_knm": 6.131,
            "M_j_knm": 11.831,
            "L_m": 3.7
          },
          "240": {
            "N_i_kn": 51.06524945232377,
            "N_j_kn": -51.06524945232377,
            "Mz_i_knm": -0.461,
            "Mz_j_knm": 0.407,
            "My_i_knm": -11.736,
            "My_j_knm": 11.977,
            "M_i_knm": 11.736,
            "M_j_knm": 11.977,
            "L_m": 0.04999999999999982
          },
          "241": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3edhovBhPDCQhQbNnybq19",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1152,
            "interacao": 0.6054,
            "mrdx_kncm": 2612.72,
            "mrdy_kncm": 5754.72,
            "msdx_kncm": 1315.3,
            "msdy_kncm": 1291.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.6 kN, Mdx = 158 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1292 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 453 kN·cm governa sobre Mdx = 158",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=863, Md,tot=1315 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1315, MSdy=1292 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6054 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6054 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 452.8,
                "status": "OK",
                "md_tot_kncm": 1315.34,
                "m2d_kncm": 862.52,
                "nu": 0.1509,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.99,
                "m1d_kncm": 1291.9,
                "status": "OK",
                "md_tot_kncm": 1291.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1152,
            "interacao": 0.6054,
            "mrdx_kncm": 2612.72,
            "mrdy_kncm": 5754.72,
            "msdx_kncm": 1315.3,
            "msdy_kncm": 1291.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.6 kN, Mdx = 372 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1292 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 453 kN·cm governa sobre Mdx = 372",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=863, Md,tot=1315 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1315, MSdy=1292 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6054 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6054 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          242,
          243,
          244
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "242": {
            "N_i_kn": 215.63023931230194,
            "N_j_kn": -215.63023931230194,
            "Mz_i_knm": -1.576,
            "Mz_j_knm": -1.058,
            "My_i_knm": 6.492,
            "My_j_knm": 12.574,
            "M_i_knm": 6.492,
            "M_j_knm": 12.574,
            "L_m": 3.7
          },
          "243": {
            "N_i_kn": 53.79279536875947,
            "N_j_kn": -53.79279536875947,
            "Mz_i_knm": 0.417,
            "Mz_j_knm": -0.461,
            "My_i_knm": -12.66,
            "My_j_knm": 12.919,
            "M_i_knm": 12.66,
            "M_j_knm": 12.919,
            "L_m": 0.04999999999999982
          },
          "244": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1zRxGyq$1AxPO1wGlxIY6W",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1131,
            "interacao": 0.5941,
            "mrdx_kncm": 2609.04,
            "mrdy_kncm": 5745.93,
            "msdx_kncm": 1311.5,
            "msdy_kncm": 1221.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.0 kN, Mdx = 212 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1222 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 212",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=860, Md,tot=1312 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1312, MSdy=1222 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5941 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5941 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 451.5,
                "status": "OK",
                "md_tot_kncm": 1311.5,
                "m2d_kncm": 860.0,
                "nu": 0.1505,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.68,
                "m1d_kncm": 1221.6,
                "status": "OK",
                "md_tot_kncm": 1221.6,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1131,
            "interacao": 0.5941,
            "mrdx_kncm": 2609.04,
            "mrdy_kncm": 5745.93,
            "msdx_kncm": 1311.5,
            "msdy_kncm": 1221.6,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.0 kN, Mdx = 375 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1222 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 375",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=860, Md,tot=1312 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1312, MSdy=1222 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5941 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5941 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          245,
          246,
          247
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "245": {
            "N_i_kn": 215.00304329709004,
            "N_j_kn": -215.00304329709004,
            "Mz_i_knm": -2.117,
            "Mz_j_knm": -2.017,
            "My_i_knm": 6.187,
            "My_j_knm": 12.005,
            "M_i_knm": 6.187,
            "M_j_knm": 12.005,
            "L_m": 3.7
          },
          "246": {
            "N_i_kn": 53.0532870723182,
            "N_j_kn": -53.0532870723182,
            "Mz_i_knm": -0.581,
            "Mz_j_knm": 0.522,
            "My_i_knm": -11.971,
            "My_j_knm": 12.216,
            "M_i_knm": 11.971,
            "M_j_knm": 12.216,
            "L_m": 0.04999999999999982
          },
          "247": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1UU8l5JD5EkOrb4CaqR1xi",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1124,
            "interacao": 0.5923,
            "mrdx_kncm": 2601.15,
            "mrdy_kncm": 5727.06,
            "msdx_kncm": 1303.3,
            "msdy_kncm": 1217.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 173 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1217 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 173",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1303 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1303, MSdy=1217 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 448.7,
                "status": "OK",
                "md_tot_kncm": 1303.27,
                "m2d_kncm": 854.6,
                "nu": 0.1496,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.7,
                "m1d_kncm": 1217.2,
                "status": "OK",
                "md_tot_kncm": 1217.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1124,
            "interacao": 0.5923,
            "mrdx_kncm": 2601.15,
            "mrdy_kncm": 5727.06,
            "msdx_kncm": 1303.3,
            "msdy_kncm": 1217.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 358 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1217 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 358",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1303 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1303, MSdy=1217 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          248,
          249,
          250
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "248": {
            "N_i_kn": 213.64792969630705,
            "N_j_kn": -213.64792969630705,
            "Mz_i_knm": -1.73,
            "Mz_j_knm": -1.12,
            "My_i_knm": 6.153,
            "My_j_knm": 11.965,
            "M_i_knm": 6.153,
            "M_j_knm": 11.965,
            "L_m": 3.7
          },
          "249": {
            "N_i_kn": 51.71363449086857,
            "N_j_kn": -51.71363449086857,
            "Mz_i_knm": 0.337,
            "Mz_j_knm": -0.385,
            "My_i_knm": -11.928,
            "My_j_knm": 12.172,
            "M_i_knm": 11.928,
            "M_j_knm": 12.172,
            "L_m": 0.04999999999999982
          },
          "250": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "00d6t1K8z1BhX4VNTSdeJi",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1148,
            "interacao": 0.604,
            "mrdx_kncm": 2610.91,
            "mrdy_kncm": 5750.4,
            "msdx_kncm": 1313.5,
            "msdy_kncm": 1284.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.3 kN, Mdx = 232 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1285 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 232",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=861, Md,tot=1313 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1313, MSdy=1285 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 452.2,
                "status": "OK",
                "md_tot_kncm": 1313.45,
                "m2d_kncm": 861.28,
                "nu": 0.1507,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.97,
                "m1d_kncm": 1284.7,
                "status": "OK",
                "md_tot_kncm": 1284.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1148,
            "interacao": 0.604,
            "mrdx_kncm": 2610.91,
            "mrdy_kncm": 5750.4,
            "msdx_kncm": 1313.5,
            "msdy_kncm": 1284.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.3 kN, Mdx = 448 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1285 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 448",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=861, Md,tot=1313 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1313, MSdy=1285 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.604 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.604 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          251,
          252,
          253
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "251": {
            "N_i_kn": 215.31519566268665,
            "N_j_kn": -215.31519566268665,
            "Mz_i_knm": -2.32,
            "Mz_j_knm": -2.18,
            "My_i_knm": 6.416,
            "My_j_knm": 12.505,
            "M_i_knm": 6.416,
            "M_j_knm": 12.505,
            "L_m": 3.7
          },
          "252": {
            "N_i_kn": 53.869928445314144,
            "N_j_kn": -53.869928445314144,
            "Mz_i_knm": -0.226,
            "Mz_j_knm": 0.167,
            "My_i_knm": -12.59,
            "My_j_knm": 12.847,
            "M_i_knm": 12.59,
            "M_j_knm": 12.847,
            "L_m": 0.04999999999999982
          },
          "253": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0StCb2UHH1_8tJmBMpPJyy",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1112,
            "interacao": 0.5872,
            "mrdx_kncm": 2593.36,
            "mrdy_kncm": 5708.45,
            "msdx_kncm": 1295.2,
            "msdy_kncm": 1191.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 212.3 kN, Mdx = 161 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1192 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 446 kN·cm governa sobre Mdx = 161",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=849, Md,tot=1295 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1295, MSdy=1192 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5872 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5872 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 445.9,
                "status": "OK",
                "md_tot_kncm": 1295.15,
                "m2d_kncm": 849.28,
                "nu": 0.1486,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.61,
                "m1d_kncm": 1191.5,
                "status": "OK",
                "md_tot_kncm": 1191.5,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1112,
            "interacao": 0.5872,
            "mrdx_kncm": 2593.36,
            "mrdy_kncm": 5708.45,
            "msdx_kncm": 1295.2,
            "msdy_kncm": 1191.5,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 212.3 kN, Mdx = 240 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1192 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 446 kN·cm governa sobre Mdx = 240",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=849, Md,tot=1295 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1295, MSdy=1192 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5872 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5872 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          254,
          255,
          256
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=1.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=11.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "254": {
            "N_i_kn": 212.32428487146137,
            "N_j_kn": -212.32428487146137,
            "Mz_i_knm": -1.61,
            "Mz_j_knm": -0.638,
            "My_i_knm": 6.022,
            "My_j_knm": 11.749,
            "M_i_knm": 6.022,
            "M_j_knm": 11.749,
            "L_m": 3.7
          },
          "255": {
            "N_i_kn": 51.08688910397541,
            "N_j_kn": -51.08688910397541,
            "Mz_i_knm": -0.458,
            "Mz_j_knm": 0.395,
            "My_i_knm": -11.675,
            "My_j_knm": 11.915,
            "M_i_knm": 11.675,
            "M_j_knm": 11.915,
            "L_m": 0.04999999999999982
          },
          "256": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3DyGoLId5EExBCwW$gCJUk",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9925,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9925,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1615,
            "interacao": 0.8228,
            "mrdx_kncm": 2664.88,
            "mrdy_kncm": 5879.81,
            "msdx_kncm": 1877.1,
            "msdy_kncm": 1317.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 224.6 kN, Mdx = 978 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1317 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=899, Md,tot=1877 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1877, MSdy=1317 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8228 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8228 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.36,
                "m1d_kncm": 978.5,
                "status": "OK",
                "md_tot_kncm": 1877.06,
                "m2d_kncm": 898.56,
                "nu": 0.1572,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.86,
                "m1d_kncm": 1317.0,
                "status": "OK",
                "md_tot_kncm": 1317.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1798,
            "interacao": 0.913,
            "mrdx_kncm": 2664.88,
            "mrdy_kncm": 5879.81,
            "msdx_kncm": 2089.6,
            "msdy_kncm": 1317.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 224.6 kN, Mdx = 1191 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1317 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=899, Md,tot=2090 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2090, MSdy=1317 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.913 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.913 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          257,
          258,
          259
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=9.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=13.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "257": {
            "N_i_kn": 224.64008745693232,
            "N_j_kn": -224.64008745693232,
            "Mz_i_knm": -6.242,
            "Mz_j_knm": -9.785,
            "My_i_knm": 6.571,
            "My_j_knm": 12.496,
            "M_i_knm": 6.571,
            "M_j_knm": 12.496,
            "L_m": 3.7
          },
          "258": {
            "N_i_kn": 53.77103846045429,
            "N_j_kn": -53.77103846045429,
            "Mz_i_knm": 0.452,
            "Mz_j_knm": -0.499,
            "My_i_knm": -12.922,
            "My_j_knm": 13.17,
            "M_i_knm": 12.922,
            "M_j_knm": 13.17,
            "L_m": 0.04999999999999982
          },
          "259": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1jaqo5f49F2gOPXtd0kZTu",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 69.22,
              "alpha_b": 0.7888,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 50.46,
              "alpha_b": 0.7888,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=69.22; dir y: λ=32.0 vs λ1=50.46.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.49,
            "rho_pct": 2.186,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5438,
            "interacao": 1.0,
            "mrdx_kncm": 5676.96,
            "mrdy_kncm": 14017.32,
            "msdx_kncm": 5508.5,
            "msdy_kncm": 866.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 107.3 kN, Mdx = 5080 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 867 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=54.6 ⇒ 2ª ordem; M2d=429, Md,tot=5509 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5509, MSdy=867 kN·cm; Resiste com As = 17.49 cm² (2.19%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 17.49 cm² (2.19%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 54.6,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 47.36,
                "m1d_kncm": 5079.5,
                "status": "OK",
                "md_tot_kncm": 5508.54,
                "m2d_kncm": 429.04,
                "nu": 0.0751,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 8.08,
                "m1d_kncm": 866.9,
                "status": "OK",
                "md_tot_kncm": 866.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=54.6 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.79,
            "rho_pct": 2.224,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5529,
            "interacao": 1.0,
            "mrdx_kncm": 5755.23,
            "mrdy_kncm": 14227.23,
            "msdx_kncm": 5587.6,
            "msdy_kncm": 866.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 107.3 kN, Mdx = 5159 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 867 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=55.1 ⇒ 2ª ordem; M2d=429, Md,tot=5588 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5588, MSdy=867 kN·cm; Resiste com As = 17.79 cm² (2.22%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 17.79 cm² (2.22%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          260,
          261,
          262
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=50.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=8.7 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "260": {
            "N_i_kn": 107.2638593818052,
            "N_j_kn": -107.2638593818052,
            "Mz_i_knm": 23.979,
            "Mz_j_knm": 50.795,
            "My_i_knm": 5.766,
            "My_j_knm": 8.669,
            "M_i_knm": 23.979,
            "M_j_knm": 50.795,
            "L_m": 3.7
          },
          "261": {
            "N_i_kn": 32.33609828128192,
            "N_j_kn": -32.33609828128192,
            "Mz_i_knm": -1.413,
            "Mz_j_knm": 1.384,
            "My_i_knm": -8.269,
            "My_j_knm": 8.437,
            "M_i_knm": 8.269,
            "M_j_knm": 8.437,
            "L_m": 0.04999999999999982
          },
          "262": {
            "N_i_kn": 0.3500000000001364,
            "N_j_kn": -0.3500000000001364,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1FDm$__$j8DgUQAo$KLSon",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 68.13,
              "alpha_b": 0.809,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 49.52,
              "alpha_b": 0.809,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=68.13; dir y: λ=32.0 vs λ1=49.52.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.0,
            "rho_pct": 2.25,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5595,
            "interacao": 1.0,
            "mrdx_kncm": 5816.14,
            "mrdy_kncm": 14390.63,
            "msdx_kncm": 5654.8,
            "msdy_kncm": 841.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 108.3 kN, Mdx = 5221 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 842 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=55.1 ⇒ 2ª ordem; M2d=433, Md,tot=5655 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5655, MSdy=842 kN·cm; Resiste com As = 18.00 cm² (2.25%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 18.00 cm² (2.25%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 55.12,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 48.19,
                "m1d_kncm": 5221.4,
                "status": "OK",
                "md_tot_kncm": 5654.8,
                "m2d_kncm": 433.4,
                "nu": 0.0758,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 7.77,
                "m1d_kncm": 841.7,
                "status": "OK",
                "md_tot_kncm": 841.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=55.12 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.3,
            "rho_pct": 2.288,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5686,
            "interacao": 1.0,
            "mrdx_kncm": 5894.4,
            "mrdy_kncm": 14600.57,
            "msdx_kncm": 5733.9,
            "msdy_kncm": 841.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 108.3 kN, Mdx = 5300 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 842 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=55.6 ⇒ 2ª ordem; M2d=433, Md,tot=5734 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5734, MSdy=842 kN·cm; Resiste com As = 18.30 cm² (2.29%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 18.30 cm² (2.29%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          263,
          264,
          265
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=52.2 kN·m (resistido pela dimensão 0.20 m) · My,máx=8.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "263": {
            "N_i_kn": 108.34627591203345,
            "N_j_kn": -108.34627591203345,
            "Mz_i_knm": -27.278,
            "Mz_j_knm": -52.214,
            "My_i_knm": -5.307,
            "My_j_knm": -8.417,
            "M_i_knm": 27.278,
            "M_j_knm": 52.214,
            "L_m": 3.7
          },
          "264": {
            "N_i_kn": 32.562022841540056,
            "N_j_kn": -32.562022841540056,
            "Mz_i_knm": -0.65,
            "Mz_j_knm": 0.658,
            "My_i_knm": 8.025,
            "My_j_knm": -8.151,
            "M_i_knm": 8.025,
            "M_j_knm": 8.151,
            "L_m": 0.04999999999999982
          },
          "265": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0O3YMyIfX8kBVK9K_kY3BJ",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9925,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9925,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1269,
            "interacao": 0.6521,
            "mrdx_kncm": 2663.44,
            "mrdy_kncm": 5876.52,
            "msdx_kncm": 1471.6,
            "msdy_kncm": 1285.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 224.4 kN, Mdx = 574 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1285 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=898, Md,tot=1472 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1472, MSdy=1285 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6521 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6521 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.56,
                "m1d_kncm": 574.0,
                "status": "OK",
                "md_tot_kncm": 1471.56,
                "m2d_kncm": 897.56,
                "nu": 0.1571,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.73,
                "m1d_kncm": 1285.3,
                "status": "OK",
                "md_tot_kncm": 1285.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1446,
            "interacao": 0.7391,
            "mrdx_kncm": 2663.44,
            "mrdy_kncm": 5876.52,
            "msdx_kncm": 1686.0,
            "msdy_kncm": 1285.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 224.4 kN, Mdx = 788 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1285 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=898, Md,tot=1686 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1686, MSdy=1285 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7391 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.7391 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          266,
          267,
          268
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "266": {
            "N_i_kn": 224.39265422874527,
            "N_j_kn": -224.39265422874527,
            "Mz_i_knm": 1.626,
            "Mz_j_knm": 5.74,
            "My_i_knm": -6.11,
            "My_j_knm": -12.185,
            "M_i_knm": 6.11,
            "M_j_knm": 12.185,
            "L_m": 3.7
          },
          "267": {
            "N_i_kn": 53.88170204360358,
            "N_j_kn": -53.88170204360358,
            "Mz_i_knm": -0.44,
            "Mz_j_knm": 0.356,
            "My_i_knm": 12.613,
            "My_j_knm": -12.853,
            "M_i_knm": 12.613,
            "M_j_knm": 12.853,
            "L_m": 0.04999999999999982
          },
          "268": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1BZ_adQlv3qxzy9JtvI9Mq",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9919,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1109,
            "interacao": 0.5848,
            "mrdx_kncm": 2594.12,
            "mrdy_kncm": 5710.28,
            "msdx_kncm": 1296.0,
            "msdy_kncm": 1175.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 212.4 kN, Mdx = 284 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1175 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 446 kN·cm governa sobre Mdx = 284",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=850, Md,tot=1296 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1296, MSdy=1175 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5848 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5848 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 446.1,
                "status": "OK",
                "md_tot_kncm": 1295.95,
                "m2d_kncm": 849.8,
                "nu": 0.1487,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.53,
                "m1d_kncm": 1175.1,
                "status": "OK",
                "md_tot_kncm": 1175.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1131,
            "interacao": 0.5959,
            "mrdx_kncm": 2594.12,
            "mrdy_kncm": 5710.28,
            "msdx_kncm": 1323.3,
            "msdy_kncm": 1175.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 212.4 kN, Mdx = 474 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1175 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=850, Md,tot=1323 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1323, MSdy=1175 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5959 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5959 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          269,
          270,
          271
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=11.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "269": {
            "N_i_kn": 212.4539494817823,
            "N_j_kn": -212.4539494817823,
            "Mz_i_knm": -2.727,
            "Mz_j_knm": -2.844,
            "My_i_knm": -5.793,
            "My_j_knm": -11.596,
            "M_i_knm": 5.793,
            "M_j_knm": 11.596,
            "L_m": 3.7
          },
          "270": {
            "N_i_kn": 51.138125130342814,
            "N_j_kn": -51.138125130342814,
            "Mz_i_knm": 0.094,
            "Mz_j_knm": -0.147,
            "My_i_knm": 11.514,
            "My_j_knm": -11.751,
            "M_i_knm": 11.514,
            "M_j_knm": 11.751,
            "L_m": 0.04999999999999982
          },
          "271": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3yZoBq8mj1nQOm$bipycOv",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1145,
            "interacao": 0.6021,
            "mrdx_kncm": 2611.02,
            "mrdy_kncm": 5750.67,
            "msdx_kncm": 1313.6,
            "msdy_kncm": 1272.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.3 kN, Mdx = 208 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1272 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 208",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=861, Md,tot=1314 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1314, MSdy=1272 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6021 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6021 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 452.2,
                "status": "OK",
                "md_tot_kncm": 1313.57,
                "m2d_kncm": 861.36,
                "nu": 0.1507,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.91,
                "m1d_kncm": 1272.1,
                "status": "OK",
                "md_tot_kncm": 1272.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1145,
            "interacao": 0.6021,
            "mrdx_kncm": 2611.02,
            "mrdy_kncm": 5750.67,
            "msdx_kncm": 1313.6,
            "msdy_kncm": 1272.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.3 kN, Mdx = 368 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1272 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 368",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=861, Md,tot=1314 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1314, MSdy=1272 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6021 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6021 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          272,
          273,
          274
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.7 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "272": {
            "N_i_kn": 215.3374028056168,
            "N_j_kn": -215.3374028056168,
            "Mz_i_knm": -2.077,
            "Mz_j_knm": -1.421,
            "My_i_knm": -6.238,
            "My_j_knm": -12.385,
            "M_i_knm": 6.238,
            "M_j_knm": 12.385,
            "L_m": 3.7
          },
          "273": {
            "N_i_kn": 53.90901824662433,
            "N_j_kn": -53.90901824662433,
            "Mz_i_knm": -0.067,
            "Mz_j_knm": 0.007,
            "My_i_knm": 12.468,
            "My_j_knm": -12.721,
            "M_i_knm": 12.468,
            "M_j_knm": 12.721,
            "L_m": 0.04999999999999982
          },
          "274": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3j_NVChRn03gXnMvHmEave",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1122,
            "interacao": 0.5905,
            "mrdx_kncm": 2601.38,
            "mrdy_kncm": 5727.62,
            "msdx_kncm": 1303.5,
            "msdy_kncm": 1205.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 266 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1205 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 266",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1304 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1304, MSdy=1205 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5905 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5905 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 448.7,
                "status": "OK",
                "md_tot_kncm": 1303.51,
                "m2d_kncm": 854.76,
                "nu": 0.1496,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.64,
                "m1d_kncm": 1205.4,
                "status": "OK",
                "md_tot_kncm": 1205.4,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1147,
            "interacao": 0.6032,
            "mrdx_kncm": 2601.38,
            "mrdy_kncm": 5727.62,
            "msdx_kncm": 1335.1,
            "msdy_kncm": 1205.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 480 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1205 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1335 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1335, MSdy=1205 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6032 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6032 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          275,
          276,
          277
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "275": {
            "N_i_kn": 213.6866589367647,
            "N_j_kn": -213.6866589367647,
            "Mz_i_knm": -2.659,
            "Mz_j_knm": -2.463,
            "My_i_knm": -5.984,
            "My_j_knm": -11.851,
            "M_i_knm": 5.984,
            "M_j_knm": 11.851,
            "L_m": 3.7
          },
          "276": {
            "N_i_kn": 51.750202785191505,
            "N_j_kn": -51.750202785191505,
            "Mz_i_knm": -0.631,
            "Mz_j_knm": 0.562,
            "My_i_knm": 11.813,
            "My_j_knm": -12.054,
            "M_i_knm": 11.813,
            "M_j_knm": 12.054,
            "L_m": 0.04999999999999982
          },
          "277": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2BmLydpCnEye4aAdv3MfOI",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1128,
            "interacao": 0.5923,
            "mrdx_kncm": 2609.27,
            "mrdy_kncm": 5746.49,
            "msdx_kncm": 1311.7,
            "msdy_kncm": 1209.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.0 kN, Mdx = 228 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1210 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 228",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=860, Md,tot=1312 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1312, MSdy=1210 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 451.6,
                "status": "OK",
                "md_tot_kncm": 1311.74,
                "m2d_kncm": 860.16,
                "nu": 0.1505,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.63,
                "m1d_kncm": 1209.9,
                "status": "OK",
                "md_tot_kncm": 1209.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1128,
            "interacao": 0.5923,
            "mrdx_kncm": 2609.27,
            "mrdy_kncm": 5746.49,
            "msdx_kncm": 1311.7,
            "msdy_kncm": 1209.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.0 kN, Mdx = 391 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1210 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 452 kN·cm governa sobre Mdx = 391",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=860, Md,tot=1312 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1312, MSdy=1210 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          278,
          279,
          280
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "278": {
            "N_i_kn": 215.03816862195004,
            "N_j_kn": -215.03816862195004,
            "Mz_i_knm": -2.275,
            "Mz_j_knm": -1.573,
            "My_i_knm": -6.02,
            "My_j_knm": -11.892,
            "M_i_knm": 6.02,
            "M_j_knm": 11.892,
            "L_m": 3.7
          },
          "279": {
            "N_i_kn": 53.0895524955904,
            "N_j_kn": -53.0895524955904,
            "Mz_i_knm": 0.297,
            "Mz_j_knm": -0.352,
            "My_i_knm": 11.857,
            "My_j_knm": -12.099,
            "M_i_knm": 11.857,
            "M_j_knm": 12.099,
            "L_m": 0.04999999999999982
          },
          "280": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0purQP$GrCvxWMu0EMdP63",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1149,
            "interacao": 0.6036,
            "mrdx_kncm": 2612.89,
            "mrdy_kncm": 5755.14,
            "msdx_kncm": 1315.5,
            "msdy_kncm": 1280.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.7 kN, Mdx = 281 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1280 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 453 kN·cm governa sobre Mdx = 281",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=863, Md,tot=1316 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1316, MSdy=1280 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6036 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6036 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 452.9,
                "status": "OK",
                "md_tot_kncm": 1315.53,
                "m2d_kncm": 862.64,
                "nu": 0.151,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.94,
                "m1d_kncm": 1280.1,
                "status": "OK",
                "md_tot_kncm": 1280.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.116,
            "interacao": 0.6091,
            "mrdx_kncm": 2612.89,
            "mrdy_kncm": 5755.14,
            "msdx_kncm": 1329.3,
            "msdy_kncm": 1280.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 215.7 kN, Mdx = 467 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1280 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=863, Md,tot=1329 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1329, MSdy=1280 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6091 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6091 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          281,
          282,
          283
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "281": {
            "N_i_kn": 215.66446777939112,
            "N_j_kn": -215.66446777939112,
            "Mz_i_knm": -2.814,
            "Mz_j_knm": -2.53,
            "My_i_knm": -6.324,
            "My_j_knm": -12.46,
            "M_i_knm": 6.324,
            "M_j_knm": 12.46,
            "L_m": 3.7
          },
          "282": {
            "N_i_kn": 53.829389528027605,
            "N_j_kn": -53.829389528027605,
            "Mz_i_knm": -0.694,
            "Mz_j_knm": 0.628,
            "My_i_knm": 12.546,
            "My_j_knm": -12.801,
            "M_i_knm": 12.546,
            "M_j_knm": 12.801,
            "L_m": 0.04999999999999982
          },
          "283": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3ojomT7zn3gxTYGaE$B8sh",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1118,
            "interacao": 0.5876,
            "mrdx_kncm": 2603.08,
            "mrdy_kncm": 5731.67,
            "msdx_kncm": 1305.3,
            "msdy_kncm": 1185.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 214.0 kN, Mdx = 275 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1185 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 275",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=856, Md,tot=1305 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1305, MSdy=1185 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5876 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5876 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 449.4,
                "status": "OK",
                "md_tot_kncm": 1305.28,
                "m2d_kncm": 855.92,
                "nu": 0.1498,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.54,
                "m1d_kncm": 1185.1,
                "status": "OK",
                "md_tot_kncm": 1185.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1152,
            "interacao": 0.6047,
            "mrdx_kncm": 2603.08,
            "mrdy_kncm": 5731.67,
            "msdx_kncm": 1347.5,
            "msdy_kncm": 1185.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 214.0 kN, Mdx = 492 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1185 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=856, Md,tot=1348 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1348, MSdy=1185 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6047 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6047 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          284,
          285,
          286
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=11.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "284": {
            "N_i_kn": 213.9756397239265,
            "N_j_kn": -213.9756397239265,
            "Mz_i_knm": -2.752,
            "Mz_j_knm": -2.284,
            "My_i_knm": -5.954,
            "My_j_knm": -11.711,
            "M_i_knm": 5.954,
            "M_j_knm": 11.711,
            "L_m": 3.7
          },
          "285": {
            "N_i_kn": 51.10442267543476,
            "N_j_kn": -51.10442267543476,
            "Mz_i_knm": 0.195,
            "Mz_j_knm": -0.247,
            "My_i_knm": 11.614,
            "My_j_knm": -11.851,
            "M_i_knm": 11.614,
            "M_j_knm": 11.851,
            "L_m": 0.04999999999999982
          },
          "286": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2otNMw12P3Eu5RJ_SYASDM",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.992,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.114,
            "interacao": 0.6019,
            "mrdx_kncm": 2601.44,
            "mrdy_kncm": 5727.76,
            "msdx_kncm": 1303.6,
            "msdy_kncm": 1279.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 205 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1279 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 205",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1304 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1304, MSdy=1279 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6019 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6019 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 448.8,
                "status": "OK",
                "md_tot_kncm": 1303.57,
                "m2d_kncm": 854.8,
                "nu": 0.1496,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.99,
                "m1d_kncm": 1279.2,
                "status": "OK",
                "md_tot_kncm": 1279.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.114,
            "interacao": 0.6019,
            "mrdx_kncm": 2601.44,
            "mrdy_kncm": 5727.76,
            "msdx_kncm": 1303.6,
            "msdy_kncm": 1279.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 213.7 kN, Mdx = 284 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1279 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 449 kN·cm governa sobre Mdx = 284",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=855, Md,tot=1304 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1304, MSdy=1279 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6019 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6019 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          287,
          288,
          289
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "287": {
            "N_i_kn": 213.7016409042627,
            "N_j_kn": -213.7016409042627,
            "Mz_i_knm": -2.046,
            "Mz_j_knm": -0.747,
            "My_i_knm": -6.34,
            "My_j_knm": -12.453,
            "M_i_knm": 6.34,
            "M_j_knm": 12.453,
            "L_m": 3.7
          },
          "288": {
            "N_i_kn": 53.888997619425936,
            "N_j_kn": -53.888997619425936,
            "Mz_i_knm": -0.033,
            "Mz_j_knm": -0.017,
            "My_i_knm": 12.535,
            "My_j_knm": -12.792,
            "M_i_knm": 12.535,
            "M_j_knm": 12.792,
            "L_m": 0.04999999999999982
          },
          "289": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "04lRlIsRP5OBE23AVekEh4",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1702,
            "interacao": 0.8661,
            "mrdx_kncm": 2654.05,
            "mrdy_kncm": 5853.97,
            "msdx_kncm": 2010.9,
            "msdy_kncm": 1200.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 222.8 kN, Mdx = 1120 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1200 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=891, Md,tot=2011 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2011, MSdy=1200 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8661 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8661 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.03,
                "m1d_kncm": 1119.9,
                "status": "OK",
                "md_tot_kncm": 2010.94,
                "m2d_kncm": 891.04,
                "nu": 0.1559,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.39,
                "m1d_kncm": 1200.1,
                "status": "OK",
                "md_tot_kncm": 1200.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1888,
            "interacao": 0.9579,
            "mrdx_kncm": 2654.05,
            "mrdy_kncm": 5853.97,
            "msdx_kncm": 2223.5,
            "msdy_kncm": 1200.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 222.8 kN, Mdx = 1332 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1200 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=891, Md,tot=2223 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2223, MSdy=1200 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9579 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9579 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          290,
          291,
          292
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=11.2 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.0 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "290": {
            "N_i_kn": 222.76228453727595,
            "N_j_kn": -222.76228453727595,
            "Mz_i_knm": -7.334,
            "Mz_j_knm": -11.199,
            "My_i_knm": -5.72,
            "My_j_knm": -11.565,
            "M_i_knm": 7.334,
            "M_j_knm": 11.565,
            "L_m": 3.7
          },
          "291": {
            "N_i_kn": 51.81833654165894,
            "N_j_kn": -51.81833654165894,
            "Mz_i_knm": -0.533,
            "Mz_j_knm": 0.468,
            "My_i_knm": 11.767,
            "My_j_knm": -12.001,
            "M_i_knm": 11.767,
            "M_j_knm": 12.001,
            "L_m": 0.04999999999999982
          },
          "292": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2lXU6gS8LFpuVdSUawMbfU",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 69.26,
              "alpha_b": 0.7858,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 50.54,
              "alpha_b": 0.7858,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=69.26; dir y: λ=32.0 vs λ1=50.54.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.32,
            "rho_pct": 2.165,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5394,
            "interacao": 1.0,
            "mrdx_kncm": 5639.99,
            "mrdy_kncm": 13918.19,
            "msdx_kncm": 5541.5,
            "msdy_kncm": 554.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 108.5 kN, Mdx = 5108 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 555 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=54.4 ⇒ 2ª ordem; M2d=434, Md,tot=5541 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5541, MSdy=555 kN·cm; Resiste com As = 17.32 cm² (2.16%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 17.32 cm² (2.16%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 54.42,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 47.08,
                "m1d_kncm": 5107.5,
                "status": "OK",
                "md_tot_kncm": 5541.46,
                "m2d_kncm": 433.96,
                "nu": 0.0759,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 5.11,
                "m1d_kncm": 554.7,
                "status": "OK",
                "md_tot_kncm": 554.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=54.42 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.62,
            "rho_pct": 2.203,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5485,
            "interacao": 1.0,
            "mrdx_kncm": 5718.72,
            "mrdy_kncm": 14129.31,
            "msdx_kncm": 5620.5,
            "msdy_kncm": 554.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.5647,
            "v_vento_base_kn": 0.7059,
            "w_vento_kn_m": 0.28234,
            "largura_tributaria_m": 3.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 108.5 kN, Mdx = 5187 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 555 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=54.9 ⇒ 2ª ordem; M2d=434, Md,tot=5621 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5621, MSdy=555 kN·cm; Resiste com As = 17.62 cm² (2.20%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 17.62 cm² (2.20%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          293,
          294,
          295
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=51.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=5.5 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "293": {
            "N_i_kn": 108.48791459819614,
            "N_j_kn": -108.48791459819614,
            "Mz_i_knm": 23.729,
            "Mz_j_knm": 51.075,
            "My_i_knm": -1.488,
            "My_j_knm": -5.547,
            "M_i_knm": 23.729,
            "M_j_knm": 51.075,
            "L_m": 3.7
          },
          "294": {
            "N_i_kn": 32.441371622508996,
            "N_j_kn": -32.441371622508996,
            "Mz_i_knm": -0.92,
            "Mz_j_knm": 0.83,
            "My_i_knm": 5.31,
            "My_j_knm": -5.465,
            "M_i_knm": 5.31,
            "M_j_knm": 5.465,
            "L_m": 0.04999999999999982
          },
          "295": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1jIhBFlb99r8jNowsNzn6F",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 59.37,
              "alpha_b": 0.821,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 44.91,
              "alpha_b": 0.821,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=59.37 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=44.91.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.06,
            "rho_pct": 2.133,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5393,
            "interacao": 1.0,
            "mrdx_kncm": 5724.74,
            "mrdy_kncm": 14146.99,
            "msdx_kncm": 5665.4,
            "msdy_kncm": 364.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.9 kN, Mdx = 5126 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 128 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 364 kN·cm governa sobre Mdy = 128",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=48.7 ⇒ 2ª ordem; M2d=540, Md,tot=5665 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5665, MSdy=364 kN·cm; Resiste com As = 17.06 cm² (2.13%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 17.06 cm² (2.13%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 48.74,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 37.99,
                "m1d_kncm": 5125.7,
                "status": "OK",
                "md_tot_kncm": 5665.38,
                "m2d_kncm": 539.68,
                "nu": 0.0944,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 364.3,
                "status": "OK",
                "md_tot_kncm": 364.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=48.74 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.44,
            "rho_pct": 2.18,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5505,
            "interacao": 1.0,
            "mrdx_kncm": 5823.24,
            "mrdy_kncm": 14411.84,
            "msdx_kncm": 5764.2,
            "msdy_kncm": 364.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.9 kN, Mdx = 5225 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 128 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 364 kN·cm governa sobre Mdy = 128",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=49.2 ⇒ 2ª ordem; M2d=540, Md,tot=5764 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5764, MSdy=364 kN·cm; Resiste com As = 17.44 cm² (2.18%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 17.44 cm² (2.18%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          296,
          297,
          298
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=51.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=1.3 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "296": {
            "N_i_kn": 134.91579045790783,
            "N_j_kn": -134.91579045790783,
            "Mz_i_knm": -28.314,
            "Mz_j_knm": -51.257,
            "My_i_knm": -1.284,
            "My_j_knm": -0.43,
            "M_i_knm": 28.314,
            "M_j_knm": 51.257,
            "L_m": 3.7
          },
          "297": {
            "N_i_kn": 46.5215672021568,
            "N_j_kn": -46.5215672021568,
            "Mz_i_knm": -18.507,
            "Mz_j_knm": 18.047,
            "My_i_knm": 0.313,
            "My_j_knm": -0.155,
            "M_i_knm": 18.507,
            "M_j_knm": 18.047,
            "L_m": 0.04999999999999982
          },
          "298": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2I8KEftZ56vR48SsYzBwPY",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8241,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8241,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1261,
            "interacao": 0.5822,
            "mrdx_kncm": 2934.05,
            "mrdy_kncm": 6465.48,
            "msdx_kncm": 1669.1,
            "msdy_kncm": 738.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.6 kN, Mdx = 257 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 10 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 575 kN·cm governa sobre Mdx = 257",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 739 kN·cm governa sobre Mdy = 10",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1095, Md,tot=1669 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1669, MSdy=739 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5822 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5822 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 574.6,
                "status": "OK",
                "md_tot_kncm": 1669.14,
                "m2d_kncm": 1094.52,
                "nu": 0.1915,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 738.8,
                "status": "OK",
                "md_tot_kncm": 738.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1261,
            "interacao": 0.5822,
            "mrdx_kncm": 2934.05,
            "mrdy_kncm": 6465.48,
            "msdx_kncm": 1669.1,
            "msdy_kncm": 738.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.6 kN, Mdx = 472 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 10 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 575 kN·cm governa sobre Mdx = 472",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 739 kN·cm governa sobre Mdy = 10",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1095, Md,tot=1669 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1669, MSdy=739 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5822 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5822 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          299,
          300,
          301
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=2.6 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "299": {
            "N_i_kn": 273.62825372272135,
            "N_j_kn": -273.62825372272135,
            "Mz_i_knm": -1.441,
            "Mz_j_knm": 2.572,
            "My_i_knm": 0.071,
            "My_j_knm": 0.038,
            "M_i_knm": 1.441,
            "M_j_knm": 2.572,
            "L_m": 3.7
          },
          "300": {
            "N_i_kn": 80.43370412903823,
            "N_j_kn": -80.43370412903823,
            "Mz_i_knm": 1.797,
            "Mz_j_knm": -1.981,
            "My_i_knm": 0.037,
            "My_j_knm": -0.097,
            "M_i_knm": 1.797,
            "M_j_knm": 1.981,
            "L_m": 0.04999999999999982
          },
          "301": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "226kSx9CD9peWkp_qjMwsF",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9819,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9819,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1207,
            "interacao": 0.5672,
            "mrdx_kncm": 2873.81,
            "mrdy_kncm": 6338.32,
            "msdx_kncm": 1599.7,
            "msdy_kncm": 708.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 262.2 kN, Mdx = 527 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 70 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 551 kN·cm governa sobre Mdx = 527",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 708 kN·cm governa sobre Mdy = 70",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1049, Md,tot=1600 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1600, MSdy=708 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5672 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5672 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 550.7,
                "status": "OK",
                "md_tot_kncm": 1599.72,
                "m2d_kncm": 1049.0,
                "nu": 0.1836,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 708.1,
                "status": "OK",
                "md_tot_kncm": 708.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1342,
            "interacao": 0.6292,
            "mrdx_kncm": 2873.81,
            "mrdy_kncm": 6338.32,
            "msdx_kncm": 1765.1,
            "msdy_kncm": 708.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 262.2 kN, Mdx = 716 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 70 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 708 kN·cm governa sobre Mdy = 70",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1049, Md,tot=1765 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1765, MSdy=708 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6292 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6292 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          302,
          303,
          304
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.7 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "302": {
            "N_i_kn": 262.25314713352685,
            "N_j_kn": -262.25314713352685,
            "Mz_i_knm": -5.27,
            "Mz_j_knm": -5.031,
            "My_i_knm": -0.256,
            "My_j_knm": -0.609,
            "M_i_knm": 5.27,
            "M_j_knm": 5.031,
            "L_m": 3.7
          },
          "303": {
            "N_i_kn": 76.84398314599093,
            "N_j_kn": -76.84398314599093,
            "Mz_i_knm": -0.6,
            "Mz_j_knm": 0.444,
            "My_i_knm": 0.684,
            "My_j_knm": -0.695,
            "M_i_knm": 0.684,
            "M_j_knm": 0.695,
            "L_m": 0.04999999999999982
          },
          "304": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3yeEd6gMz9GOtfy5cS9NO7",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.89,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.89,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1227,
            "interacao": 0.5727,
            "mrdx_kncm": 2896.05,
            "mrdy_kncm": 6385.41,
            "msdx_kncm": 1625.2,
            "msdy_kncm": 719.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.4 kN, Mdx = 436 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 21 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 559 kN·cm governa sobre Mdx = 436",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 719 kN·cm governa sobre Mdy = 21",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1066, Md,tot=1625 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1625, MSdy=719 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5727 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5727 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 559.5,
                "status": "OK",
                "md_tot_kncm": 1625.16,
                "m2d_kncm": 1065.68,
                "nu": 0.1865,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 719.3,
                "status": "OK",
                "md_tot_kncm": 719.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1256,
            "interacao": 0.5863,
            "mrdx_kncm": 2896.05,
            "mrdy_kncm": 6385.41,
            "msdx_kncm": 1661.9,
            "msdy_kncm": 719.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 266.4 kN, Mdx = 596 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 21 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 719 kN·cm governa sobre Mdy = 21",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1066, Md,tot=1662 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1662, MSdy=719 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5863 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5863 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          305,
          306,
          307
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=4.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "305": {
            "N_i_kn": 266.42444895875434,
            "N_j_kn": -266.42444895875434,
            "Mz_i_knm": -4.363,
            "Mz_j_knm": -3.163,
            "My_i_knm": -0.094,
            "My_j_knm": -0.207,
            "M_i_knm": 4.363,
            "M_j_knm": 3.163,
            "L_m": 3.7
          },
          "306": {
            "N_i_kn": 80.55426950379842,
            "N_j_kn": -80.55426950379842,
            "Mz_i_knm": 0.08,
            "Mz_j_knm": -0.197,
            "My_i_knm": 0.146,
            "My_j_knm": -0.159,
            "M_i_knm": 0.146,
            "M_j_knm": 0.197,
            "L_m": 0.04999999999999982
          },
          "307": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2NX1XoAv17cQpoeTo3S0MR",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9613,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9613,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1215,
            "interacao": 0.5693,
            "mrdx_kncm": 2882.48,
            "mrdy_kncm": 6356.68,
            "msdx_kncm": 1609.6,
            "msdy_kncm": 712.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.9 kN, Mdx = 512 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 75 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 512",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 75",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1610 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1610, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5693 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 554.1,
                "status": "OK",
                "md_tot_kncm": 1609.61,
                "m2d_kncm": 1055.48,
                "nu": 0.1847,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 712.4,
                "status": "OK",
                "md_tot_kncm": 712.4,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1355,
            "interacao": 0.6338,
            "mrdx_kncm": 2882.48,
            "mrdy_kncm": 6356.68,
            "msdx_kncm": 1781.9,
            "msdy_kncm": 712.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.9 kN, Mdx = 726 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 75 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 75",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1782 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1782, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6338 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6338 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          308,
          309,
          310
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.7 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "308": {
            "N_i_kn": 263.86878207564814,
            "N_j_kn": -263.86878207564814,
            "Mz_i_knm": -5.119,
            "Mz_j_knm": -4.624,
            "My_i_knm": -0.361,
            "My_j_knm": -0.696,
            "M_i_knm": 5.119,
            "M_j_knm": 4.624,
            "L_m": 3.7
          },
          "309": {
            "N_i_kn": 78.0918208826406,
            "N_j_kn": -78.0918208826406,
            "Mz_i_knm": -0.243,
            "Mz_j_knm": 0.155,
            "My_i_knm": 0.726,
            "My_j_knm": -0.746,
            "M_i_knm": 0.726,
            "M_j_knm": 0.746,
            "L_m": 0.04999999999999982
          },
          "310": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1buRkQWvnF8eKz1M83i5Ej",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8962,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8962,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1221,
            "interacao": 0.571,
            "mrdx_kncm": 2889.35,
            "mrdy_kncm": 6371.24,
            "msdx_kncm": 1617.5,
            "msdy_kncm": 715.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 450 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 78 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 557 kN·cm governa sobre Mdx = 450",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 716 kN·cm governa sobre Mdy = 78",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1061, Md,tot=1617 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1617, MSdy=716 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.571 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.571 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 556.8,
                "status": "OK",
                "md_tot_kncm": 1617.48,
                "m2d_kncm": 1060.64,
                "nu": 0.1856,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 715.9,
                "status": "OK",
                "md_tot_kncm": 715.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1267,
            "interacao": 0.5923,
            "mrdx_kncm": 2889.35,
            "mrdy_kncm": 6371.24,
            "msdx_kncm": 1674.7,
            "msdy_kncm": 715.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.2 kN, Mdx = 614 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 78 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 716 kN·cm governa sobre Mdy = 78",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1061, Md,tot=1675 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1675, MSdy=716 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5923 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          311,
          312,
          313
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=4.5 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "311": {
            "N_i_kn": 265.164627794579,
            "N_j_kn": -265.164627794579,
            "Mz_i_knm": -4.503,
            "Mz_j_knm": -3.334,
            "My_i_knm": -0.392,
            "My_j_knm": -0.727,
            "M_i_knm": 4.503,
            "M_j_knm": 3.334,
            "L_m": 3.7
          },
          "312": {
            "N_i_kn": 79.3157505292329,
            "N_j_kn": -79.3157505292329,
            "Mz_i_knm": -0.002,
            "Mz_j_knm": -0.066,
            "My_i_knm": 0.759,
            "My_j_knm": -0.78,
            "M_i_knm": 0.759,
            "M_j_knm": 0.78,
            "L_m": 0.04999999999999982
          },
          "313": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "37G1Gj4Yb9PuJ9pvZWeMgw",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9463,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9463,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1223,
            "interacao": 0.5716,
            "mrdx_kncm": 2891.54,
            "mrdy_kncm": 6375.86,
            "msdx_kncm": 1620.0,
            "msdy_kncm": 717.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.6 kN, Mdx = 506 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 25 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 558 kN·cm governa sobre Mdx = 506",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 717 kN·cm governa sobre Mdy = 25",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1062, Md,tot=1620 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1620, MSdy=717 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5716 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 557.7,
                "status": "OK",
                "md_tot_kncm": 1619.98,
                "m2d_kncm": 1062.28,
                "nu": 0.1859,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 717.0,
                "status": "OK",
                "md_tot_kncm": 717.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1331,
            "interacao": 0.6212,
            "mrdx_kncm": 2891.54,
            "mrdy_kncm": 6375.86,
            "msdx_kncm": 1753.1,
            "msdy_kncm": 717.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 265.6 kN, Mdx = 691 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 25 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 717 kN·cm governa sobre Mdy = 25",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1062, Md,tot=1753 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1753, MSdy=717 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6212 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6212 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          314,
          315,
          316
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "314": {
            "N_i_kn": 265.56838313218157,
            "N_j_kn": -265.56838313218157,
            "Mz_i_knm": -5.056,
            "Mz_j_knm": -4.377,
            "My_i_knm": -0.165,
            "My_j_knm": -0.25,
            "M_i_knm": 5.056,
            "M_j_knm": 4.377,
            "L_m": 3.7
          },
          "315": {
            "N_i_kn": 80.56520824020117,
            "N_j_kn": -80.56520824020117,
            "Mz_i_knm": 0.054,
            "Mz_j_knm": -0.102,
            "My_i_knm": 0.188,
            "My_j_knm": -0.198,
            "M_i_knm": 0.188,
            "M_j_knm": 0.198,
            "L_m": 0.04999999999999982
          },
          "316": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2S_9nKg59FyPcHHAln2_wK",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9502,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9502,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1213,
            "interacao": 0.569,
            "mrdx_kncm": 2881.19,
            "mrdy_kncm": 6353.97,
            "msdx_kncm": 1608.1,
            "msdy_kncm": 711.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.6 kN, Mdx = 516 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 78 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 554 kN·cm governa sobre Mdx = 516",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 78",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1608 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1608, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.569 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 553.6,
                "status": "OK",
                "md_tot_kncm": 1608.14,
                "m2d_kncm": 1054.52,
                "nu": 0.1845,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 711.8,
                "status": "OK",
                "md_tot_kncm": 711.8,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.136,
            "interacao": 0.6362,
            "mrdx_kncm": 2881.19,
            "mrdy_kncm": 6353.97,
            "msdx_kncm": 1787.5,
            "msdy_kncm": 711.8,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 263.6 kN, Mdx = 733 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 78 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 712 kN·cm governa sobre Mdy = 78",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1055, Md,tot=1787 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1787, MSdy=712 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6362 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.6362 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          317,
          318,
          319
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=5.2 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.8 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "317": {
            "N_i_kn": 263.6311490419852,
            "N_j_kn": -263.6311490419852,
            "Mz_i_knm": -5.165,
            "Mz_j_knm": -4.522,
            "My_i_knm": -0.407,
            "My_j_knm": -0.707,
            "M_i_knm": 5.165,
            "M_j_knm": 4.522,
            "L_m": 3.7
          },
          "318": {
            "N_i_kn": 76.85090515705451,
            "N_j_kn": -76.85090515705451,
            "Mz_i_knm": -0.232,
            "Mz_j_knm": 0.193,
            "My_i_knm": 0.765,
            "My_j_knm": -0.783,
            "M_i_knm": 0.765,
            "M_j_knm": 0.783,
            "L_m": 0.04999999999999982
          },
          "319": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0jEEDTduD22Rj9PWaYK2hZ",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8227,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8227,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1219,
            "interacao": 0.5706,
            "mrdx_kncm": 2887.54,
            "mrdy_kncm": 6367.41,
            "msdx_kncm": 1615.4,
            "msdy_kncm": 715.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 264.8 kN, Mdx = 408 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 28 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 556 kN·cm governa sobre Mdx = 408",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 715 kN·cm governa sobre Mdy = 28",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1059, Md,tot=1615 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1615, MSdy=715 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5706 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5706 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 2.1,
                "m1d_kncm": 556.1,
                "status": "OK",
                "md_tot_kncm": 1615.4,
                "m2d_kncm": 1059.28,
                "nu": 0.1854,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 715.0,
                "status": "OK",
                "md_tot_kncm": 715.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1219,
            "interacao": 0.5706,
            "mrdx_kncm": 2887.54,
            "mrdy_kncm": 6367.41,
            "msdx_kncm": 1615.4,
            "msdy_kncm": 715.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 264.8 kN, Mdx = 507 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 28 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção x: M1d,mín = Nd·(1,5+0,03·20) = 556 kN·cm governa sobre Mdx = 507",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 715 kN·cm governa sobre Mdy = 28",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1059, Md,tot=1615 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1615, MSdy=715 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5706 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.5706 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          320,
          321,
          322
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=4.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.3 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "320": {
            "N_i_kn": 264.8208342527188,
            "N_j_kn": -264.8208342527188,
            "Mz_i_knm": -4.083,
            "Mz_j_knm": -2.273,
            "My_i_knm": -0.201,
            "My_j_knm": -0.28,
            "M_i_knm": 4.083,
            "M_j_knm": 2.273,
            "L_m": 3.7
          },
          "321": {
            "N_i_kn": 80.55593643792236,
            "N_j_kn": -80.55593643792236,
            "Mz_i_knm": 0.272,
            "Mz_j_knm": -0.297,
            "My_i_knm": 0.208,
            "My_j_knm": -0.218,
            "M_i_knm": 0.272,
            "M_j_knm": 0.297,
            "L_m": 0.04999999999999982
          },
          "322": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0McMMiEif4M8dLlGoaZYS$",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.8892,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.8892,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1908,
            "interacao": 0.8744,
            "mrdx_kncm": 2932.9,
            "mrdy_kncm": 6463.06,
            "msdx_kncm": 2436.2,
            "msdy_kncm": 738.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.4 kN, Mdx = 1343 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 60 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 738 kN·cm governa sobre Mdy = 60",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1094, Md,tot=2436 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2436, MSdy=738 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8744 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8744 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.91,
                "m1d_kncm": 1342.6,
                "status": "OK",
                "md_tot_kncm": 2436.24,
                "m2d_kncm": 1093.64,
                "nu": 0.1914,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 738.2,
                "status": "OK",
                "md_tot_kncm": 738.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.2095,
            "interacao": 0.9589,
            "mrdx_kncm": 2932.9,
            "mrdy_kncm": 6463.06,
            "msdx_kncm": 2648.8,
            "msdy_kncm": 738.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 273.4 kN, Mdx = 1555 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 60 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 738 kN·cm governa sobre Mdy = 60",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=1094, Md,tot=2649 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2649, MSdy=738 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9589 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9589 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          323,
          324,
          325
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=13.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=0.6 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "323": {
            "N_i_kn": 273.4110437960235,
            "N_j_kn": -273.4110437960235,
            "Mz_i_knm": -9.707,
            "Mz_j_knm": -13.426,
            "My_i_knm": -0.194,
            "My_j_knm": -0.601,
            "M_i_knm": 9.707,
            "M_j_knm": 13.426,
            "L_m": 3.7
          },
          "324": {
            "N_i_kn": 78.01649518419799,
            "N_j_kn": -78.01649518419799,
            "Mz_i_knm": -0.92,
            "Mz_j_knm": 0.9,
            "My_i_knm": 0.57,
            "My_j_knm": -0.58,
            "M_i_knm": 0.92,
            "M_j_knm": 0.9,
            "L_m": 0.04999999999999982
          },
          "325": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0PuOw84mr54PDItBm3u1ci",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 63.97,
              "alpha_b": 0.7769,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 48.07,
              "alpha_b": 0.7769,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=63.97 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=48.07.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 17.75,
            "rho_pct": 2.219,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5593,
            "interacao": 1.0,
            "mrdx_kncm": 5897.69,
            "mrdy_kncm": 14611.95,
            "msdx_kncm": 5839.4,
            "msdy_kncm": 362.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.2 kN, Mdx = 5303 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 167 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 362 kN·cm governa sobre Mdy = 167",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=49.7 ⇒ 2ª ordem; M2d=537, Md,tot=5839 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5839, MSdy=362 kN·cm; Resiste com As = 17.75 cm² (2.22%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 17.75 cm² (2.22%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 49.7,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 39.52,
                "m1d_kncm": 5302.6,
                "status": "OK",
                "md_tot_kncm": 5839.36,
                "m2d_kncm": 536.76,
                "nu": 0.0939,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 2.7,
                "m1d_kncm": 362.3,
                "status": "OK",
                "md_tot_kncm": 362.3,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=49.7 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 18.13,
            "rho_pct": 2.266,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.5705,
            "interacao": 1.0,
            "mrdx_kncm": 5996.17,
            "mrdy_kncm": 14876.86,
            "msdx_kncm": 5938.2,
            "msdy_kncm": 362.3,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.7059,
            "v_vento_base_kn": 0.8823,
            "w_vento_kn_m": 0.35293,
            "largura_tributaria_m": 4.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 134.2 kN, Mdx = 5401 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 167 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "direção y: M1d,mín = Nd·(1,5+0,03·40) = 362 kN·cm governa sobre Mdy = 167",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=50.2 ⇒ 2ª ordem; M2d=537, Md,tot=5938 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=5938, MSdy=362 kN·cm; Resiste com As = 18.13 cm² (2.27%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 18.13 cm² (2.27%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          326,
          327,
          328
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=53.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=1.7 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "326": {
            "N_i_kn": 134.19280976035105,
            "N_j_kn": -134.19280976035105,
            "Mz_i_knm": 23.453,
            "Mz_j_knm": 53.026,
            "My_i_knm": 1.666,
            "My_j_knm": 0.697,
            "M_i_knm": 23.453,
            "M_j_knm": 53.026,
            "L_m": 3.7
          },
          "327": {
            "N_i_kn": 47.02609371418839,
            "N_j_kn": -47.02609371418839,
            "Mz_i_knm": 7.209,
            "Mz_j_knm": -7.167,
            "My_i_knm": -0.623,
            "My_j_knm": 0.567,
            "M_i_knm": 7.209,
            "M_j_knm": 7.167,
            "L_m": 0.04999999999999982
          },
          "328": {
            "N_i_kn": 0.3500000000001364,
            "N_j_kn": -0.3500000000001364,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1xRkpZnxnBUuoBG_kMwbKn",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9928,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9928,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1562,
            "interacao": 0.9933,
            "mrdx_kncm": 2180.74,
            "mrdy_kncm": 4740.79,
            "msdx_kncm": 1483.0,
            "msdy_kncm": 2040.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.1 kN, Mdx = 903 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2041 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=580, Md,tot=1483 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1483, MSdy=2041 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9933 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9933 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 6.22,
                "m1d_kncm": 902.6,
                "status": "OK",
                "md_tot_kncm": 1483.04,
                "m2d_kncm": 580.44,
                "nu": 0.1016,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 14.06,
                "m1d_kncm": 2040.7,
                "status": "OK",
                "md_tot_kncm": 2040.7,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.86,
            "rho_pct": 0.483,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1749,
            "interacao": 1.0,
            "mrdx_kncm": 2357.99,
            "mrdy_kncm": 5195.01,
            "msdx_kncm": 1697.5,
            "msdy_kncm": 2040.7,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.1 kN, Mdx = 1117 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2041 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=580, Md,tot=1698 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1698, MSdy=2041 kN·cm; Resiste com As = 3.86 cm² (0.48%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.86 cm² (0.48%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          329,
          330,
          331
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=9.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.4 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "329": {
            "N_i_kn": 145.10583192429345,
            "N_j_kn": -145.10583192429345,
            "Mz_i_knm": -9.026,
            "Mz_j_knm": -8.028,
            "My_i_knm": 9.671,
            "My_j_knm": 18.985,
            "M_i_knm": 9.671,
            "M_j_knm": 18.985,
            "L_m": 3.7
          },
          "330": {
            "N_i_kn": 37.03999409376229,
            "N_j_kn": -37.03999409376229,
            "Mz_i_knm": -1.753,
            "Mz_j_knm": 2.099,
            "My_i_knm": -20.042,
            "My_j_knm": 20.407,
            "M_i_knm": 20.042,
            "M_j_knm": 20.407,
            "L_m": 0.04999999999999982
          },
          "331": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0QNGpzwWnFAgGaPSR98ZbH",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1485,
            "interacao": 0.94,
            "mrdx_kncm": 2190.44,
            "mrdy_kncm": 4763.31,
            "msdx_kncm": 1422.8,
            "msdy_kncm": 1958.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.6 kN, Mdx = 836 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1958 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1423 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1423, MSdy=1958 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.94 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.94 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.7,
                "m1d_kncm": 836.3,
                "status": "OK",
                "md_tot_kncm": 1422.82,
                "m2d_kncm": 586.52,
                "nu": 0.1026,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.35,
                "m1d_kncm": 1958.1,
                "status": "OK",
                "md_tot_kncm": 1958.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.43,
            "rho_pct": 0.429,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1647,
            "interacao": 0.9999,
            "mrdx_kncm": 2253.0,
            "mrdy_kncm": 4923.27,
            "msdx_kncm": 1612.0,
            "msdy_kncm": 1958.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.3509,
            "v_vento_base_kn": 1.6886,
            "w_vento_kn_m": 0.67545,
            "largura_tributaria_m": 4.85,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.6 kN, Mdx = 1025 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1958 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1612 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1612, MSdy=1958 kN·cm; Resiste com As = 3.43 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.43 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          332,
          333,
          334
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=8.4 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.6 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "332": {
            "N_i_kn": 146.63086317208206,
            "N_j_kn": -146.63086317208206,
            "Mz_i_knm": -8.363,
            "Mz_j_knm": -7.096,
            "My_i_knm": 9.791,
            "My_j_knm": 19.22,
            "M_i_knm": 9.791,
            "M_j_knm": 19.22,
            "L_m": 3.7
          },
          "333": {
            "N_i_kn": 35.86229828403157,
            "N_j_kn": -35.86229828403157,
            "Mz_i_knm": 1.029,
            "Mz_j_knm": -0.714,
            "My_i_knm": -19.198,
            "My_j_knm": 19.581,
            "M_i_knm": 19.198,
            "M_j_knm": 19.581,
            "L_m": 0.04999999999999982
          },
          "334": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "13woKTC$LCYfapf790Fpp1",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1457,
            "interacao": 0.9252,
            "mrdx_kncm": 2191.97,
            "mrdy_kncm": 4766.86,
            "msdx_kncm": 1370.7,
            "msdy_kncm": 2015.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.9 kN, Mdx = 783 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2015 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1371 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1371, MSdy=2015 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9252 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9252 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.33,
                "m1d_kncm": 783.2,
                "status": "OK",
                "md_tot_kncm": 1370.68,
                "m2d_kncm": 587.48,
                "nu": 0.1028,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.72,
                "m1d_kncm": 2015.2,
                "status": "OK",
                "md_tot_kncm": 2015.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.24,
            "rho_pct": 0.405,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1593,
            "interacao": 1.0,
            "mrdx_kncm": 2201.86,
            "mrdy_kncm": 4792.11,
            "msdx_kncm": 1530.6,
            "msdy_kncm": 2015.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.142,
            "v_vento_base_kn": 1.4275,
            "w_vento_kn_m": 0.571,
            "largura_tributaria_m": 4.1,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.9 kN, Mdx = 943 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2015 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1531 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1531, MSdy=2015 kN·cm; Resiste com As = 3.24 cm² (0.40%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.24 cm² (0.40%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          335,
          336,
          337
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=7.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "335": {
            "N_i_kn": 146.86639824638382,
            "N_j_kn": -146.86639824638382,
            "Mz_i_knm": -7.832,
            "Mz_j_knm": -6.36,
            "My_i_knm": 9.996,
            "My_j_knm": 19.711,
            "M_i_knm": 9.996,
            "M_j_knm": 19.711,
            "L_m": 3.7
          },
          "336": {
            "N_i_kn": 36.9466667398101,
            "N_j_kn": -36.9466667398101,
            "Mz_i_knm": 0.473,
            "Mz_j_knm": -0.193,
            "My_i_knm": -19.76,
            "My_j_knm": 20.152,
            "M_i_knm": 19.76,
            "M_j_knm": 20.152,
            "L_m": 0.04999999999999982
          },
          "337": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1hZGDhCyTEvuIp_K45FZz_",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1464,
            "interacao": 0.9293,
            "mrdx_kncm": 2189.35,
            "mrdy_kncm": 4760.79,
            "msdx_kncm": 1388.4,
            "msdy_kncm": 1986.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.5 kN, Mdx = 803 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1986 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=586, Md,tot=1388 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1388, MSdy=1986 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9293 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9293 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.48,
                "m1d_kncm": 802.6,
                "status": "OK",
                "md_tot_kncm": 1388.44,
                "m2d_kncm": 585.84,
                "nu": 0.1025,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.56,
                "m1d_kncm": 1986.4,
                "status": "OK",
                "md_tot_kncm": 1986.4,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.45,
            "rho_pct": 0.431,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1648,
            "interacao": 1.0,
            "mrdx_kncm": 2254.98,
            "mrdy_kncm": 4928.58,
            "msdx_kncm": 1602.9,
            "msdy_kncm": 1986.4,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.532,
            "v_vento_base_kn": 1.9149,
            "w_vento_kn_m": 0.76598,
            "largura_tributaria_m": 5.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.5 kN, Mdx = 1017 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1986 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=586, Md,tot=1603 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1603, MSdy=1986 kN·cm; Resiste com As = 3.45 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.45 cm² (0.43%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          338,
          339,
          340
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=8.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "338": {
            "N_i_kn": 146.4554708737108,
            "N_j_kn": -146.4554708737108,
            "Mz_i_knm": -8.026,
            "Mz_j_knm": -7.01,
            "My_i_knm": 9.873,
            "My_j_knm": 19.504,
            "M_i_knm": 9.873,
            "M_j_knm": 19.504,
            "L_m": 3.7
          },
          "339": {
            "N_i_kn": 36.41535247788124,
            "N_j_kn": -36.41535247788124,
            "Mz_i_knm": 0.615,
            "Mz_j_knm": -0.362,
            "My_i_knm": -19.473,
            "My_j_knm": 19.864,
            "M_i_knm": 19.473,
            "M_j_knm": 19.864,
            "L_m": 0.04999999999999982
          },
          "340": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "1HdPlP93z1p9Eln17yJxS6",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9922,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.141,
            "interacao": 0.899,
            "mrdx_kncm": 2188.72,
            "mrdy_kncm": 4759.31,
            "msdx_kncm": 1313.3,
            "msdy_kncm": 2018.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 728 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2018 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=1313 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1313, MSdy=2018 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.899 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.899 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.97,
                "m1d_kncm": 727.9,
                "status": "OK",
                "md_tot_kncm": 1313.34,
                "m2d_kncm": 585.44,
                "nu": 0.1025,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.79,
                "m1d_kncm": 2018.1,
                "status": "OK",
                "md_tot_kncm": 2018.1,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1549,
            "interacao": 0.981,
            "mrdx_kncm": 2188.72,
            "mrdy_kncm": 4759.31,
            "msdx_kncm": 1477.1,
            "msdy_kncm": 2018.1,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.1699,
            "v_vento_base_kn": 1.4623,
            "w_vento_kn_m": 0.58493,
            "largura_tributaria_m": 4.2,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.4 kN, Mdx = 892 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2018 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=1477 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1477, MSdy=2018 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.981 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.981 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          341,
          342,
          343
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=7.3 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.2 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "341": {
            "N_i_kn": 146.35988343893627,
            "N_j_kn": -146.35988343893627,
            "Mz_i_knm": -7.279,
            "Mz_j_knm": -5.716,
            "My_i_knm": 9.989,
            "My_j_knm": 19.763,
            "M_i_knm": 9.989,
            "M_j_knm": 19.763,
            "L_m": 3.7
          },
          "342": {
            "N_i_kn": 36.982940969555784,
            "N_j_kn": -36.982940969555784,
            "Mz_i_knm": 0.507,
            "Mz_j_knm": -0.277,
            "My_i_knm": -19.785,
            "My_j_knm": 20.181,
            "M_i_knm": 19.785,
            "M_j_knm": 20.181,
            "L_m": 0.04999999999999982
          },
          "343": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": -0.0,
            "My_j_knm": 0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "0fjRZ5PWfARvkCOY596dn1",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.145,
            "interacao": 0.9226,
            "mrdx_kncm": 2187.63,
            "mrdy_kncm": 4756.79,
            "msdx_kncm": 1362.5,
            "msdy_kncm": 2011.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.2 kN, Mdx = 778 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=1362 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1362, MSdy=2012 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9226 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.9226 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.32,
                "m1d_kncm": 777.7,
                "status": "OK",
                "md_tot_kncm": 1362.46,
                "m2d_kncm": 584.76,
                "nu": 0.1023,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.76,
                "m1d_kncm": 2011.9,
                "status": "OK",
                "md_tot_kncm": 2011.9,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.3,
            "rho_pct": 0.413,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1608,
            "interacao": 0.9999,
            "mrdx_kncm": 2215.65,
            "mrdy_kncm": 4828.35,
            "msdx_kncm": 1547.7,
            "msdy_kncm": 2011.9,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.323,
            "v_vento_base_kn": 1.6538,
            "w_vento_kn_m": 0.66152,
            "largura_tributaria_m": 4.75,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.2 kN, Mdx = 963 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=585, Md,tot=1548 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1548, MSdy=2012 kN·cm; Resiste com As = 3.30 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.30 cm² (0.41%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          344,
          345,
          346
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=7.8 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "344": {
            "N_i_kn": 146.18674481977231,
            "N_j_kn": -146.18674481977231,
            "Mz_i_knm": -7.777,
            "Mz_j_knm": -6.86,
            "My_i_knm": 9.938,
            "My_j_knm": 19.694,
            "M_i_knm": 9.938,
            "M_j_knm": 19.694,
            "L_m": 3.7
          },
          "345": {
            "N_i_kn": 36.93156997505139,
            "N_j_kn": -36.93156997505139,
            "Mz_i_knm": 0.381,
            "Mz_j_knm": -0.169,
            "My_i_knm": -19.723,
            "My_j_knm": 20.119,
            "M_i_knm": 19.723,
            "M_j_knm": 20.119,
            "L_m": 0.04999999999999982
          },
          "346": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2eDcSlMejAA9UFm6KDm5Lx",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.141,
            "interacao": 0.895,
            "mrdx_kncm": 2191.39,
            "mrdy_kncm": 4765.53,
            "msdx_kncm": 1336.1,
            "msdy_kncm": 1952.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.8 kN, Mdx = 749 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1952 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1336 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1336, MSdy=1952 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.895 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.895 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 5.1,
                "m1d_kncm": 749.0,
                "status": "OK",
                "md_tot_kncm": 1336.12,
                "m2d_kncm": 587.12,
                "nu": 0.1027,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.3,
                "m1d_kncm": 1952.2,
                "status": "OK",
                "md_tot_kncm": 1952.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.23,
            "rho_pct": 0.403,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1594,
            "interacao": 0.9999,
            "mrdx_kncm": 2198.46,
            "mrdy_kncm": 4783.56,
            "msdx_kncm": 1552.5,
            "msdy_kncm": 1952.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.5459,
            "v_vento_base_kn": 1.9323,
            "w_vento_kn_m": 0.77294,
            "largura_tributaria_m": 5.55,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 146.8 kN, Mdx = 965 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1952 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=587, Md,tot=1553 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1553, MSdy=1952 kN·cm; Resiste com As = 3.23 cm² (0.40%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 3.23 cm² (0.40%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          347,
          348,
          349
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=7.5 kN·m (resistido pela dimensão 0.20 m) · My,máx=19.5 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "347": {
            "N_i_kn": 146.7819345748818,
            "N_j_kn": -146.7819345748818,
            "Mz_i_knm": -7.49,
            "Mz_j_knm": -6.375,
            "My_i_knm": 9.677,
            "My_j_knm": 19.197,
            "M_i_knm": 9.677,
            "M_j_knm": 19.197,
            "L_m": 3.7
          },
          "348": {
            "N_i_kn": 35.835673547628176,
            "N_j_kn": -35.835673547628176,
            "Mz_i_knm": 0.527,
            "Mz_j_knm": -0.328,
            "My_i_knm": -19.135,
            "My_j_knm": 19.522,
            "M_i_knm": 19.135,
            "M_j_knm": 19.522,
            "L_m": 0.04999999999999982
          },
          "349": {
            "N_i_kn": 0.3500000000003638,
            "N_j_kn": -0.3500000000003638,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2cT8BfTQ13MwQW4WujzXVl",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9921,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1356,
            "interacao": 0.8682,
            "mrdx_kncm": 2184.89,
            "mrdy_kncm": 4750.43,
            "msdx_kncm": 1249.6,
            "msdy_kncm": 2012.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.8 kN, Mdx = 667 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=583, Md,tot=1250 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1250, MSdy=2012 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8682 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8682 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 4.57,
                "m1d_kncm": 666.6,
                "status": "OK",
                "md_tot_kncm": 1249.64,
                "m2d_kncm": 583.04,
                "nu": 0.102,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.8,
                "m1d_kncm": 2012.0,
                "status": "OK",
                "md_tot_kncm": 2012.0,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 3.2,
            "rho_pct": 0.4,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1356,
            "interacao": 0.8682,
            "mrdx_kncm": 2184.89,
            "mrdy_kncm": 4750.43,
            "msdx_kncm": 1249.6,
            "msdy_kncm": 2012.0,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.0,
            "v_vento_base_kn": 0.0,
            "w_vento_kn_m": 0.0,
            "largura_tributaria_m": 7.0,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 145.8 kN, Mdx = 667 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2012 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=583, Md,tot=1250 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1250, MSdy=2012 kN·cm; Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8682 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com a armadura MÍNIMA As=3.20 cm² (0.40%·Ac); interação = 0.8682 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          350,
          351,
          352
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=6.7 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "350": {
            "N_i_kn": 145.76451869618782,
            "N_j_kn": -145.76451869618782,
            "Mz_i_knm": -6.666,
            "Mz_j_knm": -4.768,
            "My_i_knm": 9.888,
            "My_j_knm": 19.638,
            "M_i_knm": 9.888,
            "M_j_knm": 19.638,
            "L_m": 3.7
          },
          "351": {
            "N_i_kn": 36.931049288177746,
            "N_j_kn": -36.931049288177746,
            "Mz_i_knm": 0.252,
            "Mz_j_knm": -0.066,
            "My_i_knm": -19.722,
            "My_j_knm": 20.12,
            "M_i_knm": 19.722,
            "M_j_knm": 20.12,
            "L_m": 0.04999999999999982
          },
          "352": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "2tZTKjaH9EU9R5c6PSaaku",
      "type": "column",
      "status": "WARN",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "WARN",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 35.0,
              "alpha_b": 0.9923,
              "second_order_required": true,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 35.0,
              "alpha_b": 0.9923,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 > λ1=35.0 → efeitos de 2ª ordem exigidos; dir y: λ=32.0 vs λ1=35.0.",
          "remediation": "Considerar efeitos locais de 2ª ordem (pilar-padrão, §15.8.3) na(s) direção(ões) indicada(s).",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 4.39,
            "rho_pct": 0.549,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.1928,
            "interacao": 1.0,
            "mrdx_kncm": 2548.22,
            "mrdy_kncm": 5676.53,
            "msdx_kncm": 1922.1,
            "msdy_kncm": 2006.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 153.2 kN, Mdx = 1309 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2006 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=613, Md,tot=1922 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=1922, MSdy=2006 kN·cm; Resiste com As = 4.39 cm² (0.55%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 4.39 cm² (0.55%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 8.54,
                "m1d_kncm": 1309.2,
                "status": "OK",
                "md_tot_kncm": 1922.12,
                "m2d_kncm": 612.92,
                "nu": 0.1073,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 13.09,
                "m1d_kncm": 2006.2,
                "status": "OK",
                "md_tot_kncm": 2006.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=35.0 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 5.12,
            "rho_pct": 0.641,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.2121,
            "interacao": 0.9999,
            "mrdx_kncm": 2741.23,
            "mrdy_kncm": 6180.23,
            "msdx_kncm": 2134.6,
            "msdy_kncm": 2006.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 1.518,
            "v_vento_base_kn": 1.8975,
            "w_vento_kn_m": 0.75901,
            "largura_tributaria_m": 5.45,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 153.2 kN, Mdx = 1522 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 2006 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=35.0 ⇒ 2ª ordem; M2d=613, Md,tot=2135 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=2135, MSdy=2006 kN·cm; Resiste com As = 5.12 cm² (0.64%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 5.12 cm² (0.64%·Ac, limite 4%); interação §17.2.5.2 = 0.9999 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          353,
          354,
          355
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=13.1 kN·m (resistido pela dimensão 0.20 m) · My,máx=20.1 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "353": {
            "N_i_kn": 153.23325790029614,
            "N_j_kn": -153.23325790029614,
            "Mz_i_knm": -10.832,
            "Mz_j_knm": -13.092,
            "My_i_knm": 9.818,
            "My_j_knm": 19.161,
            "M_i_knm": 10.832,
            "M_j_knm": 19.161,
            "L_m": 3.7
          },
          "354": {
            "N_i_kn": 36.49886337184034,
            "N_j_kn": -36.49886337184034,
            "Mz_i_knm": 1.187,
            "Mz_j_knm": -1.013,
            "My_i_knm": -19.677,
            "My_j_knm": 20.062,
            "M_i_knm": 19.677,
            "M_j_knm": 20.062,
            "L_m": 0.04999999999999982
          },
          "355": {
            "N_i_kn": 0.34999999999990905,
            "N_j_kn": -0.34999999999990905,
            "Mz_i_knm": -0.0,
            "Mz_j_knm": 0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "3kMlcbDA99uAufXge_jnAa",
      "type": "column",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.3-min-dim",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.3",
          "values": {
            "b_cm": 20.0,
            "h_cm": 40.0,
            "area_cm2": 800.0,
            "gamma_n": 1.0
          },
          "message": "Menor dimensão 20 cm ≥ 19 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-15.8.2-slenderness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §15.8.1 / §15.8.2",
          "values": {
            "x": {
              "lambda": 64.1,
              "lambda1": 71.75,
              "alpha_b": 0.7491,
              "second_order_required": false,
              "h_cm": 20.0
            },
            "y": {
              "lambda": 32.0,
              "lambda1": 52.56,
              "alpha_b": 0.7491,
              "second_order_required": false,
              "h_cm": 40.0
            }
          },
          "message": "dir x: λ=64.1 vs λ1=71.75; dir y: λ=32.0 vs λ1=52.56.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2.2-flexo-composta",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §17.2.2, §17.2.5.2, §17.3.5.3",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 11.75,
            "rho_pct": 1.469,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.3633,
            "interacao": 1.0,
            "mrdx_kncm": 3993.85,
            "mrdy_kncm": 9540.08,
            "msdx_kncm": 3690.6,
            "msdy_kncm": 1287.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L",
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 73.8 kN, Mdx = 3395 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1287 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=53.7 ⇒ 2ª ordem; M2d=295, Md,tot=3691 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=3691, MSdy=1287 kN·cm; Resiste com As = 11.75 cm² (1.47%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Resiste com As = 11.75 cm² (1.47%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6118-15.8.3-2a-ordem",
          "status": "PASS",
          "nbr_ref": "NBR 6118 §15.8.2, §15.8.3.3.2, §15.8.4, §15.8.1",
          "values": {
            "direcoes": {
              "x": {
                "lambda": 69.3,
                "lambda1": 53.75,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 20.0,
                "e1_cm": 45.99,
                "m1d_kncm": 3395.3,
                "status": "OK",
                "md_tot_kncm": 3690.58,
                "m2d_kncm": 295.28,
                "nu": 0.0517,
                "inv_r_1_cm": 0.00025,
                "metodo": "pilar-padrão c/ curvatura aproximada (§15.8.3.3.2)"
              },
              "y": {
                "lambda": 34.6,
                "lambda1": 35.0,
                "alpha_b": 1.0,
                "alpha_b_base": "sem par de momentos de extremidade ⇒ αb = 1,0 (lado seguro)",
                "le_cm": 400.0,
                "h_cm": 40.0,
                "e1_cm": 17.44,
                "m1d_kncm": 1287.2,
                "status": "OK",
                "md_tot_kncm": 1287.2,
                "metodo": "2ª ordem local dispensada (λ ≤ λ1, §15.8.2)"
              }
            },
            "altura_real_m": 4.0,
            "le_m": 4.0,
            "le_trecho_malha_m": 3.7,
            "vinculo_topo": "travado"
          },
          "message": "dir x: λ=69.3 vs λ1=53.75 — pilar-padrão c/ curvatura aproximada (§15.8.3.3.2); dir y: λ=34.6 vs λ1=35.0 — 2ª ordem local dispensada (λ ≤ λ1, §15.8.2).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/column_capacity.py — equilíbrio de seção NBR 6118 §17.2.2 (validado: flexão simples −0,30% e NRd,máx −0,05% vs referência independente)"
        },
        {
          "check": "NBR6123-vento-combinacao",
          "status": "PASS",
          "nbr_ref": "NBR 6123 §5/§6.3 + NBR 8681 (combinação)",
          "values": {
            "status": "PASS",
            "as_necessaria_cm2": 11.97,
            "rho_pct": 1.496,
            "as_max_cm2": 32.0,
            "as_min_cm2": 3.2,
            "interacao_com_as_max": 0.3697,
            "interacao": 1.0,
            "mrdx_kncm": 4050.93,
            "mrdy_kncm": 9691.03,
            "msdx_kncm": 3749.1,
            "msdy_kncm": 1287.2,
            "ordem": "1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)",
            "combinacao": "1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)",
            "m_vento_base_knm": 0.4178,
            "v_vento_base_kn": 0.5223,
            "w_vento_kn_m": 0.2089,
            "largura_tributaria_m": 1.5,
            "direcao_somada": "x (menor dimensão)",
            "vento_global": {
              "status": "OK",
              "geometria_medida": {
                "width_m": 69.0,
                "depth_m": 118.8,
                "height_m": 10.0
              },
              "direcoes": {
                "x": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 1.122,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 1.122,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 1153.013,
                    "braco_m": 5.146,
                    "momento_base_knm": 5933.388,
                    "pressao_media_kn_m2": 0.97055
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "x",
                    "eixo_fachada": "y",
                    "n_linhas": 17,
                    "memoria": [
                      "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
                      "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                },
                "y": {
                  "coeficientes": {
                    "v0_ms": 45.0,
                    "s1": 1.0,
                    "s3": 1.0,
                    "categoria_rugosidade": 3,
                    "classe": "C",
                    "ca": 0.966,
                    "s2_base_topo": [
                      0.8158,
                      0.8809
                    ]
                  },
                  "memoria": [
                    "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
                    "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
                    "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
                    "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
                    "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
                  ],
                  "procedencia": {
                    "q": {
                      "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§4.2.3",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "vk": {
                      "valor": "Vk = V0·S1·S2·S3",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5",
                      "verificar_texto": false,
                      "nota": ""
                    },
                    "v0": {
                      "valor": 45.0,
                      "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
                      "clausula": "§5.1",
                      "verificar_texto": false,
                      "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
                    },
                    "s1": {
                      "valor": 1.0,
                      "fonte": "padrão do módulo",
                      "clausula": "§5.2",
                      "verificar_texto": true,
                      "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
                    },
                    "s2": {
                      "expressao": {
                        "valor": "S2 = b·Fr·(z/10)^p",
                        "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                        "clausula": "§5.3",
                        "verificar_texto": false,
                        "nota": ""
                      },
                      "b_fr_p": {
                        "valor": [
                          0.93,
                          0.95,
                          0.115
                        ],
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 1",
                        "verificar_texto": true,
                        "nota": "categoria 3 classe C"
                      },
                      "z_minimo": {
                        "valor": 5.0,
                        "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                        "clausula": "Tabela 2",
                        "verificar_texto": true,
                        "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
                      }
                    },
                    "s3": {
                      "valor": 1.0,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.4 Tabela 3",
                      "verificar_texto": true,
                      "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
                    },
                    "categoria_rugosidade": {
                      "valor": 3,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§5.3.1",
                      "verificar_texto": true,
                      "nota": "declarada pelo chamador"
                    },
                    "classe": {
                      "valor": "C",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§5.3.2",
                      "verificar_texto": false,
                      "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
                    },
                    "ca": {
                      "valor": 0.966,
                      "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
                      "clausula": "§6.3 Tabela 4",
                      "verificar_texto": true,
                      "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
                    },
                    "arrasto": {
                      "valor": "Fa = Ca·q·A",
                      "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
                      "clausula": "§6.3",
                      "verificar_texto": false,
                      "nota": ""
                    }
                  },
                  "resultante": {
                    "forca_total_kn": 576.569,
                    "braco_m": 5.146,
                    "momento_base_knm": 2967.015,
                    "pressao_media_kn_m2": 0.83561
                  },
                  "reparticao": {
                    "status": "OK",
                    "missing": [],
                    "direcao": "y",
                    "eixo_fachada": "x",
                    "n_linhas": 16,
                    "memoria": [
                      "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
                      "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
                      "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
                      "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
                    ],
                    "avisos": [
                      "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
                      "uma direção por chamada — rodar x e y (e ±) para a envoltória"
                    ]
                  }
                }
              },
              "envoltoria": "pior das direções x e y por pilar"
            },
            "memoria": [
              "seção 20×40 cm, fck 25 MPa, aço fyk 500 MPa, d' = 4 cm",
              "Nd = 73.8 kN, Mdx = 3454 kN·cm (flexão na direção x, profundidade 20 cm), Mdy = 1287 kN·cm (profundidade 40 cm)",
              "As,mín = máx(0,15·Nd/fyd ; 0.4%·Ac) = 3.20 cm² · As,máx = 4%·Ac = 32.00 cm² (§17.3.5.3)",
              "ℓe = k·H = 1·4 m = 4 m (engaste na base, topo travado ao deslocamento lateral — ℓe = 1,0·H adotado (Euler daria 0,7·H; 1,0 é o lado seguro))",
              "direção x: λ=69.3 > λ1=54.2 ⇒ 2ª ordem; M2d=295, Md,tot=3749 kN·cm",
              "capacidade N-M (1ª + 2ª ordem local (pilar-padrão / dispensa por λ ≤ λ1)): MSdx=3749, MSdy=1287 kN·cm; Resiste com As = 11.97 cm² (1.50%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0."
            ],
            "avisos": []
          },
          "message": "Com vento (1.4D+1.4L + 1.4·W (soma escalar de módulos; a envoltória gravítica mantém 1,4L onde a NBR 8681 admitiria 0,7L — lado seguro)): Resiste com As = 11.97 cm² (1.50%·Ac, limite 4%); interação §17.2.5.2 = 1.0 ≤ 1,0.",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "engines/nucleus/structural/wind_nbr6123.py — NBR 6123 §5/§6.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          356,
          357,
          358
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "ma/mb em MÓDULO do trecho governante — sinal de curvatura (simples/dupla) não rastreado; αb a validar",
          "planos de flexão separados: Mz,máx=34.0 kN·m (resistido pela dimensão 0.20 m) · My,máx=12.9 kN·m (dimensão 0.40 m). A ORIENTAÇÃO da seção em planta não é lida do IFC — o par (Iy,Iz) montado é que define a associação",
          "le_m=3.70 m é o maior TRECHO entre nós; a altura real do pilar é 4.00 m — o trecho só é ℓe se houver travamento real nos nós intermediários (§15.8 usa ℓe do vínculo, não da malha)",
          "elemento com TRAÇÃO axial em algum trecho — verificação de pilar assume compressão; revisar",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "356": {
            "N_i_kn": 73.82380980443592,
            "N_j_kn": -73.82380980443592,
            "Mz_i_knm": 12.654,
            "Mz_j_knm": 33.953,
            "My_i_knm": 7.835,
            "My_j_knm": 12.872,
            "M_i_knm": 12.654,
            "M_j_knm": 33.953,
            "L_m": 3.7
          },
          "357": {
            "N_i_kn": 22.50092072850748,
            "N_j_kn": -22.50092072850748,
            "Mz_i_knm": -5.635,
            "Mz_j_knm": 5.717,
            "My_i_knm": -12.302,
            "My_j_knm": 12.53,
            "M_i_knm": 12.302,
            "M_j_knm": 12.53,
            "L_m": 0.04999999999999982
          },
          "358": {
            "N_i_kn": 0.3500000000001364,
            "N_j_kn": -0.3500000000001364,
            "Mz_i_knm": 0.0,
            "Mz_j_knm": -0.0,
            "My_i_knm": 0.0,
            "My_j_knm": -0.0,
            "M_i_knm": 0.0,
            "M_j_knm": 0.0,
            "L_m": 0.25
          }
        }
      }
    },
    {
      "id": "347r$1Ud9AWAPgQOv9I4Hk",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7034.8,
            "x_cm": 5.38,
            "xd_ratio": 0.096,
            "domain": "2",
            "as_cm2": 3.0,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.0,
            "z_cm": 53.85
          },
          "message": "Domínio 2, x=5.4 cm, x/d=0.10 ≤ 0.45 ok. As=3.00 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 58.14,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=58.1 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.08,
            "alpha_f": 1.323,
            "at_cm": 0.185,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.067,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.185 cm (≤ limite L/250 = 2.760 cm). a_i = 0.080 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          359
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.00 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "359": {
            "Mz_i_knm": 32.65907006737413,
            "Mz_j_knm": -70.34798248972692,
            "M_span_knm": 39.365,
            "w_kn_m": 15.269,
            "Vy_i_kn": 47.21526777936916,
            "Vy_j_kn": 58.139590220630836
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 4325.785479383235,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.581,
          "ai_branson_cm": 0.0798
        }
      }
    },
    {
      "id": "1R_XzVOU90EO7_ksBS0vbC",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6486.6,
            "x_cm": 4.94,
            "xd_ratio": 0.088,
            "domain": "2",
            "as_cm2": 2.76,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.76,
            "z_cm": 54.02
          },
          "message": "Domínio 2, x=4.9 cm, x/d=0.09 ≤ 0.45 ok. As=2.76 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.06,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.1 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.035,
            "alpha_f": 1.323,
            "at_cm": 0.081,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.029,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.081 cm (≤ limite L/250 = 2.760 cm). a_i = 0.035 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          360
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.76 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "360": {
            "Mz_i_knm": 64.86628865763707,
            "Mz_j_knm": -58.13034041932143,
            "M_span_knm": 28.341,
            "w_kn_m": 15.096,
            "Vy_i_kn": 53.0571483823646,
            "Vy_j_kn": 51.104699617635426
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3993.2600472598388,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0704,
          "ai_branson_cm": 0.0348
        }
      }
    },
    {
      "id": "0deXPxspz1muHFi7QCbv_$",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6075.8,
            "x_cm": 4.62,
            "xd_ratio": 0.082,
            "domain": "2",
            "as_cm2": 2.58,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.58,
            "z_cm": 54.15
          },
          "message": "Domínio 2, x=4.6 cm, x/d=0.08 ≤ 0.45 ok. As=2.58 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.82,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.043,
            "alpha_f": 1.323,
            "at_cm": 0.1,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.100 cm (≤ limite L/250 = 2.760 cm). a_i = 0.043 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          361
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.58 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "361": {
            "Mz_i_knm": 59.774384153984656,
            "Mz_j_knm": -60.75772306116767,
            "M_span_knm": 30.602,
            "w_kn_m": 15.269,
            "Vy_i_kn": 52.53443311490099,
            "Vy_j_kn": 52.81945888509897
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3736.919039871378,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0473,
          "ai_branson_cm": 0.0431
        }
      }
    },
    {
      "id": "3_FIIMpsv5D8IfnrNhTjgT",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6120.1,
            "x_cm": 4.65,
            "xd_ratio": 0.083,
            "domain": "2",
            "as_cm2": 2.6,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.6,
            "z_cm": 54.14
          },
          "message": "Domínio 2, x=4.7 cm, x/d=0.08 ≤ 0.45 ok. As=2.60 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.88,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.9 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.042,
            "alpha_f": 1.323,
            "at_cm": 0.098,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.098 cm (≤ limite L/250 = 2.760 cm). a_i = 0.042 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          362
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.60 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "362": {
            "Mz_i_knm": 61.200966981237485,
            "Mz_j_knm": -59.77552778004275,
            "M_span_knm": 30.379,
            "w_kn_m": 15.269,
            "Vy_i_kn": 52.88353139147751,
            "Vy_j_kn": 52.47036060852252
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3767.131989811908,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0336,
          "ai_branson_cm": 0.0422
        }
      }
    },
    {
      "id": "0DhISUrmv4UOugmg9Ey$Gl",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 5969.6,
            "x_cm": 4.54,
            "xd_ratio": 0.081,
            "domain": "2",
            "as_cm2": 2.53,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.53,
            "z_cm": 54.19
          },
          "message": "Domínio 2, x=4.5 cm, x/d=0.08 ≤ 0.45 ok. As=2.53 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 51.55,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=51.5 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.04,
            "alpha_f": 1.323,
            "at_cm": 0.093,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.034,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.093 cm (≤ limite L/250 = 2.760 cm). a_i = 0.040 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          363
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.53 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "363": {
            "Mz_i_knm": 59.69605689583064,
            "Mz_j_knm": -59.212683174507845,
            "M_span_knm": 29.355,
            "w_kn_m": 14.923,
            "Vy_i_kn": 51.553990162510544,
            "Vy_j_kn": 51.41388183748944
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3679.8248057211863,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.028,
          "ai_branson_cm": 0.0402
        }
      }
    },
    {
      "id": "0PAOmHnAH3cwDd0WDhXOMj",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6055.6,
            "x_cm": 4.6,
            "xd_ratio": 0.082,
            "domain": "2",
            "as_cm2": 2.57,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.57,
            "z_cm": 54.16
          },
          "message": "Domínio 2, x=4.6 cm, x/d=0.08 ≤ 0.45 ok. As=2.57 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.74,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.7 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.043,
            "alpha_f": 1.323,
            "at_cm": 0.099,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.099 cm (≤ limite L/250 = 2.760 cm). a_i = 0.043 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          364
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.57 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "364": {
            "Mz_i_knm": 60.555833299153186,
            "Mz_j_knm": -60.12336988343181,
            "M_span_knm": 30.529,
            "w_kn_m": 15.269,
            "Vy_i_kn": 52.740104857350964,
            "Vy_j_kn": 52.614753142649114
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3729.702546688295,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0428,
          "ai_branson_cm": 0.0428
        }
      }
    },
    {
      "id": "3UVTUtquL2kfecvojmKlNz",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6043.6,
            "x_cm": 4.59,
            "xd_ratio": 0.082,
            "domain": "2",
            "as_cm2": 2.57,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.57,
            "z_cm": 54.16
          },
          "message": "Domínio 2, x=4.6 cm, x/d=0.08 ≤ 0.45 ok. As=2.57 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.18,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.041,
            "alpha_f": 1.323,
            "at_cm": 0.095,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.034,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.095 cm (≤ limite L/250 = 2.760 cm). a_i = 0.041 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          365
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.57 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "365": {
            "Mz_i_knm": 60.435925973526,
            "Mz_j_knm": -59.74310606998654,
            "M_span_knm": 29.75,
            "w_kn_m": 15.096,
            "Vy_i_kn": 52.181332681672316,
            "Vy_j_kn": 51.98051531832755
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3722.705314936886,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0282,
          "ai_branson_cm": 0.0407
        }
      }
    },
    {
      "id": "0WNdeDUEvByQfUwS1kev2j",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6096.6,
            "x_cm": 4.64,
            "xd_ratio": 0.083,
            "domain": "2",
            "as_cm2": 2.59,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.59,
            "z_cm": 54.15
          },
          "message": "Domínio 2, x=4.6 cm, x/d=0.08 ≤ 0.45 ok. As=2.59 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.88,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.9 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.043,
            "alpha_f": 1.323,
            "at_cm": 0.1,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.100 cm (≤ limite L/250 = 2.760 cm). a_i = 0.043 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          366
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.59 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "366": {
            "Mz_i_knm": 60.96578201113666,
            "Mz_j_knm": -59.556076505060815,
            "M_span_knm": 30.607,
            "w_kn_m": 15.269,
            "Vy_i_kn": 52.881251145808186,
            "Vy_j_kn": 52.472640854192
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3754.4803440562914,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0476,
          "ai_branson_cm": 0.0432
        }
      }
    },
    {
      "id": "1Wrbgkeln1bAaz2n8kt5uD",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6431.0,
            "x_cm": 4.9,
            "xd_ratio": 0.088,
            "domain": "2",
            "as_cm2": 2.74,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.74,
            "z_cm": 54.04
          },
          "message": "Domínio 2, x=4.9 cm, x/d=0.09 ≤ 0.45 ok. As=2.74 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.37,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.4 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.036,
            "alpha_f": 1.323,
            "at_cm": 0.084,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.03,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.084 cm (≤ limite L/250 = 2.760 cm). a_i = 0.036 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          367
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.74 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "367": {
            "Mz_i_knm": 59.55247322633578,
            "Mz_j_knm": -64.30993454697196,
            "M_span_knm": 28.937,
            "w_kn_m": 15.269,
            "Vy_i_kn": 51.98794185208159,
            "Vy_j_kn": 53.36691614791816
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3956.0836940823165,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0547,
          "ai_branson_cm": 0.0362
        }
      }
    },
    {
      "id": "0cqYNcD8v9rR9jctWewiG7",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7011.8,
            "x_cm": 5.36,
            "xd_ratio": 0.096,
            "domain": "2",
            "as_cm2": 2.99,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.99,
            "z_cm": 53.86
          },
          "message": "Domínio 2, x=5.4 cm, x/d=0.10 ≤ 0.45 ok. As=2.99 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 57.19,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=57.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.078,
            "alpha_f": 1.323,
            "at_cm": 0.181,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.066,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.181 cm (≤ limite L/250 = 2.760 cm). a_i = 0.078 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          368
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.99 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "368": {
            "Mz_i_knm": 70.11841553450733,
            "Mz_j_knm": -30.744523823965743,
            "M_span_knm": 38.378,
            "w_kn_m": 14.923,
            "Vy_i_kn": 57.190297117469925,
            "Vy_j_kn": 45.77757488253037
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 4318.794495706227,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.5623,
          "ai_branson_cm": 0.078
        }
      }
    },
    {
      "id": "0bxD$7zVrEsQcspMF2fbP5",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 11914.6,
            "x_cm": 9.39,
            "xd_ratio": 0.168,
            "domain": "2",
            "as_cm2": 5.25,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 5.25,
            "z_cm": 52.24
          },
          "message": "Domínio 2, x=9.4 cm, x/d=0.17 ≤ 0.45 ok. As=5.25 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 98.89,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 12.7,
            "asw_s_cm2_per_m": 0.58,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=98.9 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=12.7 kN → Asw/s=0.58 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.249,
            "alpha_f": 1.323,
            "at_cm": 0.578,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.209,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.578 cm (≤ limite L/250 = 2.760 cm). a_i = 0.249 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          369
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (5.25 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "369": {
            "Mz_i_knm": 63.73747923983425,
            "Mz_j_knm": -119.14624507091159,
            "M_span_knm": 65.299,
            "w_kn_m": 26.337,
            "Vy_i_kn": 82.83411908245256,
            "Vy_j_kn": 98.89463091754743
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 7144.237188056101,
          "ie_cm4": 169309.7,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.8432,
          "ai_branson_cm": 0.2488
        }
      }
    },
    {
      "id": "2GsuA5CPz3Nx2PDwRE3eR1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10989.9,
            "x_cm": 8.61,
            "xd_ratio": 0.154,
            "domain": "2",
            "as_cm2": 4.81,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.81,
            "z_cm": 52.56
          },
          "message": "Domínio 2, x=8.6 cm, x/d=0.15 ≤ 0.45 ok. As=4.81 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.01,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.8,
            "asw_s_cm2_per_m": 0.22,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.8 kN → Asw/s=0.22 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.105,
            "alpha_f": 1.323,
            "at_cm": 0.245,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.089,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.245 cm (≤ limite L/250 = 2.760 cm). a_i = 0.105 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          370
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.81 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "370": {
            "Mz_i_knm": 109.89890824710801,
            "Mz_j_knm": -100.67761801769952,
            "M_span_knm": 49.394,
            "w_kn_m": 25.992,
            "Vy_i_kn": 91.00730087382735,
            "Vy_j_kn": 88.33446312617272
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6597.10329298307,
          "ie_cm4": 183825.5,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0821,
          "ai_branson_cm": 0.1053
        }
      }
    },
    {
      "id": "2o5Z56RM91shWMclWDd5GP",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10451.5,
            "x_cm": 8.16,
            "xd_ratio": 0.146,
            "domain": "2",
            "as_cm2": 4.56,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.56,
            "z_cm": 52.74
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.56 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.0,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.8,
            "asw_s_cm2_per_m": 0.22,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.8 kN → Asw/s=0.22 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.119,
            "alpha_f": 1.323,
            "at_cm": 0.277,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.1,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.277 cm (≤ limite L/250 = 2.760 cm). a_i = 0.119 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          371
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.56 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "371": {
            "Mz_i_knm": 103.54716762253909,
            "Mz_j_knm": -104.51464779584249,
            "M_span_knm": 52.71,
            "w_kn_m": 26.337,
            "Vy_i_kn": 90.72416048212989,
            "Vy_j_kn": 91.00458951787
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6264.314552885735,
          "ie_cm4": 196873.1,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0792,
          "ai_branson_cm": 0.1192
        }
      }
    },
    {
      "id": "3Yaqx_6hb9NxxvRwBLcfps",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10470.3,
            "x_cm": 8.18,
            "xd_ratio": 0.146,
            "domain": "2",
            "as_cm2": 4.57,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.57,
            "z_cm": 52.73
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.57 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 90.52,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.3,
            "asw_s_cm2_per_m": 0.2,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=90.5 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.3 kN → Asw/s=0.20 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.116,
            "alpha_f": 1.323,
            "at_cm": 0.269,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.097,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.269 cm (≤ limite L/250 = 2.760 cm). a_i = 0.116 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          372
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.57 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "372": {
            "Mz_i_knm": 104.70254900849103,
            "Mz_j_knm": -102.93210412306377,
            "M_span_knm": 51.895,
            "w_kn_m": 26.165,
            "Vy_i_kn": 90.52445621527934,
            "Vy_j_kn": 90.01128378472072
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6282.566088963405,
          "ie_cm4": 196023.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0509,
          "ai_branson_cm": 0.1156
        }
      }
    },
    {
      "id": "2DV9KOsvPBufxBtPV5URjE",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10358.7,
            "x_cm": 8.08,
            "xd_ratio": 0.144,
            "domain": "2",
            "as_cm2": 4.52,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.52,
            "z_cm": 52.77
          },
          "message": "Domínio 2, x=8.1 cm, x/d=0.14 ≤ 0.45 ok. As=4.52 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 89.75,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 3.6,
            "asw_s_cm2_per_m": 0.16,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=89.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=3.6 kN → Asw/s=0.16 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.112,
            "alpha_f": 1.323,
            "at_cm": 0.26,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.094,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.260 cm (≤ limite L/250 = 2.760 cm). a_i = 0.112 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          373
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.52 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "373": {
            "Mz_i_knm": 103.5866748392934,
            "Mz_j_knm": -103.04311427015936,
            "M_span_knm": 51.367,
            "w_kn_m": 25.992,
            "Vy_i_kn": 89.74965889407736,
            "Vy_j_kn": 89.59210510592257
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6217.760537770598,
          "ie_cm4": 198958.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0509,
          "ai_branson_cm": 0.112
        }
      }
    },
    {
      "id": "0gJs_NvwD4Fxqm0siloaP7",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10474.1,
            "x_cm": 8.18,
            "xd_ratio": 0.146,
            "domain": "2",
            "as_cm2": 4.57,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.57,
            "z_cm": 52.73
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.57 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.02,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.8,
            "asw_s_cm2_per_m": 0.22,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.8 kN → Asw/s=0.22 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.118,
            "alpha_f": 1.323,
            "at_cm": 0.275,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.1,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.275 cm (≤ limite L/250 = 2.760 cm). a_i = 0.118 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          374
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.57 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "374": {
            "Mz_i_knm": 104.74057240627322,
            "Mz_j_knm": -103.69048175266313,
            "M_span_knm": 52.526,
            "w_kn_m": 26.337,
            "Vy_i_kn": 91.0165620512479,
            "Vy_j_kn": 90.71218794875223
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6284.6395058860235,
          "ie_cm4": 195916.6,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0679,
          "ai_branson_cm": 0.1184
        }
      }
    },
    {
      "id": "2kMlS6jOv9Pf1s_NEklVJd",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10390.9,
            "x_cm": 8.11,
            "xd_ratio": 0.145,
            "domain": "2",
            "as_cm2": 4.53,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.53,
            "z_cm": 52.76
          },
          "message": "Domínio 2, x=8.1 cm, x/d=0.14 ≤ 0.45 ok. As=4.53 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 89.81,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 3.6,
            "asw_s_cm2_per_m": 0.17,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=89.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=3.6 kN → Asw/s=0.17 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.112,
            "alpha_f": 1.323,
            "at_cm": 0.26,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.094,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.260 cm (≤ limite L/250 = 2.760 cm). a_i = 0.112 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          375
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.53 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "375": {
            "Mz_i_knm": 103.90947694253899,
            "Mz_j_knm": -102.91530372176848,
            "M_span_knm": 51.27,
            "w_kn_m": 25.992,
            "Vy_i_kn": 89.81496507547386,
            "Vy_j_kn": 89.52679892452589
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6236.541490141105,
          "ie_cm4": 198048.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.1118
        }
      }
    },
    {
      "id": "0C7KWZa$v8097oV8KKDgR4",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10504.2,
            "x_cm": 8.2,
            "xd_ratio": 0.147,
            "domain": "2",
            "as_cm2": 4.58,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.58,
            "z_cm": 52.72
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.58 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.16,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.0,
            "asw_s_cm2_per_m": 0.23,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.0 kN → Asw/s=0.23 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.12,
            "alpha_f": 1.323,
            "at_cm": 0.28,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.101,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.280 cm (≤ limite L/250 = 2.760 cm). a_i = 0.120 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          376
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.58 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "376": {
            "Mz_i_knm": 105.04162042341245,
            "Mz_j_knm": -103.00666826175562,
            "M_span_knm": 52.717,
            "w_kn_m": 26.337,
            "Vy_i_kn": 91.15929560313883,
            "Vy_j_kn": 90.5694543968615
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6303.113687038686,
          "ie_cm4": 195068.8,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0796,
          "ai_branson_cm": 0.1204
        }
      }
    },
    {
      "id": "1fez5cvkD0tA$7GHFwmtzS",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10904.7,
            "x_cm": 8.54,
            "xd_ratio": 0.152,
            "domain": "2",
            "as_cm2": 4.77,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.77,
            "z_cm": 52.58
          },
          "message": "Domínio 2, x=8.5 cm, x/d=0.15 ≤ 0.45 ok. As=4.77 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.23,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.0,
            "asw_s_cm2_per_m": 0.23,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.0 kN → Asw/s=0.23 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.107,
            "alpha_f": 1.323,
            "at_cm": 0.248,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.09,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.248 cm (≤ limite L/250 = 2.760 cm). a_i = 0.107 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          377
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.77 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "377": {
            "Mz_i_knm": 102.42288750543287,
            "Mz_j_knm": -109.04657434143097,
            "M_span_knm": 49.977,
            "w_kn_m": 26.165,
            "Vy_i_kn": 89.30791538608702,
            "Vy_j_kn": 91.22782461391256
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6540.194712052953,
          "ie_cm4": 185834.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0673,
          "ai_branson_cm": 0.1066
        }
      }
    },
    {
      "id": "02knbZl25AEwGfhy81xkLU",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 11931.6,
            "x_cm": 9.41,
            "xd_ratio": 0.168,
            "domain": "2",
            "as_cm2": 5.25,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 5.25,
            "z_cm": 52.24
          },
          "message": "Domínio 2, x=9.4 cm, x/d=0.17 ≤ 0.45 ok. As=5.25 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 98.08,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 11.9,
            "asw_s_cm2_per_m": 0.54,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=98.1 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=11.9 kN → Asw/s=0.54 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.246,
            "alpha_f": 1.323,
            "at_cm": 0.572,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.207,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.572 cm (≤ limite L/250 = 2.760 cm). a_i = 0.246 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          378
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (5.25 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "378": {
            "Mz_i_knm": 119.3163626743088,
            "Mz_j_knm": -61.281166522743234,
            "M_span_knm": 64.384,
            "w_kn_m": 25.992,
            "Vy_i_kn": 98.08177999298074,
            "Vy_j_kn": 81.25998400701977
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 7163.759157324085,
          "ie_cm4": 168734.9,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.8293,
          "ai_branson_cm": 0.2464
        }
      }
    },
    {
      "id": "1Q9sROUBnE$fW2xwjY3_cW",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10400.9,
            "x_cm": 8.12,
            "xd_ratio": 0.145,
            "domain": "2",
            "as_cm2": 4.53,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.53,
            "z_cm": 52.75
          },
          "message": "Domínio 2, x=8.1 cm, x/d=0.14 ≤ 0.45 ok. As=4.53 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 86.31,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.1,
            "asw_s_cm2_per_m": 0.01,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=86.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.1 kN → Asw/s=0.01 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.196,
            "alpha_f": 1.323,
            "at_cm": 0.455,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.165,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.455 cm (≤ limite L/250 = 2.760 cm). a_i = 0.196 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          379
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.53 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "379": {
            "Mz_i_knm": 53.09869857534441,
            "Mz_j_knm": -104.00920354839278,
            "M_span_knm": 57.602,
            "w_kn_m": 22.879,
            "Vy_i_kn": 71.552559945935,
            "Vy_j_kn": 86.30922805406496
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6266.114897070609,
          "ie_cm4": 196490.3,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.7844,
          "ai_branson_cm": 0.1959
        }
      }
    },
    {
      "id": "0YMVfQD$D70QqovbBMlopZ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9628.3,
            "x_cm": 7.48,
            "xd_ratio": 0.134,
            "domain": "2",
            "as_cm2": 4.18,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.18,
            "z_cm": 53.01
          },
          "message": "Domínio 2, x=7.5 cm, x/d=0.13 ≤ 0.45 ok. As=4.18 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.15,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.078,
            "alpha_f": 1.323,
            "at_cm": 0.18,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.065,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.180 cm (≤ limite L/250 = 2.760 cm). a_i = 0.078 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          380
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.18 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "380": {
            "Mz_i_knm": 96.28338951939449,
            "Mz_j_knm": -86.53719705967697,
            "M_span_knm": 42.687,
            "w_kn_m": 22.533,
            "Vy_i_kn": 79.14989266082866,
            "Vy_j_kn": 76.32490933917141
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5812.609727713876,
          "ie_cm4": 221212.9,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0824,
          "ai_branson_cm": 0.0776
        }
      }
    },
    {
      "id": "0tjErd60z0Pg4TfstWS78_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 8993.9,
            "x_cm": 6.96,
            "xd_ratio": 0.124,
            "domain": "2",
            "as_cm2": 3.89,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.89,
            "z_cm": 53.22
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.12 ≤ 0.45 ok. As=3.89 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.39,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.4 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.082,
            "alpha_f": 1.323,
            "at_cm": 0.191,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.069,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.191 cm (≤ limite L/250 = 2.760 cm). a_i = 0.082 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          381
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "381": {
            "Mz_i_knm": 89.58574520690584,
            "Mz_j_knm": -89.9392928704133,
            "M_span_knm": 45.364,
            "w_kn_m": 22.706,
            "Vy_i_kn": 78.2831502081873,
            "Vy_j_kn": 78.38562779181264
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5419.132831131938,
          "ie_cm4": 252007.7,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0609,
          "ai_branson_cm": 0.0823
        }
      }
    },
    {
      "id": "3$cRly3cT3LhCxCkAY49tH",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9171.7,
            "x_cm": 7.1,
            "xd_ratio": 0.127,
            "domain": "2",
            "as_cm2": 3.97,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.97,
            "z_cm": 53.16
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.97 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.23,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.085,
            "alpha_f": 1.323,
            "at_cm": 0.197,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.071,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.197 cm (≤ limite L/250 = 2.760 cm). a_i = 0.085 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          382
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.97 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "382": {
            "Mz_i_knm": 91.71715062844767,
            "Mz_j_knm": -89.67002037223487,
            "M_span_knm": 45.462,
            "w_kn_m": 22.879,
            "Vy_i_kn": 79.22757954437868,
            "Vy_j_kn": 78.63420845562135
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5534.890588012275,
          "ie_cm4": 241814.5,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.046,
          "ai_branson_cm": 0.0847
        }
      }
    },
    {
      "id": "2NNVu_CfD1mRIpr5s6sIpH",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9031.1,
            "x_cm": 6.99,
            "xd_ratio": 0.125,
            "domain": "2",
            "as_cm2": 3.9,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.9,
            "z_cm": 53.2
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.12 ≤ 0.45 ok. As=3.90 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 77.95,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.08,
            "alpha_f": 1.323,
            "at_cm": 0.186,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.067,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.186 cm (≤ limite L/250 = 2.760 cm). a_i = 0.080 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          383
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.90 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "383": {
            "Mz_i_knm": 90.31075148769742,
            "Mz_j_knm": -88.82149352103323,
            "M_span_knm": 44.531,
            "w_kn_m": 22.533,
            "Vy_i_kn": 77.95323548792233,
            "Vy_j_kn": 77.52156651207764
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5453.319761839167,
          "ie_cm4": 248802.6,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0415,
          "ai_branson_cm": 0.08
        }
      }
    },
    {
      "id": "0YZkMuYxHBQQB2hVKEY0i7",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9141.9,
            "x_cm": 7.08,
            "xd_ratio": 0.126,
            "domain": "2",
            "as_cm2": 3.95,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.95,
            "z_cm": 53.17
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.95 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.18,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.085,
            "alpha_f": 1.323,
            "at_cm": 0.197,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.071,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.197 cm (≤ limite L/250 = 2.760 cm). a_i = 0.085 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          384
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.95 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "384": {
            "Mz_i_knm": 91.41884084649975,
            "Mz_j_knm": -89.71250042889538,
            "M_span_knm": 45.59,
            "w_kn_m": 22.879,
            "Vy_i_kn": 79.17818971269634,
            "Vy_j_kn": 78.68359828730378
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5517.552579540292,
          "ie_cm4": 243222.8,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0538,
          "ai_branson_cm": 0.085
        }
      }
    },
    {
      "id": "2NmzLd_hf7EQJsrlID_9j1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9049.5,
            "x_cm": 7.0,
            "xd_ratio": 0.125,
            "domain": "2",
            "as_cm2": 3.91,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.91,
            "z_cm": 53.2
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.13 ≤ 0.45 ok. As=3.91 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.0,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.08,
            "alpha_f": 1.323,
            "at_cm": 0.186,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.067,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.186 cm (≤ limite L/250 = 2.760 cm). a_i = 0.080 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          385
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.91 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "385": {
            "Mz_i_knm": 90.49518812881585,
            "Mz_j_knm": -88.67844629368832,
            "M_span_knm": 44.51,
            "w_kn_m": 22.533,
            "Vy_i_kn": 78.00069691813432,
            "Vy_j_kn": 77.47410508186547
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5464.107203392861,
          "ie_cm4": 247854.2,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0413,
          "ai_branson_cm": 0.0801
        }
      }
    },
    {
      "id": "3MfbERnzz0W8NMW$OpmryB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9108.4,
            "x_cm": 7.05,
            "xd_ratio": 0.126,
            "domain": "2",
            "as_cm2": 3.94,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.94,
            "z_cm": 53.18
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.94 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.72,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.7 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.085,
            "alpha_f": 1.323,
            "at_cm": 0.197,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.071,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.197 cm (≤ limite L/250 = 2.760 cm). a_i = 0.085 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          386
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.94 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "386": {
            "Mz_i_knm": 91.08448971511092,
            "Mz_j_knm": -88.4157550801064,
            "M_span_knm": 45.377,
            "w_kn_m": 22.706,
            "Vy_i_kn": 78.72116213550805,
            "Vy_j_kn": 77.94761586449224
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5499.328337545899,
          "ie_cm4": 244802.9,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0616,
          "ai_branson_cm": 0.0848
        }
      }
    },
    {
      "id": "37uNgUDYrBtxv9mcYgM9uN",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9566.1,
            "x_cm": 7.43,
            "xd_ratio": 0.133,
            "domain": "2",
            "as_cm2": 4.15,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.15,
            "z_cm": 53.03
          },
          "message": "Domínio 2, x=7.4 cm, x/d=0.13 ≤ 0.45 ok. As=4.15 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.82,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.079,
            "alpha_f": 1.323,
            "at_cm": 0.183,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.066,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.183 cm (≤ limite L/250 = 2.760 cm). a_i = 0.079 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          387
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "387": {
            "Mz_i_knm": 89.51207531158109,
            "Mz_j_knm": -95.66076258089221,
            "M_span_knm": 43.569,
            "w_kn_m": 22.879,
            "Vy_i_kn": 78.0397799029982,
            "Vy_j_kn": 79.82200809700143
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5763.962414878591,
          "ie_cm4": 224533.3,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0701,
          "ai_branson_cm": 0.0787
        }
      }
    },
    {
      "id": "3696AToOH3XOtJ6en3rFq9",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10499.4,
            "x_cm": 8.2,
            "xd_ratio": 0.146,
            "domain": "2",
            "as_cm2": 4.58,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.58,
            "z_cm": 52.72
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.58 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 85.8,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=85.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.198,
            "alpha_f": 1.323,
            "at_cm": 0.46,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.167,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.460 cm (≤ limite L/250 = 2.760 cm). a_i = 0.198 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          388
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.58 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "388": {
            "Mz_i_knm": 104.99372100305327,
            "Mz_j_knm": -49.382205696681524,
            "M_span_knm": 56.909,
            "w_kn_m": 22.533,
            "Vy_i_kn": 85.79704089947437,
            "Vy_j_kn": 69.67776110052607
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6339.212767905585,
          "ie_cm4": 193254.9,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.7841,
          "ai_branson_cm": 0.1982
        }
      }
    },
    {
      "id": "1v4bLzPQP50PCVcDUQVPBr",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10256.6,
            "x_cm": 8.0,
            "xd_ratio": 0.143,
            "domain": "2",
            "as_cm2": 4.47,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.47,
            "z_cm": 52.8
          },
          "message": "Domínio 2, x=8.0 cm, x/d=0.14 ≤ 0.45 ok. As=4.47 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 84.94,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=84.9 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.187,
            "alpha_f": 1.323,
            "at_cm": 0.434,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.157,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.434 cm (≤ limite L/250 = 2.760 cm). a_i = 0.187 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          389
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.47 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "389": {
            "Mz_i_knm": 52.86421475853636,
            "Mz_j_knm": -102.56593547213176,
            "M_span_knm": 56.382,
            "w_kn_m": 22.533,
            "Vy_i_kn": 70.5342530704934,
            "Vy_j_kn": 84.94054892950658
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6178.9496356076315,
          "ie_cm4": 200606.1,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.7516,
          "ai_branson_cm": 0.1868
        }
      }
    },
    {
      "id": "3lebTciDrEGO9aIzwI9yG3",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9726.6,
            "x_cm": 7.56,
            "xd_ratio": 0.135,
            "domain": "2",
            "as_cm2": 4.22,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.22,
            "z_cm": 52.98
          },
          "message": "Domínio 2, x=7.6 cm, x/d=0.14 ≤ 0.45 ok. As=4.22 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 80.32,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=80.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.082,
            "alpha_f": 1.323,
            "at_cm": 0.191,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.069,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.191 cm (≤ limite L/250 = 2.760 cm). a_i = 0.082 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          390
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.22 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "390": {
            "Mz_i_knm": 97.26625199607176,
            "Mz_j_knm": -87.67863813219418,
            "M_span_knm": 43.683,
            "w_kn_m": 22.879,
            "Vy_i_kn": 80.32040325563446,
            "Vy_j_kn": 77.54138474436559
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5871.209930551668,
          "ie_cm4": 217416.7,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.063,
          "ai_branson_cm": 0.0821
        }
      }
    },
    {
      "id": "3ZX2djP_bFVxAIOXJrhEIf",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9042.9,
            "x_cm": 7.0,
            "xd_ratio": 0.125,
            "domain": "2",
            "as_cm2": 3.91,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.91,
            "z_cm": 53.2
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.12 ≤ 0.45 ok. As=3.91 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.52,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.5 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.084,
            "alpha_f": 1.323,
            "at_cm": 0.194,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.07,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.194 cm (≤ limite L/250 = 2.760 cm). a_i = 0.084 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          391
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.91 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "391": {
            "Mz_i_knm": 90.42920143156158,
            "Mz_j_knm": -89.11785224273082,
            "M_span_knm": 45.353,
            "w_kn_m": 22.706,
            "Vy_i_kn": 78.52443960707689,
            "Vy_j_kn": 78.14433839292303
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5460.532820548765,
          "ie_cm4": 248189.3,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0601,
          "ai_branson_cm": 0.0835
        }
      }
    },
    {
      "id": "060eAbT650kxleTmPAyMq8",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9060.6,
            "x_cm": 7.01,
            "xd_ratio": 0.125,
            "domain": "2",
            "as_cm2": 3.92,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.92,
            "z_cm": 53.19
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.13 ≤ 0.45 ok. As=3.92 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.03,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.08,
            "alpha_f": 1.323,
            "at_cm": 0.187,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.068,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.187 cm (≤ limite L/250 = 2.760 cm). a_i = 0.080 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          392
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.92 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "392": {
            "Mz_i_knm": 90.60635000222956,
            "Mz_j_knm": -88.55949835632372,
            "M_span_knm": 44.514,
            "w_kn_m": 22.533,
            "Vy_i_kn": 78.03404616607334,
            "Vy_j_kn": 77.44075583392672
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5473.233302664909,
          "ie_cm4": 247069.3,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0412,
          "ai_branson_cm": 0.0804
        }
      }
    },
    {
      "id": "3w$6AhHX91pfbgHBhn3E6$",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9165.3,
            "x_cm": 7.1,
            "xd_ratio": 0.127,
            "domain": "2",
            "as_cm2": 3.97,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.97,
            "z_cm": 53.16
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.97 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.25,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.085,
            "alpha_f": 1.323,
            "at_cm": 0.198,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.072,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.198 cm (≤ limite L/250 = 2.760 cm). a_i = 0.085 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          393
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.97 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "393": {
            "Mz_i_knm": 91.65314473661863,
            "Mz_j_knm": -89.48098114484465,
            "M_span_knm": 45.589,
            "w_kn_m": 22.879,
            "Vy_i_kn": 79.24570031764839,
            "Vy_j_kn": 78.61608768235158
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5533.447972454706,
          "ie_cm4": 241942.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0536,
          "ai_branson_cm": 0.0854
        }
      }
    },
    {
      "id": "3AB$TBo9b51vKYI6VjXdB8",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9075.7,
            "x_cm": 7.03,
            "xd_ratio": 0.125,
            "domain": "2",
            "as_cm2": 3.92,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.92,
            "z_cm": 53.19
          },
          "message": "Domínio 2, x=7.0 cm, x/d=0.13 ≤ 0.45 ok. As=3.92 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.08,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.1 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.081,
            "alpha_f": 1.323,
            "at_cm": 0.188,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.068,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.188 cm (≤ limite L/250 = 2.760 cm). a_i = 0.081 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          394
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.92 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "394": {
            "Mz_i_knm": 90.75673310012057,
            "Mz_j_knm": -88.37535373646064,
            "M_span_knm": 44.531,
            "w_kn_m": 22.533,
            "Vy_i_kn": 78.08252844400874,
            "Vy_j_kn": 77.39227355599138
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5481.810377796519,
          "ie_cm4": 246274.6,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0413,
          "ai_branson_cm": 0.0808
        }
      }
    },
    {
      "id": "293iHwiqn1$u7ldxQMCIye",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9160.0,
            "x_cm": 7.09,
            "xd_ratio": 0.127,
            "domain": "2",
            "as_cm2": 3.96,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.96,
            "z_cm": 53.16
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.96 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 79.19,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.085,
            "alpha_f": 1.323,
            "at_cm": 0.197,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.071,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.197 cm (≤ limite L/250 = 2.760 cm). a_i = 0.085 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          395
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.96 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "395": {
            "Mz_i_knm": 91.59998779598618,
            "Mz_j_knm": -89.7928039979079,
            "M_span_knm": 45.459,
            "w_kn_m": 22.879,
            "Vy_i_kn": 79.19280469537357,
            "Vy_j_kn": 78.66898330462624
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5530.452254196744,
          "ie_cm4": 242138.9,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0457,
          "ai_branson_cm": 0.0846
        }
      }
    },
    {
      "id": "3wMRTRP5jFNhsivg5xv7BE",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9188.2,
            "x_cm": 7.12,
            "xd_ratio": 0.127,
            "domain": "2",
            "as_cm2": 3.98,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.98,
            "z_cm": 53.15
          },
          "message": "Domínio 2, x=7.1 cm, x/d=0.13 ≤ 0.45 ok. As=3.98 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.95,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=79.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.086,
            "alpha_f": 1.323,
            "at_cm": 0.2,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.072,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.200 cm (≤ limite L/250 = 2.760 cm). a_i = 0.086 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          396
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.98 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "396": {
            "Mz_i_knm": 91.88201929485237,
            "Mz_j_knm": -87.61889056217674,
            "M_span_knm": 45.376,
            "w_kn_m": 22.706,
            "Vy_i_kn": 78.95223374386617,
            "Vy_j_kn": 77.71654425613411
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5547.909662084619,
          "ie_cm4": 240736.6,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0616,
          "ai_branson_cm": 0.0862
        }
      }
    },
    {
      "id": "20URIfRjn0zPtWh0LCoS4y",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 9455.0,
            "x_cm": 7.34,
            "xd_ratio": 0.131,
            "domain": "2",
            "as_cm2": 4.1,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.1,
            "z_cm": 53.07
          },
          "message": "Domínio 2, x=7.3 cm, x/d=0.13 ≤ 0.45 ok. As=4.10 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 78.63,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=78.6 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.074,
            "alpha_f": 1.323,
            "at_cm": 0.173,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.063,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.173 cm (≤ limite L/250 = 2.760 cm). a_i = 0.074 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          397
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.10 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "397": {
            "Mz_i_knm": 88.39988488847288,
            "Mz_j_knm": -94.54986849042218,
            "M_span_knm": 42.622,
            "w_kn_m": 22.533,
            "Vy_i_kn": 76.84609902870282,
            "Vy_j_kn": 78.62870297129683
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 5697.458018958923,
          "ie_cm4": 229222.5,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0862,
          "ai_branson_cm": 0.0744
        }
      }
    },
    {
      "id": "08uMXaDiPCy9vQ24lzlR8d",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10628.2,
            "x_cm": 8.31,
            "xd_ratio": 0.148,
            "domain": "2",
            "as_cm2": 4.64,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.64,
            "z_cm": 52.68
          },
          "message": "Domínio 2, x=8.3 cm, x/d=0.15 ≤ 0.45 ok. As=4.64 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 87.07,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.9,
            "asw_s_cm2_per_m": 0.04,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=87.1 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.9 kN → Asw/s=0.04 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.205,
            "alpha_f": 1.323,
            "at_cm": 0.477,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.173,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.477 cm (≤ limite L/250 = 2.760 cm). a_i = 0.205 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          398
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.64 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "398": {
            "Mz_i_knm": 106.28182313247684,
            "Mz_j_knm": -50.154801064718114,
            "M_span_knm": 57.937,
            "w_kn_m": 22.879,
            "Vy_i_kn": 87.06524502431304,
            "Vy_j_kn": 70.79654297568739
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6416.640977042478,
          "ie_cm4": 190102.8,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.8051,
          "ai_branson_cm": 0.2054
        }
      }
    },
    {
      "id": "0uXirEi419oxdFVGWDqnCh",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 11479.8,
            "x_cm": 9.02,
            "xd_ratio": 0.161,
            "domain": "2",
            "as_cm2": 5.04,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 5.04,
            "z_cm": 52.39
          },
          "message": "Domínio 2, x=9.0 cm, x/d=0.16 ≤ 0.45 ok. As=5.04 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 96.2,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 10.0,
            "asw_s_cm2_per_m": 0.46,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=96.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=10.0 kN → Asw/s=0.46 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.219,
            "alpha_f": 1.323,
            "at_cm": 0.509,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.184,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.509 cm (≤ limite L/250 = 2.760 cm). a_i = 0.219 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          399
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (5.04 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "399": {
            "Mz_i_knm": 69.76366013381899,
            "Mz_j_knm": -114.79760546913083,
            "M_span_knm": 62.402,
            "w_kn_m": 25.992,
            "Vy_i_kn": 83.1442232557519,
            "Vy_j_kn": 96.19754074424809
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6869.792380621329,
          "ie_cm4": 175829.6,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.707,
          "ai_branson_cm": 0.219
        }
      }
    },
    {
      "id": "33qnDu8lv0VxybWEy0XMkd",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 11042.9,
            "x_cm": 8.65,
            "xd_ratio": 0.155,
            "domain": "2",
            "as_cm2": 4.83,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.83,
            "z_cm": 52.54
          },
          "message": "Domínio 2, x=8.7 cm, x/d=0.15 ≤ 0.45 ok. As=4.83 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.75,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.6,
            "asw_s_cm2_per_m": 0.25,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.6 kN → Asw/s=0.25 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.112,
            "alpha_f": 1.323,
            "at_cm": 0.26,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.094,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.260 cm (≤ limite L/250 = 2.760 cm). a_i = 0.112 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          400
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.83 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "400": {
            "Mz_i_knm": 110.42865359286964,
            "Mz_j_knm": -100.22259553175181,
            "M_span_knm": 50.386,
            "w_kn_m": 26.165,
            "Vy_i_kn": 91.74700884943739,
            "Vy_j_kn": 88.78873115056265
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6636.3369188033175,
          "ie_cm4": 182415.2,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0524,
          "ai_branson_cm": 0.1121
        }
      }
    },
    {
      "id": "1uz8b01eb49xGwc6SCSBTK",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10585.3,
            "x_cm": 8.27,
            "xd_ratio": 0.148,
            "domain": "2",
            "as_cm2": 4.62,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.62,
            "z_cm": 52.69
          },
          "message": "Domínio 2, x=8.3 cm, x/d=0.15 ≤ 0.45 ok. As=4.62 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.37,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.2,
            "asw_s_cm2_per_m": 0.24,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.4 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.2 kN → Asw/s=0.24 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.121,
            "alpha_f": 1.323,
            "at_cm": 0.282,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.102,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.282 cm (≤ limite L/250 = 2.760 cm). a_i = 0.121 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          401
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.62 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "401": {
            "Mz_i_knm": 105.85348174448497,
            "Mz_j_knm": -102.36168266934695,
            "M_span_knm": 52.633,
            "w_kn_m": 26.337,
            "Vy_i_kn": 91.37043283697648,
            "Vy_j_kn": 90.35831716302343
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6361.327332606886,
          "ie_cm4": 192559.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0744,
          "ai_branson_cm": 0.1213
        }
      }
    },
    {
      "id": "3plWRYDJXCTATrfes7jzMb",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10544.4,
            "x_cm": 8.24,
            "xd_ratio": 0.147,
            "domain": "2",
            "as_cm2": 4.6,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.6,
            "z_cm": 52.7
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.60 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 90.26,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.1,
            "asw_s_cm2_per_m": 0.19,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=90.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.1 kN → Asw/s=0.19 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.115,
            "alpha_f": 1.323,
            "at_cm": 0.266,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.096,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.266 cm (≤ limite L/250 = 2.760 cm). a_i = 0.115 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          402
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.60 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "402": {
            "Mz_i_knm": 105.44395667908277,
            "Mz_j_knm": -101.36619266471476,
            "M_span_knm": 51.277,
            "w_kn_m": 25.992,
            "Vy_i_kn": 90.2618622919374,
            "Vy_j_kn": 89.07990170806262
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6338.885083759442,
          "ie_cm4": 193467.7,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.051,
          "ai_branson_cm": 0.1145
        }
      }
    },
    {
      "id": "0CWuavfVfC485eUos3ymdB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10623.3,
            "x_cm": 8.3,
            "xd_ratio": 0.148,
            "domain": "2",
            "as_cm2": 4.64,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.64,
            "z_cm": 52.68
          },
          "message": "Domínio 2, x=8.3 cm, x/d=0.15 ≤ 0.45 ok. As=4.64 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.45,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.3,
            "asw_s_cm2_per_m": 0.24,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.5 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.3 kN → Asw/s=0.24 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.121,
            "alpha_f": 1.323,
            "at_cm": 0.281,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.102,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.281 cm (≤ limite L/250 = 2.760 cm). a_i = 0.121 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          403
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.64 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "403": {
            "Mz_i_knm": 106.23326572319465,
            "Mz_j_knm": -102.21274277709901,
            "M_span_knm": 52.518,
            "w_kn_m": 26.337,
            "Vy_i_kn": 91.44705948494138,
            "Vy_j_kn": 90.28169051505859
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6384.105692003808,
          "ie_cm4": 191652.7,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0674,
          "ai_branson_cm": 0.1209
        }
      }
    },
    {
      "id": "1oDJhq$e17CwzifRdRaYyH",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10554.8,
            "x_cm": 8.25,
            "xd_ratio": 0.147,
            "domain": "2",
            "as_cm2": 4.61,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.61,
            "z_cm": 52.7
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.61 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 90.32,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.1,
            "asw_s_cm2_per_m": 0.19,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=90.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.1 kN → Asw/s=0.19 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.115,
            "alpha_f": 1.323,
            "at_cm": 0.268,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.097,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.268 cm (≤ limite L/250 = 2.760 cm). a_i = 0.115 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          404
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.61 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "404": {
            "Mz_i_knm": 105.54843609726316,
            "Mz_j_knm": -101.08893332022842,
            "M_span_knm": 51.364,
            "w_kn_m": 25.992,
            "Vy_i_kn": 90.31718675029495,
            "Vy_j_kn": 89.02457724970517
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6344.441749571737,
          "ie_cm4": 193290.8,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0509,
          "ai_branson_cm": 0.1152
        }
      }
    },
    {
      "id": "37wqsdo_H1qwtimVU80_Lg",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10541.2,
            "x_cm": 8.24,
            "xd_ratio": 0.147,
            "domain": "2",
            "as_cm2": 4.6,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.6,
            "z_cm": 52.71
          },
          "message": "Domínio 2, x=8.2 cm, x/d=0.15 ≤ 0.45 ok. As=4.60 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 90.73,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.5,
            "asw_s_cm2_per_m": 0.21,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=90.7 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.5 kN → Asw/s=0.21 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.117,
            "alpha_f": 1.323,
            "at_cm": 0.272,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.099,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.272 cm (≤ limite L/250 = 2.760 cm). a_i = 0.117 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          405
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.60 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "405": {
            "Mz_i_knm": 105.41198483687144,
            "Mz_j_knm": -102.23296410517993,
            "M_span_knm": 51.89,
            "w_kn_m": 26.165,
            "Vy_i_kn": 90.72859764227401,
            "Vy_j_kn": 89.80714235772575
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6336.281309394622,
          "ie_cm4": 193597.1,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0509,
          "ai_branson_cm": 0.117
        }
      }
    },
    {
      "id": "2yvGSn9aX1hehiFRQkCaTB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10698.7,
            "x_cm": 8.37,
            "xd_ratio": 0.149,
            "domain": "2",
            "as_cm2": 4.67,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.67,
            "z_cm": 52.65
          },
          "message": "Domínio 2, x=8.4 cm, x/d=0.15 ≤ 0.45 ok. As=4.67 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 91.72,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 5.5,
            "asw_s_cm2_per_m": 0.25,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=91.7 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=5.5 kN → Asw/s=0.25 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.124,
            "alpha_f": 1.323,
            "at_cm": 0.287,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.104,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.287 cm (≤ limite L/250 = 2.760 cm). a_i = 0.124 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          406
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.67 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "406": {
            "Mz_i_knm": 106.98694515818774,
            "Mz_j_knm": -101.06173212043228,
            "M_span_knm": 52.717,
            "w_kn_m": 26.337,
            "Vy_i_kn": 91.7231015272111,
            "Vy_j_kn": 90.00564847278923
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6428.331491212907,
          "ie_cm4": 189854.8,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0795,
          "ai_branson_cm": 0.1237
        }
      }
    },
    {
      "id": "2EGjD3Wrb6Rf7X1G6vNr30",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 10762.8,
            "x_cm": 8.42,
            "xd_ratio": 0.15,
            "domain": "2",
            "as_cm2": 4.7,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 4.7,
            "z_cm": 52.63
          },
          "message": "Domínio 2, x=8.4 cm, x/d=0.15 ≤ 0.45 ok. As=4.70 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 90.33,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 4.1,
            "asw_s_cm2_per_m": 0.19,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=90.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=4.1 kN → Asw/s=0.19 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.102,
            "alpha_f": 1.323,
            "at_cm": 0.236,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.086,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.236 cm (≤ limite L/250 = 2.760 cm). a_i = 0.102 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          407
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (4.70 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "407": {
            "Mz_i_knm": 103.06273860375966,
            "Mz_j_knm": -107.62800394389748,
            "M_span_knm": 49.337,
            "w_kn_m": 25.992,
            "Vy_i_kn": 89.00924934200881,
            "Vy_j_kn": 90.3325146579908
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 6446.399256408169,
          "ie_cm4": 189317.5,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0855,
          "ai_branson_cm": 0.1017
        }
      }
    },
    {
      "id": "1oTeAB2SPF_Q4M5ixeuh3B",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 12197.4,
            "x_cm": 9.63,
            "xd_ratio": 0.172,
            "domain": "2",
            "as_cm2": 5.38,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 5.38,
            "z_cm": 52.15
          },
          "message": "Domínio 2, x=9.6 cm, x/d=0.17 ≤ 0.45 ok. As=5.38 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 99.81,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 13.6,
            "asw_s_cm2_per_m": 0.62,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=99.8 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=13.6 kN → Asw/s=0.62 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.258,
            "alpha_f": 1.323,
            "at_cm": 0.599,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.217,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.599 cm (≤ limite L/250 = 2.760 cm). a_i = 0.258 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          408
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (5.38 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "408": {
            "Mz_i_knm": 121.97404332747257,
            "Mz_j_knm": -60.235196546016184,
            "M_span_knm": 65.636,
            "w_kn_m": 26.337,
            "Vy_i_kn": 99.81203395383449,
            "Vy_j_kn": 81.91671604616602
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 7331.829279387787,
          "ie_cm4": 165536.4,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.864,
          "ai_branson_cm": 0.2578
        }
      }
    },
    {
      "id": "1q1hFJeu55iuH8KlSDZ77k",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6818.2,
            "x_cm": 5.21,
            "xd_ratio": 0.093,
            "domain": "2",
            "as_cm2": 2.91,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.91,
            "z_cm": 53.92
          },
          "message": "Domínio 2, x=5.2 cm, x/d=0.09 ≤ 0.45 ok. As=2.91 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.62,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.6 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.034,
            "alpha_f": 1.323,
            "at_cm": 0.078,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.028,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.078 cm (≤ limite L/250 = 2.760 cm). a_i = 0.034 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          409
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.91 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "409": {
            "Mz_i_knm": 68.18182620845555,
            "Mz_j_knm": -53.427073034180665,
            "M_span_knm": 28.005,
            "w_kn_m": 14.923,
            "Vy_i_kn": 53.622306025257224,
            "Vy_j_kn": 49.34556597474277
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 4254.503558790213,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0778,
          "ai_branson_cm": 0.0337
        }
      }
    },
    {
      "id": "0vD03gy5L4rxSdEcYBkC5b",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6320.8,
            "x_cm": 4.81,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 2.69,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.69,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=2.69 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.47,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.5 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.042,
            "alpha_f": 1.323,
            "at_cm": 0.098,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.098 cm (≤ limite L/250 = 2.760 cm). a_i = 0.042 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          410
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.69 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "410": {
            "Mz_i_knm": 63.207689887605014,
            "Mz_j_knm": -57.73374148265437,
            "M_span_knm": 30.397,
            "w_kn_m": 15.269,
            "Vy_i_kn": 53.47027185578997,
            "Vy_j_kn": 51.88362014421008
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3902.174876501168,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0348,
          "ai_branson_cm": 0.0424
        }
      }
    },
    {
      "id": "2Qrjvj8fz1fOFqXtbVZUnL",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6380.1,
            "x_cm": 4.86,
            "xd_ratio": 0.087,
            "domain": "2",
            "as_cm2": 2.71,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.71,
            "z_cm": 54.06
          },
          "message": "Domínio 2, x=4.9 cm, x/d=0.09 ≤ 0.45 ok. As=2.71 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.63,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.6 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.042,
            "alpha_f": 1.323,
            "at_cm": 0.098,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.098 cm (≤ limite L/250 = 2.760 cm). a_i = 0.042 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          411
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.71 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "411": {
            "Mz_i_knm": 63.80097983094011,
            "Mz_j_knm": -57.190788498410555,
            "M_span_knm": 30.372,
            "w_kn_m": 15.269,
            "Vy_i_kn": 53.63494474384484,
            "Vy_j_kn": 51.718947256155104
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3942.7961371492584,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0334,
          "ai_branson_cm": 0.0421
        }
      }
    },
    {
      "id": "2ekaMGnI9Dqu3twlbHENc_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6307.8,
            "x_cm": 4.8,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 2.68,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.68,
            "z_cm": 54.08
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=2.68 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.95,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.0 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.041,
            "alpha_f": 1.323,
            "at_cm": 0.095,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.034,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.095 cm (≤ limite L/250 = 2.760 cm). a_i = 0.041 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          412
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.68 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "412": {
            "Mz_i_knm": 63.077541069934306,
            "Mz_j_knm": -57.07550534203924,
            "M_span_knm": 29.763,
            "w_kn_m": 15.096,
            "Vy_i_kn": 52.95078425041958,
            "Vy_j_kn": 51.21106374958043
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3899.1713867187855,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0282,
          "ai_branson_cm": 0.0408
        }
      }
    },
    {
      "id": "3yph_gwADC0gketSXYyRWm",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6347.0,
            "x_cm": 4.83,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 2.7,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.7,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=2.70 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.58,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.6 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.043,
            "alpha_f": 1.323,
            "at_cm": 0.099,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.099 cm (≤ limite L/250 = 2.760 cm). a_i = 0.043 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          413
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.70 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "413": {
            "Mz_i_knm": 63.46990608405677,
            "Mz_j_knm": -57.24868912495671,
            "M_span_knm": 30.509,
            "w_kn_m": 15.269,
            "Vy_i_kn": 53.57905464624638,
            "Vy_j_kn": 51.7758033537536
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3921.1349501060768,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0417,
          "ai_branson_cm": 0.0427
        }
      }
    },
    {
      "id": "3UKEHJzcX439b$lkJUbA5i",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6245.8,
            "x_cm": 4.75,
            "xd_ratio": 0.085,
            "domain": "2",
            "as_cm2": 2.66,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.66,
            "z_cm": 54.1
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.08 ≤ 0.45 ok. As=2.66 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.35,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.4 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.04,
            "alpha_f": 1.323,
            "at_cm": 0.093,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.034,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.093 cm (≤ limite L/250 = 2.760 cm). a_i = 0.040 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          414
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.66 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "414": {
            "Mz_i_knm": 62.45764853589896,
            "Mz_j_knm": -56.473947038067976,
            "M_span_knm": 29.344,
            "w_kn_m": 14.923,
            "Vy_i_kn": 52.35113911562772,
            "Vy_j_kn": 50.61673288437236
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3862.0182239419237,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0281,
          "ai_branson_cm": 0.0401
        }
      }
    },
    {
      "id": "3xMwRBaoP7i8wiEx94ADr2",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6295.3,
            "x_cm": 4.79,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 2.68,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.68,
            "z_cm": 54.08
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=2.68 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.39,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.4 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.042,
            "alpha_f": 1.323,
            "at_cm": 0.098,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.098 cm (≤ limite L/250 = 2.760 cm). a_i = 0.042 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          415
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.68 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "415": {
            "Mz_i_knm": 62.95298245938963,
            "Mz_j_knm": -58.046993032976644,
            "M_span_knm": 30.369,
            "w_kn_m": 15.269,
            "Vy_i_kn": 53.38844196034964,
            "Vy_j_kn": 51.96641603965023
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3889.9775163606214,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.033,
          "ai_branson_cm": 0.0421
        }
      }
    },
    {
      "id": "2hXnHQ9IfBqQgUmGsjcCAT",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6389.6,
            "x_cm": 4.87,
            "xd_ratio": 0.087,
            "domain": "2",
            "as_cm2": 2.72,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.72,
            "z_cm": 54.05
          },
          "message": "Domínio 2, x=4.9 cm, x/d=0.09 ≤ 0.45 ok. As=2.72 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 53.73,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=53.7 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.043,
            "alpha_f": 1.323,
            "at_cm": 0.1,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.036,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.100 cm (≤ limite L/250 = 2.760 cm). a_i = 0.043 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          416
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.72 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "416": {
            "Mz_i_knm": 63.8956228470175,
            "Mz_j_knm": -56.630619832545285,
            "M_span_knm": 30.605,
            "w_kn_m": 15.269,
            "Vy_i_kn": 53.729844987604764,
            "Vy_j_kn": 51.62404701239543
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3945.2395651234733,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0475,
          "ai_branson_cm": 0.0431
        }
      }
    },
    {
      "id": "3rVHht4vDAIhUQuIsT1zmB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 6198.5,
            "x_cm": 4.72,
            "xd_ratio": 0.084,
            "domain": "2",
            "as_cm2": 2.63,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 2.63,
            "z_cm": 54.11
          },
          "message": "Domínio 2, x=4.7 cm, x/d=0.08 ≤ 0.45 ok. As=2.63 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 52.2,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=52.2 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.035,
            "alpha_f": 1.323,
            "at_cm": 0.08,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.029,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.080 cm (≤ limite L/250 = 2.760 cm). a_i = 0.035 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          417
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.63 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "417": {
            "Mz_i_knm": 61.14640430143328,
            "Mz_j_knm": -61.98476537168101,
            "M_span_knm": 28.274,
            "w_kn_m": 15.096,
            "Vy_i_kn": 51.959422395616144,
            "Vy_j_kn": 52.2024256043836
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 3801.95440107076,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0744,
          "ai_branson_cm": 0.0345
        }
      }
    },
    {
      "id": "0_BhJThtH9_w05anFZGyZ1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7389.0,
            "x_cm": 5.66,
            "xd_ratio": 0.101,
            "domain": "2",
            "as_cm2": 3.16,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.16,
            "z_cm": 53.74
          },
          "message": "Domínio 2, x=5.7 cm, x/d=0.10 ≤ 0.45 ok. As=3.16 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 59.28,
            "vrd2_kn": 486.0,
            "vc_kn": 86.2,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=59.3 ≤ VRd2=486.0 ok. Vc=86.2, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.082,
            "alpha_f": 1.323,
            "at_cm": 0.19,
            "span_cm": 690.0,
            "limit_ratio": 250.0,
            "allowable_cm": 2.76,
            "utilizacao": 0.069,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.190 cm (≤ limite L/250 = 2.760 cm). a_i = 0.082 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          418
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.16 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "418": {
            "Mz_i_knm": 73.8897189139354,
            "Mz_j_knm": -28.318393437839617,
            "M_span_knm": 39.765,
            "w_kn_m": 15.269,
            "Vy_i_kn": 59.281968924071975,
            "Vy_j_kn": 46.072889075928316
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 4616.9,
          "ma_serv_kncm": 4560.901361708315,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.6056,
          "ai_branson_cm": 0.0816
        }
      }
    },
    {
      "id": "0E2CET3_P6dfpd7mWAw6qJ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1583.2,
            "x_cm": 1.44,
            "xd_ratio": 0.031,
            "domain": "2",
            "as_cm2": 0.8,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.43
          },
          "message": "Domínio 2, x=1.4 cm, x/d=0.03 ≤ 0.45 ok. As=0.80 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 23.39,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=23.4 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.009,
            "alpha_f": 1.323,
            "at_cm": 0.02,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.012,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.020 cm (≤ limite L/250 = 1.600 cm). a_i = 0.009 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          419
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "419": {
            "Mz_i_knm": 12.33535496016987,
            "Mz_j_knm": -15.831832502886106,
            "M_span_knm": 8.43,
            "w_kn_m": 11.257,
            "Vy_i_kn": 21.639560614320942,
            "Vy_j_kn": 23.38779938567906
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 979.3334246592344,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.1009,
          "ai_branson_cm": 0.0085
        }
      }
    },
    {
      "id": "0mP$AxJ4DCJO7hxflK8Ral",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1608.4,
            "x_cm": 1.46,
            "xd_ratio": 0.032,
            "domain": "2",
            "as_cm2": 0.81,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.42
          },
          "message": "Domínio 2, x=1.5 cm, x/d=0.03 ≤ 0.45 ok. As=0.81 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 22.89,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=22.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.007,
            "alpha_f": 1.323,
            "at_cm": 0.017,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.011,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.017 cm (≤ limite L/250 = 1.600 cm). a_i = 0.007 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          420
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "420": {
            "Mz_i_knm": 16.084186269874333,
            "Mz_j_knm": -12.191534345039898,
            "M_span_knm": 7.779,
            "w_kn_m": 10.958,
            "Vy_i_kn": 22.889882981208608,
            "Vy_j_kn": 20.943557018791388
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1002.0672553579493,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0532,
          "ai_branson_cm": 0.0073
        }
      }
    },
    {
      "id": "13EGiOFSDAJwY$prlIHIkU",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 635.9,
            "x_cm": 0.57,
            "xd_ratio": 0.012,
            "domain": "2",
            "as_cm2": 0.32,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.77
          },
          "message": "Domínio 2, x=0.6 cm, x/d=0.01 ≤ 0.45 ok. As=0.32 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 10.59,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=10.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.001,
            "alpha_f": 1.323,
            "at_cm": 0.002,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.002,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.002 cm (≤ limite L/250 = 0.960 cm). a_i = 0.001 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          421
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=0.82 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=4.0, Mj=3.3 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "421": {
            "Mz_i_knm": 6.359011939915162,
            "Mz_j_knm": -5.332740011391291,
            "M_span_knm": 0.254,
            "w_kn_m": 8.472,
            "Vy_i_kn": 10.594301303551621,
            "Vy_j_kn": 9.739074696448396
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 404.01243954559857,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0348,
          "ai_branson_cm": 0.0009
        }
      }
    },
    {
      "id": "3Ge5STH9H8SfBQdFLDJZvR",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1532.7,
            "x_cm": 1.39,
            "xd_ratio": 0.03,
            "domain": "2",
            "as_cm2": 0.78,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.44
          },
          "message": "Domínio 2, x=1.4 cm, x/d=0.03 ≤ 0.45 ok. As=0.78 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 22.97,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=23.0 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.008,
            "alpha_f": 1.323,
            "at_cm": 0.018,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.011,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.018 cm (≤ limite L/250 = 1.600 cm). a_i = 0.008 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          422
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "422": {
            "Mz_i_knm": 13.483926031288728,
            "Mz_j_knm": -15.326853450916033,
            "M_span_knm": 8.108,
            "w_kn_m": 11.257,
            "Vy_i_kn": 22.05294814509316,
            "Vy_j_kn": 22.974411854906815
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 948.0612025777172,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0668,
          "ai_branson_cm": 0.0077
        }
      }
    },
    {
      "id": "01y71SKQLEreATDBgWgfvd",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1548.2,
            "x_cm": 1.4,
            "xd_ratio": 0.03,
            "domain": "2",
            "as_cm2": 0.78,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.44
          },
          "message": "Domínio 2, x=1.4 cm, x/d=0.03 ≤ 0.45 ok. As=0.78 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 22.78,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=22.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.006,
            "alpha_f": 1.323,
            "at_cm": 0.015,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.009,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.015 cm (≤ limite L/250 = 1.600 cm). a_i = 0.006 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          423
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "423": {
            "Mz_i_knm": 15.481916594893413,
            "Mz_j_knm": -14.42801520589106,
            "M_span_knm": 7.559,
            "w_kn_m": 11.257,
            "Vy_i_kn": 22.777155347250577,
            "Vy_j_kn": 22.2502046527494
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 966.2978818847126,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.4148,
          "ai_branson_cm": 0.0064
        }
      }
    },
    {
      "id": "2G9gyfWTTEd9X1Qple2cY_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2701.5,
            "x_cm": 2.47,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.38,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.01
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.38 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.21,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.2 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          424
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "424": {
            "Mz_i_knm": 19.89921399800973,
            "Mz_j_knm": -27.015030825264176,
            "M_span_knm": 13.973,
            "w_kn_m": 18.715,
            "Vy_i_kn": 35.65144579318638,
            "Vy_j_kn": 39.209354206813614
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1630.9018616506364,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0578,
          "ai_branson_cm": 0.0127
        }
      }
    },
    {
      "id": "18oE6HPMXAc8gsKFf6MIaz",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2615.9,
            "x_cm": 2.39,
            "xd_ratio": 0.052,
            "domain": "2",
            "as_cm2": 1.34,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.04
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.34 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.05,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.0 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          425
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "425": {
            "Mz_i_knm": 26.158842119005982,
            "Mz_j_knm": -21.286957665070453,
            "M_span_knm": 13.111,
            "w_kn_m": 18.417,
            "Vy_i_kn": 38.051691113483884,
            "Vy_j_kn": 35.615748886516116
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1579.6908719588967,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0526,
          "ai_branson_cm": 0.0109
        }
      }
    },
    {
      "id": "3Zz1LPxwr1KAQ1$vfhQCol",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 946.2,
            "x_cm": 0.85,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.74,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          426
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.30 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.5, Mj=5.8 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "426": {
            "Mz_i_knm": 8.965542176709336,
            "Mz_j_knm": -9.462131616084246,
            "M_span_knm": 0.108,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.329895733593801,
            "Vy_j_kn": 15.743720266406225
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 576.0172299881795,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0432,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "13GIHd4JrDZBYiPSkdzMaA",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2733.8,
            "x_cm": 2.5,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.88,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          427
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "427": {
            "Mz_i_knm": 22.314833280058416,
            "Mz_j_knm": -27.337946171260683,
            "M_span_knm": 13.797,
            "w_kn_m": 19.312,
            "Vy_i_kn": 37.36798177719942,
            "Vy_j_kn": 39.87953822280055
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1647.3966497872884,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0526,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "0um$hvwBj6VB8tnNkSaot7",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2743.5,
            "x_cm": 2.51,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.78,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          428
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "428": {
            "Mz_i_knm": 27.43538997748981,
            "Mz_j_knm": -20.40704635254771,
            "M_span_knm": 14.106,
            "w_kn_m": 19.014,
            "Vy_i_kn": 39.7841659062355,
            "Vy_j_kn": 36.26999409376445
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1655.366301695558,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0526,
          "ai_branson_cm": 0.0126
        }
      }
    },
    {
      "id": "2n1oZM4iP5XO3SaoN5l$Fc",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2766.2,
            "x_cm": 2.53,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.06 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.93,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          429
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "429": {
            "Mz_i_knm": 20.033309540168013,
            "Mz_j_knm": -27.662121758448123,
            "M_span_knm": 14.179,
            "w_kn_m": 19.014,
            "Vy_i_kn": 36.11987694542997,
            "Vy_j_kn": 39.934283054570024
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1668.987798916871,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "0ZwJH_VzjE1839OUoiEk0C",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2730.0,
            "x_cm": 2.5,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.86,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          430
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "430": {
            "Mz_i_knm": 27.299818113127078,
            "Mz_j_knm": -22.35461330875595,
            "M_span_knm": 13.797,
            "w_kn_m": 19.312,
            "Vy_i_kn": 39.860061201092776,
            "Vy_j_kn": 37.38745879890722
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1645.0697991901905,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "0Ez8wIGtz9bOd84yv3MErv",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 939.9,
            "x_cm": 0.85,
            "xd_ratio": 0.018,
            "domain": "2",
            "as_cm2": 0.47,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.8 cm, x/d=0.02 ≤ 0.45 ok. As=0.47 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.68,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          431
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.14 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.7, Mj=5.5 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "431": {
            "Mz_i_knm": 9.398808702195057,
            "Mz_j_knm": -9.053397247106625,
            "M_span_knm": 0.096,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.68072943962019,
            "Vy_j_kn": 15.392886560379834
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 571.9648643989065,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0439,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "2I$vL4B1j4kB7n_Jzu5yTR",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2585.1,
            "x_cm": 2.36,
            "xd_ratio": 0.051,
            "domain": "2",
            "as_cm2": 1.32,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.05
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.32 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 37.5,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=37.5 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          432
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "432": {
            "Mz_i_knm": 20.804081878757966,
            "Mz_j_knm": -25.851287598878685,
            "M_span_knm": 12.909,
            "w_kn_m": 18.119,
            "Vy_i_kn": 34.975238569969804,
            "Vy_j_kn": 37.49884143003016
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1562.1324212436214,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0108
        }
      }
    },
    {
      "id": "2D9EcPSpDCS9WGm2z6XfZL",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2654.6,
            "x_cm": 2.43,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.03
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.58,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          433
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "433": {
            "Mz_i_knm": 26.546332293998585,
            "Mz_j_knm": -19.58064543012443,
            "M_span_knm": 13.77,
            "w_kn_m": 18.417,
            "Vy_i_kn": 38.57514171596852,
            "Vy_j_kn": 35.09229828403144
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1603.6073106098186,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0536,
          "ai_branson_cm": 0.0125
        }
      }
    },
    {
      "id": "2KrJwEhRD41QRbIMmEH_Hc",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2665.3,
            "x_cm": 2.44,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.03
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.63,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          434
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "434": {
            "Mz_i_knm": 19.456329536134483,
            "Mz_j_knm": -26.65306009962766,
            "M_span_knm": 13.779,
            "w_kn_m": 18.417,
            "Vy_i_kn": 35.0345373591267,
            "Vy_j_kn": 38.63290264087329
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1610.606474625703,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0508,
          "ai_branson_cm": 0.0126
        }
      }
    },
    {
      "id": "1p9z9bTef5Jv8ClvH2Xvdp",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2576.0,
            "x_cm": 2.35,
            "xd_ratio": 0.051,
            "domain": "2",
            "as_cm2": 1.31,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.06
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.31 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 37.45,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=37.5 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          435
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "435": {
            "Mz_i_knm": 25.759766494312625,
            "Mz_j_knm": -20.891238264619066,
            "M_span_knm": 12.912,
            "w_kn_m": 18.119,
            "Vy_i_kn": 37.45417205742339,
            "Vy_j_kn": 35.01990794257661
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1556.1172821087328,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0508,
          "ai_branson_cm": 0.0108
        }
      }
    },
    {
      "id": "0jOxUUweX0je5l_lVTZPHq",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 954.1,
            "x_cm": 0.86,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.8,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          436
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.32 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.4, Mj=5.8 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "436": {
            "Mz_i_knm": 8.913978039869521,
            "Mz_j_knm": -9.541497616461191,
            "M_span_knm": 0.094,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.275341509753481,
            "Vy_j_kn": 15.798274490246541
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 581.3080450086564,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.044,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "0QXDWVKPv9jxiGxs3JCaiM",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2739.4,
            "x_cm": 2.51,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.91,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          437
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "437": {
            "Mz_i_knm": 22.262418467835424,
            "Mz_j_knm": -27.39448344229763,
            "M_span_knm": 13.795,
            "w_kn_m": 19.312,
            "Vy_i_kn": 37.34074375638443,
            "Vy_j_kn": 39.90677624361554
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1651.2682189755228,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0542,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "08aekx4LX4BQkQP9GNT5p1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2755.3,
            "x_cm": 2.52,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.88,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          438
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "438": {
            "Mz_i_knm": 27.55330573911348,
            "Mz_j_knm": -20.151652698352947,
            "M_span_knm": 14.175,
            "w_kn_m": 19.014,
            "Vy_i_kn": 39.877493260190114,
            "Vy_j_kn": 36.176666739809846
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1661.8606084231697,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0512,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "2gkwpJAhH0UfdfD1r6Hfkl",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2763.7,
            "x_cm": 2.53,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.92,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          439
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "439": {
            "Mz_i_knm": 20.05804727742884,
            "Mz_j_knm": -27.636723016372997,
            "M_span_knm": 14.18,
            "w_kn_m": 19.014,
            "Vy_i_kn": 36.13241106526396,
            "Vy_j_kn": 39.92174893473604
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1667.3747299502754,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "1JqLedqRP4cesQ3hFl91O5",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2733.6,
            "x_cm": 2.5,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.88,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          440
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "440": {
            "Mz_i_knm": 27.335789011501998,
            "Mz_j_knm": -22.314011069586268,
            "M_span_knm": 13.799,
            "w_kn_m": 19.312,
            "Vy_i_kn": 39.87920448547893,
            "Vy_j_kn": 37.368315514521065
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1647.2787842285356,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "0r35hjaizCSeVw5paRvOm6",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 939.5,
            "x_cm": 0.85,
            "xd_ratio": 0.018,
            "domain": "2",
            "as_cm2": 0.47,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.8 cm, x/d=0.02 ≤ 0.45 ok. As=0.47 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.65,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          441
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.15 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.7, Mj=5.6 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "441": {
            "Mz_i_knm": 9.395299983144671,
            "Mz_j_knm": -9.112887532948838,
            "M_span_knm": 0.068,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.654479854248276,
            "Vy_j_kn": 15.419136145751748
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 571.9568298190517,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0415,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "0uKpRWXtb4YQdfw97jSBn_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2625.8,
            "x_cm": 2.4,
            "xd_ratio": 0.052,
            "domain": "2",
            "as_cm2": 1.34,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.04
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.34 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.11,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.1 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.026,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.026 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          442
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "442": {
            "Mz_i_knm": 21.167283265387397,
            "Mz_j_knm": -26.257896707590977,
            "M_span_knm": 13.121,
            "w_kn_m": 18.417,
            "Vy_i_kn": 35.56106663944909,
            "Vy_j_kn": 38.106373360550876
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1585.504506256853,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0507,
          "ai_branson_cm": 0.011
        }
      }
    },
    {
      "id": "1sGGqhSwT4fva_Af1IjRuA",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2700.4,
            "x_cm": 2.47,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.38,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.01
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.38 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.22,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.2 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          443
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "443": {
            "Mz_i_knm": 27.003709463185004,
            "Mz_j_knm": -19.86351937476371,
            "M_span_knm": 13.997,
            "w_kn_m": 18.715,
            "Vy_i_kn": 39.21544752210531,
            "Vy_j_kn": 35.64535247789466
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1630.1822449713618,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0507,
          "ai_branson_cm": 0.0127
        }
      }
    },
    {
      "id": "3Gu61kZA1FHeRZ8i0ndBj9",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2749.2,
            "x_cm": 2.52,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.87,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          444
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "444": {
            "Mz_i_knm": 20.120175441966175,
            "Mz_j_knm": -27.492375815953558,
            "M_span_knm": 14.221,
            "w_kn_m": 19.014,
            "Vy_i_kn": 36.18402990650315,
            "Vy_j_kn": 39.87013009349684
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1658.9694046820252,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.051,
          "ai_branson_cm": 0.0129
        }
      }
    },
    {
      "id": "2hKM7UtNfAcQgbKsBYPzpb",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2661.0,
            "x_cm": 2.43,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.03
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.68,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.026,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.026 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          445
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "445": {
            "Mz_i_knm": 26.610437353838456,
            "Mz_j_knm": -21.606769620766833,
            "M_span_knm": 13.322,
            "w_kn_m": 18.715,
            "Vy_i_kn": 38.68131693326791,
            "Vy_j_kn": 36.17948306673209
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1605.4101949113126,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.051,
          "ai_branson_cm": 0.0111
        }
      }
    },
    {
      "id": "3QysCYuG5BbfgNhro75r3v",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 946.2,
            "x_cm": 0.85,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 16.16,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=16.2 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          446
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.22 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.7, Mj=5.8 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "446": {
            "Mz_i_knm": 9.390350585054602,
            "Mz_j_knm": -9.461726571626418,
            "M_span_knm": 0.254,
            "w_kn_m": 13.445,
            "Vy_i_kn": 16.10380400559509,
            "Vy_j_kn": 16.163283994404935
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 576.5029050416276,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0463,
          "ai_branson_cm": 0.0016
        }
      }
    },
    {
      "id": "2_jNPhjnj4B951wQgt5N_v",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2665.8,
            "x_cm": 2.44,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.02
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.7,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.026,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.026 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          447
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "447": {
            "Mz_i_knm": 21.561214264187505,
            "Mz_j_knm": -26.65774025940385,
            "M_span_knm": 13.321,
            "w_kn_m": 18.715,
            "Vy_i_kn": 36.156268501195896,
            "Vy_j_kn": 38.70453149880407
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1608.5598391198625,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0531,
          "ai_branson_cm": 0.0111
        }
      }
    },
    {
      "id": "0uSMrW10TCJg8GZBPboTjr",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2743.8,
            "x_cm": 2.51,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.84,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          448
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "448": {
            "Mz_i_knm": 27.437610548456068,
            "Mz_j_knm": -20.181054426716493,
            "M_span_knm": 14.218,
            "w_kn_m": 19.014,
            "Vy_i_kn": 39.84121903043487,
            "Vy_j_kn": 36.21294096956508
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1655.3230088138725,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.051,
          "ai_branson_cm": 0.0129
        }
      }
    },
    {
      "id": "1apgpNLQLDquZlmw4IDbwB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2705.9,
            "x_cm": 2.48,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.38,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.01
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.38 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.24,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.2 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          449
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "449": {
            "Mz_i_knm": 19.802036638227285,
            "Mz_j_knm": -27.058995724559537,
            "M_span_knm": 14.0,
            "w_kn_m": 18.715,
            "Vy_i_kn": 35.61616022841694,
            "Vy_j_kn": 39.24463977158306
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1633.8636358227466,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0508,
          "ai_branson_cm": 0.0127
        }
      }
    },
    {
      "id": "1$sRmmZIn25PCYIlHIIWqQ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2621.0,
            "x_cm": 2.4,
            "xd_ratio": 0.052,
            "domain": "2",
            "as_cm2": 1.34,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.04
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.34 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.08,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.1 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.026,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.026 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          450
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "450": {
            "Mz_i_knm": 26.210136338719877,
            "Mz_j_knm": -21.213281275485514,
            "M_span_knm": 13.122,
            "w_kn_m": 18.417,
            "Vy_i_kn": 38.08293376580859,
            "Vy_j_kn": 35.58450623419141
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1582.3241645495889,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0508,
          "ai_branson_cm": 0.011
        }
      }
    },
    {
      "id": "1W04smv4P7WAjkJ5FFpEMy",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 946.7,
            "x_cm": 0.85,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.71,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          451
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.28 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.5, Mj=5.8 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "451": {
            "Mz_i_knm": 9.040847015727724,
            "Mz_j_knm": -9.467278399674925,
            "M_span_knm": 0.068,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.35912825668868,
            "Vy_j_kn": 15.714487743311345
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 576.7498325273209,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0414,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "1av7bdKsj9ywssxqgQc1H4",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2738.4,
            "x_cm": 2.51,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.9,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          452
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "452": {
            "Mz_i_knm": 22.268078894292266,
            "Mz_j_knm": -27.383511755387733,
            "M_span_knm": 13.798,
            "w_kn_m": 19.312,
            "Vy_i_kn": 37.34490178472612,
            "Vy_j_kn": 39.90261821527385
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1650.4564747716736,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0517,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "3Ue54u_959DQAjNLQDjhmY",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2758.1,
            "x_cm": 2.52,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.89,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          453
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "453": {
            "Mz_i_knm": 27.58147932441101,
            "Mz_j_knm": -20.119439224645784,
            "M_span_knm": 14.177,
            "w_kn_m": 19.014,
            "Vy_i_kn": 39.892590024941285,
            "Vy_j_kn": 36.16156997505867
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1663.6963031980547,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0511,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "2XUvsjsnL1KQ7zFaFJebIz",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2761.3,
            "x_cm": 2.53,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.91,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          454
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "454": {
            "Mz_i_knm": 20.08497068987617,
            "Mz_j_knm": -27.612940088702103,
            "M_span_knm": 14.178,
            "w_kn_m": 19.014,
            "Vy_i_kn": 36.14508765029351,
            "Vy_j_kn": 39.90907234970648
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1665.8179887375575,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0513,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "1i02ALgULDhfPXjkhNo3YW",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2734.4,
            "x_cm": 2.5,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.88,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          455
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "455": {
            "Mz_i_knm": 27.343539478110007,
            "Mz_j_knm": -22.31167477995886,
            "M_span_knm": 13.796,
            "w_kn_m": 19.312,
            "Vy_i_kn": 39.88172617453779,
            "Vy_j_kn": 37.365793825462205
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1647.884954237281,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0513,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "3RZ9dGEuPDpeuR5jUSvFQM",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 946.4,
            "x_cm": 0.85,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.73,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.7 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          456
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.12 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.8, Mj=5.5 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "456": {
            "Mz_i_knm": 9.464441775256105,
            "Mz_j_knm": -8.990857887589371,
            "M_span_knm": 0.094,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.734134619861152,
            "Vy_j_kn": 15.339481380138874
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 576.1909756834661,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.044,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "0_uojcnEL5wRHR7_JdjuMi",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2581.1,
            "x_cm": 2.36,
            "xd_ratio": 0.051,
            "domain": "2",
            "as_cm2": 1.32,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.06
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.32 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 37.48,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=37.5 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          457
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "457": {
            "Mz_i_knm": 20.842280679940934,
            "Mz_j_knm": -25.810675498718098,
            "M_span_knm": 12.911,
            "w_kn_m": 18.119,
            "Vy_i_kn": 34.99494129530569,
            "Vy_j_kn": 37.47913870469428
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1559.4979243493444,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0507,
          "ai_branson_cm": 0.0108
        }
      }
    },
    {
      "id": "0G6P2gPALCOg4FCiddZxuZ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2659.4,
            "x_cm": 2.43,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.03
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.6,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          458
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "458": {
            "Mz_i_knm": 26.594084312763467,
            "Mz_j_knm": -19.521898503296825,
            "M_span_knm": 13.776,
            "w_kn_m": 18.417,
            "Vy_i_kn": 38.60176645236665,
            "Vy_j_kn": 35.06567354763332
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1606.6906775384496,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0507,
          "ai_branson_cm": 0.0126
        }
      }
    },
    {
      "id": "0Oq6HM_Fb8mBLMPGVDaHC6",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2662.3,
            "x_cm": 2.43,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.36,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.03
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.36 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.62,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          459
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "459": {
            "Mz_i_knm": 19.491499842009155,
            "Mz_j_knm": -26.623107902047792,
            "M_span_knm": 13.776,
            "w_kn_m": 18.417,
            "Vy_i_kn": 35.05081798499034,
            "Vy_j_kn": 38.61662201500965
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1608.6194709741467,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0504,
          "ai_branson_cm": 0.0126
        }
      }
    },
    {
      "id": "3iK4VDJ5b0hwQRVk2$MnL3",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2578.5,
            "x_cm": 2.36,
            "xd_ratio": 0.051,
            "domain": "2",
            "as_cm2": 1.32,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.06
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.32 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 37.47,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=37.5 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          460
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "460": {
            "Mz_i_knm": 25.785381207919997,
            "Mz_j_knm": -20.86752700599377,
            "M_span_knm": 12.911,
            "w_kn_m": 18.119,
            "Vy_i_kn": 37.46650355048156,
            "Vy_j_kn": 35.00757644951844
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1557.824707271081,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0504,
          "ai_branson_cm": 0.0108
        }
      }
    },
    {
      "id": "1Xmedjv6967eTJCUoUJymN",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 949.9,
            "x_cm": 0.86,
            "xd_ratio": 0.019,
            "domain": "2",
            "as_cm2": 0.48,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.66
          },
          "message": "Domínio 2, x=0.9 cm, x/d=0.02 ≤ 0.45 ok. As=0.48 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.76,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          461
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.31 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.5, Mj=5.8 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "461": {
            "Mz_i_knm": 8.952931918815734,
            "Mz_j_knm": -9.498920748113283,
            "M_span_knm": 0.096,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.309312654459367,
            "Vy_j_kn": 15.764303345540657
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 578.5014009877491,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0437,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "3_8lDwumzAIQof_hxmvEwQ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2736.7,
            "x_cm": 2.5,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.4,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.40 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.89,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          462
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "462": {
            "Mz_i_knm": 22.290424913558557,
            "Mz_j_knm": -27.366687817991785,
            "M_span_knm": 13.795,
            "w_kn_m": 19.312,
            "Vy_i_kn": 37.354694273891674,
            "Vy_j_kn": 39.89282572610829
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1649.4341559216623,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0533,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "3TvzcJKen5vRlCarlGDUud",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2758.4,
            "x_cm": 2.52,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.89,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.03,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.019,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.030 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          463
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "463": {
            "Mz_i_knm": 27.584227862487392,
            "Mz_j_knm": -20.120105015208487,
            "M_span_knm": 14.175,
            "w_kn_m": 19.014,
            "Vy_i_kn": 39.89311071181971,
            "Vy_j_kn": 36.16104928818025
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1663.9066444488826,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0509,
          "ai_branson_cm": 0.0128
        }
      }
    },
    {
      "id": "2QDZ9eTqT6Guv9MDxC8aOX",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2765.8,
            "x_cm": 2.53,
            "xd_ratio": 0.055,
            "domain": "2",
            "as_cm2": 1.41,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 44.99
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.06 ≤ 0.45 ok. As=1.41 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.92,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.9 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          464
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "464": {
            "Mz_i_knm": 20.07964477342739,
            "Mz_j_knm": -27.658170487286412,
            "M_span_knm": 14.158,
            "w_kn_m": 19.014,
            "Vy_i_kn": 36.13244857153524,
            "Vy_j_kn": 39.921711428464754
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1669.269391836993,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0531,
          "ai_branson_cm": 0.0127
        }
      }
    },
    {
      "id": "1$YwSPyhX2DQtAY_pDNsQb",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2723.5,
            "x_cm": 2.49,
            "xd_ratio": 0.054,
            "domain": "2",
            "as_cm2": 1.39,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.0
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.39 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.82,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.027,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.017,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.027 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          465
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "465": {
            "Mz_i_knm": 27.23490489095001,
            "Mz_j_knm": -22.43137512367304,
            "M_span_knm": 13.791,
            "w_kn_m": 19.312,
            "Vy_i_kn": 39.824642441819236,
            "Vy_j_kn": 37.42287755818076
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1640.9086148241936,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0531,
          "ai_branson_cm": 0.0115
        }
      }
    },
    {
      "id": "3gawFc5Ef4pg2TrQZpmfcQ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 926.2,
            "x_cm": 0.84,
            "xd_ratio": 0.018,
            "domain": "2",
            "as_cm2": 0.47,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.67
          },
          "message": "Domínio 2, x=0.8 cm, x/d=0.02 ≤ 0.45 ok. As=0.47 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 15.58,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=15.6 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.002,
            "alpha_f": 1.323,
            "at_cm": 0.004,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.004,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.004 cm (≤ limite L/250 = 0.960 cm). a_i = 0.002 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          466
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.19 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=5.6, Mj=5.6 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "466": {
            "Mz_i_knm": 9.261799437011764,
            "Mz_j_knm": -9.162552471539412,
            "M_span_knm": 0.11,
            "w_kn_m": 12.947,
            "Vy_i_kn": 15.578160902280159,
            "Vy_j_kn": 15.495455097719866
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 563.4541877797783,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0433,
          "ai_branson_cm": 0.0017
        }
      }
    },
    {
      "id": "2KiFo_2Mr1CQ6KbKC1reF8",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2628.7,
            "x_cm": 2.4,
            "xd_ratio": 0.052,
            "domain": "2",
            "as_cm2": 1.34,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.04
          },
          "message": "Domínio 2, x=2.4 cm, x/d=0.05 ≤ 0.45 ok. As=1.34 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 38.11,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=38.1 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.011,
            "alpha_f": 1.323,
            "at_cm": 0.025,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.016,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.025 cm (≤ limite L/250 = 1.600 cm). a_i = 0.011 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          467
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "467": {
            "Mz_i_knm": 21.16388415004288,
            "Mz_j_knm": -26.28723837424187,
            "M_span_knm": 13.108,
            "w_kn_m": 18.417,
            "Vy_i_kn": 35.552881443950234,
            "Vy_j_kn": 38.11455855604973
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1587.7410946530674,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0526,
          "ai_branson_cm": 0.0109
        }
      }
    },
    {
      "id": "1oOIlccpT2ogOVLZmsj4tN",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 2686.8,
            "x_cm": 2.46,
            "xd_ratio": 0.053,
            "domain": "2",
            "as_cm2": 1.37,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.02
          },
          "message": "Domínio 2, x=2.5 cm, x/d=0.05 ≤ 0.45 ok. As=1.37 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 39.13,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=39.1 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.013,
            "alpha_f": 1.323,
            "at_cm": 0.029,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.018,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.029 cm (≤ limite L/250 = 1.600 cm). a_i = 0.013 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          468
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "468": {
            "Mz_i_knm": 26.86771478442239,
            "Mz_j_knm": -20.061568271809183,
            "M_span_knm": 13.966,
            "w_kn_m": 18.715,
            "Vy_i_kn": 39.131936628153284,
            "Vy_j_kn": 35.728863371846685
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1621.6735756044138,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0613,
          "ai_branson_cm": 0.0126
        }
      }
    },
    {
      "id": "1TZn1ltxD119yFGeO1nUTa",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1704.4,
            "x_cm": 1.55,
            "xd_ratio": 0.034,
            "domain": "2",
            "as_cm2": 0.86,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.38
          },
          "message": "Domínio 2, x=1.5 cm, x/d=0.03 ≤ 0.45 ok. As=0.86 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 24.01,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=24.0 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.009,
            "alpha_f": 1.323,
            "at_cm": 0.02,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.012,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.020 cm (≤ limite L/250 = 1.600 cm). a_i = 0.009 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          469
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "469": {
            "Mz_i_knm": 11.047516983201495,
            "Mz_j_knm": -17.04365770555062,
            "M_span_knm": 8.468,
            "w_kn_m": 11.257,
            "Vy_i_kn": 21.014644819412716,
            "Vy_j_kn": 24.01271518058728
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1060.4695863775682,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.1457,
          "ai_branson_cm": 0.0086
        }
      }
    },
    {
      "id": "3icasufBX3cB6VQMGsLjEy",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1544.6,
            "x_cm": 1.4,
            "xd_ratio": 0.03,
            "domain": "2",
            "as_cm2": 0.78,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.44
          },
          "message": "Domínio 2, x=1.4 cm, x/d=0.03 ≤ 0.45 ok. As=0.78 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 23.0,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=23.0 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.007,
            "alpha_f": 1.323,
            "at_cm": 0.017,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.011,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.017 cm (≤ limite L/250 = 1.600 cm). a_i = 0.007 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          470
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "470": {
            "Mz_i_knm": 15.446158800689146,
            "Mz_j_knm": -13.512672186641211,
            "M_span_knm": 8.034,
            "w_kn_m": 11.257,
            "Vy_i_kn": 22.99705165351198,
            "Vy_j_kn": 22.030308346488013
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 955.5500296061155,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0359,
          "ai_branson_cm": 0.0075
        }
      }
    },
    {
      "id": "2540IEHSnDPPri93fAuDY6",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 659.0,
            "x_cm": 0.59,
            "xd_ratio": 0.013,
            "domain": "2",
            "as_cm2": 0.33,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.76
          },
          "message": "Domínio 2, x=0.6 cm, x/d=0.01 ≤ 0.45 ok. As=0.33 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 10.8,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=10.8 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.001,
            "alpha_f": 1.323,
            "at_cm": 0.002,
            "span_cm": 240.0,
            "limit_ratio": 250.0,
            "allowable_cm": 0.96,
            "utilizacao": 0.002,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.002 cm (≤ limite L/250 = 0.960 cm). a_i = 0.001 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          471
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por integração numérica da linha elástica (v''=M/EIe, 200 estações, máx |v| em x=1.62 m de 2.40 m) sobre rigidez de Branson §17.3.2.1.1 — a fórmula de meio de vão deu ≤ 0 (Mi=3.2, Mj=4.2 kN·m de serviço excedem o engastamento perfeito e o meio do vão não é o ponto de flecha máxima); extremos aplicados como momentos NEGATIVOS de módulo |M| (mesma hipótese de sinal da fórmula fechada); flecha relativa à CORDA entre apoios — o deslocamento dos nós do pórtico não entra nesta grandeza",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "471": {
            "Mz_i_knm": 5.075909407401074,
            "Mz_j_knm": -6.590064763898287,
            "M_span_knm": 0.267,
            "w_kn_m": 8.472,
            "Vy_i_kn": 9.535789934792838,
            "Vy_j_kn": 10.797586065207181
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 417.48686539964257,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0337,
          "ai_branson_cm": 0.0009
        }
      }
    },
    {
      "id": "10FTPM_aT9Xxsk7qQ8bjAh",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1622.7,
            "x_cm": 1.47,
            "xd_ratio": 0.032,
            "domain": "2",
            "as_cm2": 0.82,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.41
          },
          "message": "Domínio 2, x=1.5 cm, x/d=0.03 ≤ 0.45 ok. As=0.82 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 22.96,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=23.0 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.007,
            "alpha_f": 1.323,
            "at_cm": 0.017,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.011,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.017 cm (≤ limite L/250 = 1.600 cm). a_i = 0.007 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          472
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "472": {
            "Mz_i_knm": 12.055344031745264,
            "Mz_j_knm": -16.22708180253267,
            "M_span_knm": 7.776,
            "w_kn_m": 10.958,
            "Vy_i_kn": 20.873785557303137,
            "Vy_j_kn": 22.95965444269684
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 1010.3763705186777,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0566,
          "ai_branson_cm": 0.0073
        }
      }
    },
    {
      "id": "3ciM0re_H4cgnr5SYmb125",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 25.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 25 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1566.1,
            "x_cm": 1.42,
            "xd_ratio": 0.031,
            "domain": "2",
            "as_cm2": 0.79,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.43
          },
          "message": "Domínio 2, x=1.4 cm, x/d=0.03 ≤ 0.45 ok. As=0.79 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 23.3,
            "vrd2_kn": 399.2,
            "vc_kn": 70.8,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.05,
            "asw_adopted_cm2_per_m": 2.05,
            "crushing_ok": true
          },
          "message": "VSd=23.3 ≤ VRd2=399.2 ok. Vc=70.8, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.05).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.009,
            "alpha_f": 1.323,
            "at_cm": 0.02,
            "span_cm": 400.0,
            "limit_ratio": 250.0,
            "allowable_cm": 1.6,
            "utilizacao": 0.012,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.020 cm (≤ limite L/250 = 1.600 cm). a_i = 0.009 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          473
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "473": {
            "Mz_i_knm": 15.660553094061633,
            "Mz_j_knm": -12.529516008101945,
            "M_span_knm": 8.419,
            "w_kn_m": 11.257,
            "Vy_i_kn": 23.296439271489913,
            "Vy_j_kn": 21.730920728510068
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3206.2,
          "ma_serv_kncm": 969.3228323840212,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0975,
          "ai_branson_cm": 0.0085
        }
      }
    },
    {
      "id": "3N5Bm2ubjE2BywoNa_HuaF",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 78082.5,
            "x_cm": 11.02,
            "xd_ratio": 0.087,
            "domain": "2",
            "as_cm2": 14.77,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 14.77,
            "z_cm": 121.59
          },
          "message": "Domínio 2, x=11.0 cm, x/d=0.09 ≤ 0.45 ok. As=14.77 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 204.48,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=204.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.618,
            "alpha_f": 1.323,
            "at_cm": 1.434,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.163,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.434 cm (≤ limite L/250 = 8.800 cm). a_i = 0.618 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          474
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (14.77 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "474": {
            "Mz_i_knm": 568.1942646433401,
            "Mz_j_knm": -780.8251062504047,
            "M_span_knm": 396.945,
            "w_kn_m": 17.71,
            "Vy_i_kn": 185.14496174513343,
            "Vy_j_kn": 204.47503825486658
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 51906.73585369087,
          "ie_cm4": 3880959.9,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 2.6177,
          "ai_branson_cm": 0.6175
        }
      }
    },
    {
      "id": "0G0kbi2B14dv8XYW2bX8lf",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 73231.3,
            "x_cm": 10.31,
            "xd_ratio": 0.082,
            "domain": "2",
            "as_cm2": 13.82,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 13.82,
            "z_cm": 121.88
          },
          "message": "Domínio 2, x=10.3 cm, x/d=0.08 ≤ 0.45 ok. As=13.82 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 195.75,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=195.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.404,
            "alpha_f": 1.323,
            "at_cm": 0.939,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.107,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.939 cm (≤ limite L/250 = 8.800 cm). a_i = 0.404 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          475
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (13.82 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "475": {
            "Mz_i_knm": 711.7348846814932,
            "Mz_j_knm": -732.3132053802136,
            "M_span_knm": 349.431,
            "w_kn_m": 17.71,
            "Vy_i_kn": 193.87462178642178,
            "Vy_j_kn": 195.74537821357816
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 48679.43170423436,
          "ie_cm4": 4446112.1,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.457,
          "ai_branson_cm": 0.4043
        }
      }
    },
    {
      "id": "2QuJABEYH6UgAAAVh5N1J$",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 76989.6,
            "x_cm": 10.86,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 14.56,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 14.56,
            "z_cm": 121.66
          },
          "message": "Domínio 2, x=10.9 cm, x/d=0.09 ≤ 0.45 ok. As=14.56 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 203.92,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=203.9 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.616,
            "alpha_f": 1.323,
            "at_cm": 1.43,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.162,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.430 cm (≤ limite L/250 = 8.800 cm). a_i = 0.616 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          476
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (14.56 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "476": {
            "Mz_i_knm": 769.8955199103976,
            "Mz_j_knm": -569.4395442629888,
            "M_span_knm": 401.787,
            "w_kn_m": 17.71,
            "Vy_i_kn": 203.92163525670037,
            "Vy_j_kn": 185.69836474329958
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 51193.64356017901,
          "ie_cm4": 3991919.7,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 2.9306,
          "ai_branson_cm": 0.6156
        }
      }
    },
    {
      "id": "2pv_ZbxlLFRhSJ7XeMN6m3",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 96200.7,
            "x_cm": 13.69,
            "xd_ratio": 0.109,
            "domain": "2",
            "as_cm2": 18.36,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.36,
            "z_cm": 120.52
          },
          "message": "Domínio 2, x=13.7 cm, x/d=0.11 ≤ 0.45 ok. As=18.36 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 252.11,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=252.1 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.87,
            "alpha_f": 1.323,
            "at_cm": 2.02,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.23,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.020 cm (≤ limite L/250 = 8.800 cm). a_i = 0.870 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          477
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.36 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "477": {
            "Mz_i_knm": 683.8271631251397,
            "Mz_j_knm": -962.0070702264959,
            "M_span_knm": 494.168,
            "w_kn_m": 21.77,
            "Vy_i_kn": 226.82545876812017,
            "Vy_j_kn": 252.11454123187983
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60994.108779450384,
          "ie_cm4": 2975023.8,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6202,
          "ai_branson_cm": 0.8697
        }
      }
    },
    {
      "id": "1iDkhmSgzFwRzOJK1I4fWe",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 89191.8,
            "x_cm": 12.65,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.96,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.96,
            "z_cm": 120.94
          },
          "message": "Domínio 2, x=12.7 cm, x/d=0.10 ≤ 0.45 ok. As=16.96 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.82,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.541,
            "alpha_f": 1.323,
            "at_cm": 1.256,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.143,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.256 cm (≤ limite L/250 = 8.800 cm). a_i = 0.541 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          478
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.96 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "478": {
            "Mz_i_knm": 884.1501088342161,
            "Mz_j_knm": -891.9182736873654,
            "M_span_knm": 429.051,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.1169015975841,
            "Vy_j_kn": 239.82309840241584
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56547.916666484176,
          "ie_cm4": 3335476.3,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5931,
          "ai_branson_cm": 0.5406
        }
      }
    },
    {
      "id": "1hli0J0w95kP5gAkIOAbhk",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95355.4,
            "x_cm": 13.57,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.19,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.19,
            "z_cm": 120.57
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.19 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.31,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.3 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.857,
            "alpha_f": 1.323,
            "at_cm": 1.992,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.226,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.992 cm (≤ limite L/250 = 8.800 cm). a_i = 0.857 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          479
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.19 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "479": {
            "Mz_i_knm": 953.5541211622832,
            "Mz_j_knm": -692.9660206555712,
            "M_span_knm": 493.825,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.31491365939598,
            "Vy_j_kn": 227.62508634060396
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60440.4136236785,
          "ie_cm4": 3012764.6,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.5979,
          "ai_branson_cm": 0.8574
        }
      }
    },
    {
      "id": "36nZvOvvnC5Qe0XpX4vlWz",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95965.4,
            "x_cm": 13.66,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.31,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.31,
            "z_cm": 120.54
          },
          "message": "Domínio 2, x=13.7 cm, x/d=0.11 ≤ 0.45 ok. As=18.31 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.92,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.9 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.867,
            "alpha_f": 1.323,
            "at_cm": 2.015,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.229,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.015 cm (≤ limite L/250 = 8.800 cm). a_i = 0.867 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          480
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.31 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "480": {
            "Mz_i_knm": 685.7031179617269,
            "Mz_j_knm": -959.6538334793387,
            "M_span_knm": 494.407,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.01769474919948,
            "Vy_j_kn": 251.92230525080052
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60835.711979729625,
          "ie_cm4": 2985581.5,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6357,
          "ai_branson_cm": 0.8674
        }
      }
    },
    {
      "id": "33GPJhJ8j45eZ4I9Th20gA",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88948.5,
            "x_cm": 12.62,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.91,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.91,
            "z_cm": 120.95
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.91 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.59,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.6 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.538,
            "alpha_f": 1.323,
            "at_cm": 1.249,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.249 cm (≤ limite L/250 = 8.800 cm). a_i = 0.538 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          481
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.91 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "481": {
            "Mz_i_knm": 886.7819224733654,
            "Mz_j_knm": -889.4853507458372,
            "M_span_knm": 428.951,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.34711689670578,
            "Vy_j_kn": 239.59288310329416
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56387.349873756815,
          "ie_cm4": 3351343.2,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5995,
          "ai_branson_cm": 0.5377
        }
      }
    },
    {
      "id": "12xNUAP9nD7gdPmI7LOF$U",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95661.3,
            "x_cm": 13.61,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.25,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.25,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.25 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.63,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.6 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.863,
            "alpha_f": 1.323,
            "at_cm": 2.004,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.004 cm (≤ limite L/250 = 8.800 cm). a_i = 0.863 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          482
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.25 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "482": {
            "Mz_i_knm": 956.6133324443737,
            "Mz_j_knm": -689.0811474337908,
            "M_span_knm": 494.238,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.63055386411736,
            "Vy_j_kn": 227.30944613588258
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60636.53247871995,
          "ie_cm4": 2999178.8,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6247,
          "ai_branson_cm": 0.8628
        }
      }
    },
    {
      "id": "0AoNwgo4L93PyD5kYDLluV",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95866.4,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.29,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.29,
            "z_cm": 120.54
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.29 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.83,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.866,
            "alpha_f": 1.323,
            "at_cm": 2.011,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.229,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.011 cm (≤ limite L/250 = 8.800 cm). a_i = 0.866 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          483
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.29 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "483": {
            "Mz_i_knm": 686.7915715324517,
            "Mz_j_knm": -958.6644912079053,
            "M_span_knm": 494.357,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.1121400147521,
            "Vy_j_kn": 251.8278599852479
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60770.846352819295,
          "ie_cm4": 2989966.0,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6324,
          "ai_branson_cm": 0.8659
        }
      }
    },
    {
      "id": "3eBIXSjH14GBqxdSx_gffu",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88860.2,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.9,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.9,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.90 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.51,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.537,
            "alpha_f": 1.323,
            "at_cm": 1.247,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.247 cm (≤ limite L/250 = 8.800 cm). a_i = 0.537 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          484
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.90 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "484": {
            "Mz_i_knm": 887.6686663263082,
            "Mz_j_knm": -888.6022400149103,
            "M_span_knm": 428.95,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.42756483233623,
            "Vy_j_kn": 239.5124351676637
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56329.476739291065,
          "ie_cm4": 3357380.0,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5997,
          "ai_branson_cm": 0.5368
        }
      }
    },
    {
      "id": "29hfzgQVD1whPhFXDLMSsq",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95761.3,
            "x_cm": 13.63,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.27,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.27,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.27 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.73,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.7 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.864,
            "alpha_f": 1.323,
            "at_cm": 2.008,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.008 cm (≤ limite L/250 = 8.800 cm). a_i = 0.864 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          485
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.27 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "485": {
            "Mz_i_knm": 957.612742782661,
            "Mz_j_knm": -687.9616558857468,
            "M_span_knm": 494.298,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.72686758622334,
            "Vy_j_kn": 227.2131324137766
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60701.943940629564,
          "ie_cm4": 2994698.6,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6286,
          "ai_branson_cm": 0.8643
        }
      }
    },
    {
      "id": "1tyoKAZav5qQ5YRUo30QEq",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95831.9,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.54
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.79,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.01,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.010 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          486
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "486": {
            "Mz_i_knm": 687.175547372428,
            "Mz_j_knm": -958.318575924165,
            "M_span_knm": 494.338,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.14531688401195,
            "Vy_j_kn": 251.79468311598805
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60748.183710550395,
          "ie_cm4": 2991388.1,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6312,
          "ai_branson_cm": 0.8654
        }
      }
    },
    {
      "id": "3XEVC5EqjFUB4vgoI_5oSR",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88829.5,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.89,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.89,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.89 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.48,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.536,
            "alpha_f": 1.323,
            "at_cm": 1.246,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.246 cm (≤ limite L/250 = 8.800 cm). a_i = 0.536 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          487
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "487": {
            "Mz_i_knm": 887.976104688222,
            "Mz_j_knm": -888.2952697059324,
            "M_span_knm": 428.949,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.45549249919495,
            "Vy_j_kn": 239.484507500805
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56309.36500578789,
          "ie_cm4": 3359271.1,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5997,
          "ai_branson_cm": 0.5365
        }
      }
    },
    {
      "id": "18STBsCr9Cnu2417q0QmqY",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95795.9,
            "x_cm": 13.63,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.76,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          488
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "488": {
            "Mz_i_knm": 957.959057639361,
            "Mz_j_knm": -687.5754765229827,
            "M_span_knm": 494.318,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.76016277801716,
            "Vy_j_kn": 227.17983722198278
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60724.62774712296,
          "ie_cm4": 2993268.6,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6299,
          "ai_branson_cm": 0.8648
        }
      }
    },
    {
      "id": "0ZpAN4J992vPPSx5uAtdwp",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95819.9,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.54
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.78,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.01,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.010 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          489
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "489": {
            "Mz_i_knm": 687.3090369838701,
            "Mz_j_knm": -958.1986279466523,
            "M_span_knm": 494.331,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.156836774419,
            "Vy_j_kn": 251.783163225581
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60740.32618441013,
          "ie_cm4": 2992015.1,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6308,
          "ai_branson_cm": 0.8652
        }
      }
    },
    {
      "id": "2uql_A0cj6PAUaZ4nIgbqK",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88818.9,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.89,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.89,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.89 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.47,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.536,
            "alpha_f": 1.323,
            "at_cm": 1.246,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.246 cm (≤ limite L/250 = 8.800 cm). a_i = 0.536 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          490
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "490": {
            "Mz_i_knm": 888.0825381166958,
            "Mz_j_knm": -888.1888274923898,
            "M_span_knm": 428.949,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.46516866474116,
            "Vy_j_kn": 239.47483133525878
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56302.39224502784,
          "ie_cm4": 3360041.0,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5997,
          "ai_branson_cm": 0.5363
        }
      }
    },
    {
      "id": "2v8Vk$_lnDG9$qJ6zSMlLj",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95807.9,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.77,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          491
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "491": {
            "Mz_i_knm": 958.0790217376542,
            "Mz_j_knm": -687.4419811204281,
            "M_span_knm": 494.324,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.77168366441936,
            "Vy_j_kn": 227.16831633558058
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60732.486286078776,
          "ie_cm4": 2992640.9,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6303,
          "ai_branson_cm": 0.865
        }
      }
    },
    {
      "id": "1S48Q8lOT4Y8hlXpIZdfW3",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95815.6,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.78,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          492
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "492": {
            "Mz_i_knm": 687.3570521268366,
            "Mz_j_knm": -958.1560733529548,
            "M_span_knm": 494.328,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.160953580631,
            "Vy_j_kn": 251.779046419369
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60737.541632611166,
          "ie_cm4": 2992237.3,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6306,
          "ai_branson_cm": 0.8651
        }
      }
    },
    {
      "id": "1kNxrDXnr0ix7ZTnQmY4zf",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88815.1,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.89,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.89,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.89 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.47,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.536,
            "alpha_f": 1.323,
            "at_cm": 1.246,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.246 cm (≤ limite L/250 = 8.800 cm). a_i = 0.536 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          493
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "493": {
            "Mz_i_knm": 888.1199976527058,
            "Mz_j_knm": -888.1510093405301,
            "M_span_knm": 428.949,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.46859037782613,
            "Vy_j_kn": 239.4714096221738
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56299.91821807707,
          "ie_cm4": 3360314.2,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5997,
          "ai_branson_cm": 0.5363
        }
      }
    },
    {
      "id": "3ZPIDzlNL0i80LJ13bi$ls",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95812.1,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.78,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          494
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "494": {
            "Mz_i_knm": 958.1212705611221,
            "Mz_j_knm": -687.3956537052219,
            "M_span_knm": 494.327,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.77570985708635,
            "Vy_j_kn": 227.1642901429136
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60735.255754241145,
          "ie_cm4": 2992419.8,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6305,
          "ai_branson_cm": 0.8651
        }
      }
    },
    {
      "id": "2enkqw$6H4bQHPffIYI3Bq",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95813.4,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.78,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          495
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "495": {
            "Mz_i_knm": 687.3887473933751,
            "Mz_j_knm": -958.1344028462165,
            "M_span_knm": 494.323,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.1633792975981,
            "Vy_j_kn": 251.77662070240189
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60736.181844067025,
          "ie_cm4": 2992345.9,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6303,
          "ai_branson_cm": 0.8651
        }
      }
    },
    {
      "id": "1pbbYIvYzEiB9k07VvzytM",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88813.5,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.89,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.89,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.89 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.47,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.536,
            "alpha_f": 1.323,
            "at_cm": 1.246,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.246 cm (≤ limite L/250 = 8.800 cm). a_i = 0.536 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          496
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "496": {
            "Mz_i_knm": 888.134541913404,
            "Mz_j_knm": -888.1335706787959,
            "M_span_knm": 428.951,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.4700441470276,
            "Vy_j_kn": 239.46995585297233
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56298.854489779296,
          "ie_cm4": 3360431.7,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5996,
          "ai_branson_cm": 0.5363
        }
      }
    },
    {
      "id": "00u$IqeZHD2gF49M3Wr_a1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95813.6,
            "x_cm": 13.64,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.78,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.865,
            "alpha_f": 1.323,
            "at_cm": 2.009,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.009 cm (≤ limite L/250 = 8.800 cm). a_i = 0.865 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          497
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "497": {
            "Mz_i_knm": 958.1356243466031,
            "Mz_j_knm": -687.3872771762525,
            "M_span_knm": 494.324,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.77674305319772,
            "Vy_j_kn": 227.16325694680222
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60736.25069079419,
          "ie_cm4": 2992340.4,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6303,
          "ai_branson_cm": 0.8651
        }
      }
    },
    {
      "id": "2vB3tHdOzFy9OxBxCaAslQ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95784.4,
            "x_cm": 13.63,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.73,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.7 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.864,
            "alpha_f": 1.323,
            "at_cm": 2.007,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.007 cm (≤ limite L/250 = 8.800 cm). a_i = 0.864 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          498
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "498": {
            "Mz_i_knm": 688.1813887669791,
            "Mz_j_knm": -957.8435014338546,
            "M_span_knm": 494.073,
            "w_kn_m": 21.77,
            "Vy_i_kn": 227.21263124241474,
            "Vy_j_kn": 251.72736875758525
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60721.4208221503,
          "ie_cm4": 2993524.8,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.614,
          "ai_branson_cm": 0.864
        }
      }
    },
    {
      "id": "09cvbpmPj6b81I4a_VME6t",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 88807.4,
            "x_cm": 12.6,
            "xd_ratio": 0.1,
            "domain": "2",
            "as_cm2": 16.89,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 16.89,
            "z_cm": 120.96
          },
          "message": "Domínio 2, x=12.6 cm, x/d=0.10 ≤ 0.45 ok. As=16.89 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 239.47,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=239.5 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.536,
            "alpha_f": 1.323,
            "at_cm": 1.246,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.142,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.246 cm (≤ limite L/250 = 8.800 cm). a_i = 0.536 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          499
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (16.89 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "499": {
            "Mz_i_knm": 888.0742691312273,
            "Mz_j_knm": -888.0433889588081,
            "M_span_knm": 429.026,
            "w_kn_m": 21.77,
            "Vy_i_kn": 239.47140364420085,
            "Vy_j_kn": 239.4685963557991
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 56296.07457246925,
          "ie_cm4": 3360738.8,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.5947,
          "ai_branson_cm": 0.5364
        }
      }
    },
    {
      "id": "1yLCPkOmHFN9_UE7xXiBlT",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 95787.8,
            "x_cm": 13.63,
            "xd_ratio": 0.108,
            "domain": "2",
            "as_cm2": 18.28,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 18.28,
            "z_cm": 120.55
          },
          "message": "Domínio 2, x=13.6 cm, x/d=0.11 ≤ 0.45 ok. As=18.28 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 251.73,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=251.7 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.864,
            "alpha_f": 1.323,
            "at_cm": 2.007,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.228,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 2.007 cm (≤ limite L/250 = 8.800 cm). a_i = 0.864 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          500
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (18.28 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "500": {
            "Mz_i_knm": 957.8780892543813,
            "Mz_j_knm": -688.1430887214175,
            "M_span_knm": 494.074,
            "w_kn_m": 21.77,
            "Vy_i_kn": 251.73068184240742,
            "Vy_j_kn": 227.20931815759252
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 60723.65904990582,
          "ie_cm4": 2993346.0,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 3.6141,
          "ai_branson_cm": 0.864
        }
      }
    },
    {
      "id": "3MqOgBj1n1ewi6nCQhpvVL",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 77968.0,
            "x_cm": 11.0,
            "xd_ratio": 0.087,
            "domain": "2",
            "as_cm2": 14.75,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 14.75,
            "z_cm": 121.6
          },
          "message": "Domínio 2, x=11.0 cm, x/d=0.09 ≤ 0.45 ok. As=14.75 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 204.87,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=204.9 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.633,
            "alpha_f": 1.323,
            "at_cm": 1.471,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.167,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.471 cm (≤ limite L/250 = 8.800 cm). a_i = 0.633 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          501
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (14.75 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "501": {
            "Mz_i_knm": 558.4432891760648,
            "Mz_j_knm": -779.6796958101022,
            "M_span_knm": 402.394,
            "w_kn_m": 17.71,
            "Vy_i_kn": 184.75379969845287,
            "Vy_j_kn": 204.86620030154714
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 51834.642897371166,
          "ie_cm4": 3891886.4,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 2.9698,
          "ai_branson_cm": 0.6333
        }
      }
    },
    {
      "id": "2SP5$XUtbBqgQVoAUkOBv_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 72262.7,
            "x_cm": 10.17,
            "xd_ratio": 0.081,
            "domain": "2",
            "as_cm2": 13.63,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 13.63,
            "z_cm": 121.93
          },
          "message": "Domínio 2, x=10.2 cm, x/d=0.08 ≤ 0.45 ok. As=13.63 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 194.81,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=194.8 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.391,
            "alpha_f": 1.323,
            "at_cm": 0.908,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.103,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.908 cm (≤ limite L/250 = 8.800 cm). a_i = 0.391 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          502
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (13.63 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "502": {
            "Mz_i_knm": 722.6265536272889,
            "Mz_j_knm": -722.5364704628962,
            "M_span_knm": 348.873,
            "w_kn_m": 17.71,
            "Vy_i_kn": 194.81409468929056,
            "Vy_j_kn": 194.8059053107094
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 48044.50915521732,
          "ie_cm4": 4578480.3,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 0.4932,
          "ai_branson_cm": 0.3911
        }
      }
    },
    {
      "id": "1aQlVV4IX5FeNEsm_qqkjj",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 30.0,
            "h_cm": 130.0
          },
          "message": "Largura 30 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 77978.4,
            "x_cm": 11.0,
            "xd_ratio": 0.087,
            "domain": "2",
            "as_cm2": 14.75,
            "as_min_cm2": 6.98,
            "as_adopted_cm2": 14.75,
            "z_cm": 121.6
          },
          "message": "Domínio 2, x=11.0 cm, x/d=0.09 ≤ 0.45 ok. As=14.75 cm² (mín 6.98).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 204.88,
            "vrd2_kn": 2449.4,
            "vc_kn": 397.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 4.21,
            "asw_adopted_cm2_per_m": 4.21,
            "crushing_ok": true
          },
          "message": "VSd=204.9 ≤ VRd2=2449.4 ok. Vc=397.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 4.21).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.633,
            "alpha_f": 1.323,
            "at_cm": 1.471,
            "span_cm": 2200.0,
            "limit_ratio": 250.0,
            "allowable_cm": 8.8,
            "utilizacao": 0.167,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 1.471 cm (≤ limite L/250 = 8.800 cm). a_i = 0.633 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          503
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (14.75 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "503": {
            "Mz_i_knm": 779.7836110594468,
            "Mz_j_knm": -558.32556537495,
            "M_span_knm": 402.4,
            "w_kn_m": 17.71,
            "Vy_i_kn": 204.87627480384074,
            "Vy_j_kn": 184.7437251961592
          }
        },
        "stage2": {
          "fissurada": true,
          "mr_kncm": 44474.3,
          "ma_serv_kncm": 51841.37680089549,
          "ie_cm4": 3890817.0,
          "ic_cm4": 5492500.0,
          "ai_fem_uls_abs_cm": 2.9703,
          "ai_branson_cm": 0.6335
        }
      }
    },
    {
      "id": "3o_9_7FnLCpOHWkA_7RzGo",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3527.6,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.1,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          504
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "504": {
            "Mz_i_knm": 34.2756748415578,
            "Mz_j_knm": -35.27602160435126,
            "M_span_knm": 17.724,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.899965323720675,
            "Vy_j_kn": 21.100034676279368
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2521.0232911468433,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.3561,
          "ai_branson_cm": 0.0698
        }
      }
    },
    {
      "id": "3nifiv8h94KvrFKv73fSCG",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3514.9,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          505
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "505": {
            "Mz_i_knm": 35.1486549656481,
            "Mz_j_knm": -34.8514781376488,
            "M_span_knm": 17.5,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.029717682799923,
            "Vy_j_kn": 20.970282317200063
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2509.315090071325,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0371,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2doABwygnFFQq3hkkMFR$1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3515.2,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          506
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "506": {
            "Mz_i_knm": 35.152045478405455,
            "Mz_j_knm": -34.8443235576226,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.030772192078285,
            "Vy_j_kn": 20.969227807921715
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2509.5832157091627,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.038,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2S4x1T3Jn59eGDU4v8spMX",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3516.2,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          507
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "507": {
            "Mz_i_knm": 35.1623999524767,
            "Mz_j_knm": -34.83446375961494,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.032793619286174,
            "Vy_j_kn": 20.967206380713826
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2510.3404267069254,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0354,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0M9Ce6b$T1CR15JvhVL5nx",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3517.2,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          508
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "508": {
            "Mz_i_knm": 35.171930792298994,
            "Mz_j_knm": -34.824795932362626,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.034713485993638,
            "Vy_j_kn": 20.965286514006362
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2511.0424058529898,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0347,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0wX5s87Jf4eu$$XyoTd$S1",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3518.2,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.04,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          509
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "509": {
            "Mz_i_knm": 35.182068072937355,
            "Mz_j_knm": -34.81433608046515,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.03677319924719,
            "Vy_j_kn": 20.963226800752746
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2511.782587543487,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0349,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2oRdoEzs9BoRgIUn4pqhq$",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3519.3,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.04,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          510
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "510": {
            "Mz_i_knm": 35.19333769971053,
            "Mz_j_knm": -34.80258224401056,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.039075545569997,
            "Vy_j_kn": 20.960924454430003
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2512.5956559527103,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0355,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0W_lthM716F90y64pQ34Yo",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3520.2,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.04,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          511
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "511": {
            "Mz_i_knm": 35.2016464230812,
            "Mz_j_knm": -34.79831848068692,
            "M_span_knm": 17.5,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.040332794239458,
            "Vy_j_kn": 20.9596672057606
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2513.1936813411503,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0435,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "3M$y1zxvn8Cfj1Ap_2g39e",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3555.7,
            "x_cm": 1.65,
            "xd_ratio": 0.03,
            "domain": "2",
            "as_cm2": 1.48,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.7 cm, x/d=0.03 ≤ 0.45 ok. As=1.48 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.15,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          512
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "512": {
            "Mz_i_knm": 35.55692683697195,
            "Mz_j_knm": -34.04250572446161,
            "M_span_knm": 17.7,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.151442111250972,
            "Vy_j_kn": 20.848557888748907
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2539.2097592721757,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.2896,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "0T_IxbSs1FXRV9DkR99G8F",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3534.5,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.11,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          513
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "513": {
            "Mz_i_knm": 34.25574566799356,
            "Mz_j_knm": -35.34463148270809,
            "M_span_knm": 17.7,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.891111418528567,
            "Vy_j_kn": 21.108888581471476
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2526.105061006497,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.1133,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "2BYM7bV1P59uT44A7f6jNw",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3502.2,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          514
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "514": {
            "Mz_i_knm": 34.97594385621233,
            "Mz_j_knm": -35.02248994399781,
            "M_span_knm": 17.501,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.995345391221445,
            "Vy_j_kn": 21.00465460877854
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2501.753486795202,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0692,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "38VElFXQT8VOMIseCLIASP",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3501.1,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          515
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "515": {
            "Mz_i_knm": 34.98386420679974,
            "Mz_j_knm": -35.0113865678488,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.997247763895093,
            "Vy_j_kn": 21.002752236104907
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2500.969017100428,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.059,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0x5JSO_c1DRew07zA36RBS",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3499.8,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          516
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "516": {
            "Mz_i_knm": 34.998292302037754,
            "Mz_j_knm": -34.99678349114498,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.000150881089276,
            "Vy_j_kn": 20.999849118910724
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2499.9140551562214,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.056,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "1Vz84r8JXBhxYFzo4RUTNp",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3501.3,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          517
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "517": {
            "Mz_i_knm": 35.0130370027332,
            "Mz_j_knm": -34.98206904683012,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.003096795590306,
            "Vy_j_kn": 20.996903204409694
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2500.7939653684625,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.055,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2d_COVsD96CekfQP$54xxv",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3502.8,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          518
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "518": {
            "Mz_i_knm": 35.02765777607606,
            "Mz_j_knm": -34.96751015077849,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.006014762529723,
            "Vy_j_kn": 20.993985237470213
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2501.8488024034505,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0548,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "3c_deQLwHCjPg9lty7reHX",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3504.2,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          519
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "519": {
            "Mz_i_knm": 35.04209478544116,
            "Mz_j_knm": -34.95313155276397,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.00889632326772,
            "Vy_j_kn": 20.99110367673228
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2502.8929887301338,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0547,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "3F61P1c7z7bOLYHgzU386S",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3505.4,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          520
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "520": {
            "Mz_i_knm": 35.053596272570225,
            "Mz_j_knm": -34.9444918183663,
            "M_span_knm": 17.501,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.01091044542042,
            "Vy_j_kn": 20.989089554579635
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2503.703579217679,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0548,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0UCCURh9z9dQZozlgyeguC",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3537.7,
            "x_cm": 1.65,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.12,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          521
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "521": {
            "Mz_i_knm": 35.37714271334614,
            "Mz_j_knm": -34.22347896907255,
            "M_span_knm": 17.7,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.1153663744273,
            "Vy_j_kn": 20.88463362557258
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2528.149231555463,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0548,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "1B0tqeZsD1kh3uKijIF9s7",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3536.0,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.11,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          522
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "522": {
            "Mz_i_knm": 35.359901236600216,
            "Mz_j_knm": -34.2413720304058,
            "M_span_knm": 17.699,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.111852920619462,
            "Vy_j_kn": 20.88814707938058
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2527.062483460542,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0546,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "1fHL$zXiDErO1c66niF59b",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3503.6,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          523
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "523": {
            "Mz_i_knm": 35.036299045475936,
            "Mz_j_knm": -34.96146650495748,
            "M_span_knm": 17.501,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.007483254051838,
            "Vy_j_kn": 20.992516745948148
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2502.6127543843304,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0546,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "1GpkGUKE55QvnlzvUqOChg",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3502.5,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          524
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "524": {
            "Mz_i_knm": 35.02549757199381,
            "Mz_j_knm": -34.97023197412314,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.005526559787068,
            "Vy_j_kn": 20.994473440212932
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2501.8480323555755,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0546,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "1n9TI0_Uv17wgKlTGFf5MY",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3501.3,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          525
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "525": {
            "Mz_i_knm": 34.98280470482631,
            "Mz_j_knm": -35.013155670262904,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.99696490345634,
            "Vy_j_kn": 21.00303509654366
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2500.9411035485973,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0561,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "1ckuq3ULL78vrsD8Hmueer",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3500.1,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          526
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "526": {
            "Mz_i_knm": 34.99491462262773,
            "Mz_j_knm": -35.00105230796644,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.99938623146613,
            "Vy_j_kn": 21.00061376853387
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2500.051179590114,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.055,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "11yRzn1$bA8B_cWzFIpCn4",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3500.7,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.45,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.45 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          527
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "527": {
            "Mz_i_knm": 35.00710059870721,
            "Mz_j_knm": -34.98877872207279,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.00183218766341,
            "Vy_j_kn": 20.998167812336526
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2500.54761625323,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0547,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "1n3FwiOmn0AuV_nhxXjf6s",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3502.0,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.0,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          528
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "528": {
            "Mz_i_knm": 35.01958334788706,
            "Mz_j_knm": -34.97617394615872,
            "M_span_knm": 17.502,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.004340940172835,
            "Vy_j_kn": 20.995659059827165
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2501.463753271196,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0546,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "3TNvmd0D16Iw8RCRds0GsQ",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3503.0,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          529
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "529": {
            "Mz_i_knm": 35.02967929336825,
            "Mz_j_knm": -34.96875228517063,
            "M_span_knm": 17.501,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.00609270081979,
            "Vy_j_kn": 20.993907299180268
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2502.182232702373,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0559,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2baHN0KMnD2AEbbCGUV7k$",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3535.2,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.11,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          530
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "530": {
            "Mz_i_knm": 35.35198095077453,
            "Mz_j_knm": -34.24920308141072,
            "M_span_knm": 17.699,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.110277786936322,
            "Vy_j_kn": 20.889722213063557
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2526.546855418839,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0748,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "2eYkumBU95J8cceXeutoe6",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3551.0,
            "x_cm": 1.65,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.48,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.7 cm, x/d=0.03 ≤ 0.45 ok. As=1.48 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.14,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          531
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "531": {
            "Mz_i_knm": 34.08842023558794,
            "Mz_j_knm": -35.50965292920038,
            "M_span_knm": 17.701,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.85787673063878,
            "Vy_j_kn": 21.142123269361264
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2536.305942999487,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.3229,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "2HyfOq1cDD4xx$qOoplYHs",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3515.4,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          532
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "532": {
            "Mz_i_knm": 34.84654785350728,
            "Mz_j_knm": -35.154013960922114,
            "M_span_knm": 17.5,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.96925338925851,
            "Vy_j_kn": 21.030746610741478
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2510.2664657426417,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.06,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2W9vaS$ZPC$OK$JVM_2XRd",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3514.3,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          533
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "533": {
            "Mz_i_knm": 34.85140646259257,
            "Mz_j_knm": -35.14284639379633,
            "M_span_knm": 17.503,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.970856006879625,
            "Vy_j_kn": 21.029143993120375
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2509.484521840147,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0398,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0RHpeYNrj4xPjRoi27eTxN",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3512.5,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.03,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          534
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "534": {
            "Mz_i_knm": 34.86906674606275,
            "Mz_j_knm": -35.124810094835205,
            "M_span_knm": 17.503,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.974425665122755,
            "Vy_j_kn": 21.025574334877245
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2508.232817497492,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0348,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "2o66cDfij0IfjLn9Eow7Ad",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3510.6,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.02,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          535
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "535": {
            "Mz_i_knm": 34.887443983044534,
            "Mz_j_knm": -35.10644025368048,
            "M_span_knm": 17.503,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.978100372936407,
            "Vy_j_kn": 21.021899627063593
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2506.959346735387,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0327,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "348bvM6Xv5WviBjsXBM7cy",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3508.8,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.02,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          536
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "536": {
            "Mz_i_knm": 34.90563958834518,
            "Mz_j_knm": -35.08840156999681,
            "M_span_knm": 17.503,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.981723801834804,
            "Vy_j_kn": 21.018276198165132
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2505.70746653198,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0317,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0NUfJmusP4qAwHRDKsKYA_",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3507.1,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          537
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "537": {
            "Mz_i_knm": 34.92342093301319,
            "Mz_j_knm": -35.0707165492063,
            "M_span_knm": 17.503,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.985270438380688,
            "Vy_j_kn": 21.014729561619312
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2504.4789125273587,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0312,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "3UHr7CVhT1XwAHmYzYqwFp",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3506.2,
            "x_cm": 1.63,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.46,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.35
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.46 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.01,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.0 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.068,
            "alpha_f": 1.323,
            "at_cm": 0.158,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.04,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.158 cm (≤ limite L/250 = 4.000 cm). a_i = 0.068 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          538
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "538": {
            "Mz_i_knm": 34.936510351707064,
            "Mz_j_knm": -35.062238344509126,
            "M_span_knm": 17.501,
            "w_kn_m": 4.2,
            "Vy_i_kn": 20.98742720071982,
            "Vy_j_kn": 21.012572799280235
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2503.8927385348015,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0309,
          "ai_branson_cm": 0.0681
        }
      }
    },
    {
      "id": "0QauxxiNj9bBphB7NuziqA",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 40.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 40 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 3529.2,
            "x_cm": 1.64,
            "xd_ratio": 0.029,
            "domain": "2",
            "as_cm2": 1.47,
            "as_min_cm2": 2.15,
            "as_adopted_cm2": 2.15,
            "z_cm": 55.34
          },
          "message": "Domínio 2, x=1.6 cm, x/d=0.03 ≤ 0.45 ok. As=1.47 cm² (mín 2.15).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 21.1,
            "vrd2_kn": 725.8,
            "vc_kn": 117.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.81,
            "asw_adopted_cm2_per_m": 2.81,
            "crushing_ok": true
          },
          "message": "VSd=21.1 ≤ VRd2=725.8 ok. Vc=117.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.81).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.07,
            "alpha_f": 1.323,
            "at_cm": 0.162,
            "span_cm": 1000.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.0,
            "utilizacao": 0.041,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.162 cm (≤ limite L/250 = 4.000 cm). a_i = 0.070 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          539
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (2.15 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "539": {
            "Mz_i_knm": 35.292012664966094,
            "Mz_j_knm": -34.30966771064046,
            "M_span_knm": 17.699,
            "w_kn_m": 4.2,
            "Vy_i_kn": 21.098234495432504,
            "Vy_j_kn": 20.901765504567376
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 6315.9,
          "ma_serv_kncm": 2522.0521776382807,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.2338,
          "ai_branson_cm": 0.0696
        }
      }
    },
    {
      "id": "3e8R$dPvHAW9d3mKi8n8Jy",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 8114.7,
            "x_cm": 5.16,
            "xd_ratio": 0.092,
            "domain": "2",
            "as_cm2": 3.46,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.46,
            "z_cm": 53.93
          },
          "message": "Domínio 2, x=5.2 cm, x/d=0.09 ≤ 0.45 ok. As=3.46 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 42.76,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=42.8 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.16,
            "alpha_f": 1.323,
            "at_cm": 0.373,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.085,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.373 cm (≤ limite L/250 = 4.400 cm). a_i = 0.160 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          540
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.46 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "540": {
            "Mz_i_knm": 61.37705486119097,
            "Mz_j_knm": -81.14704340628323,
            "M_span_knm": 41.389,
            "w_kn_m": 7.448,
            "Vy_i_kn": 39.16672831408251,
            "Vy_j_kn": 42.76127168591747
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 5033.557203773208,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.5565,
          "ai_branson_cm": 0.1604
        }
      }
    },
    {
      "id": "1Y66EzBrX9WhpDoedOdPEH",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7609.9,
            "x_cm": 4.83,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 3.24,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.24,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.24 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 41.09,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.1 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.12,
            "alpha_f": 1.323,
            "at_cm": 0.279,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.063,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.279 cm (≤ limite L/250 = 4.400 cm). a_i = 0.120 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          541
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.24 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "541": {
            "Mz_i_knm": 76.09852526942255,
            "Mz_j_knm": -74.69175702014762,
            "M_span_knm": 37.256,
            "w_kn_m": 7.448,
            "Vy_i_kn": 41.091888022661365,
            "Vy_j_kn": 40.83611197733865
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4720.39724415591,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0221,
          "ai_branson_cm": 0.1203
        }
      }
    },
    {
      "id": "1I5Dtdz1j7YPzIbIiz2b6W",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7516.0,
            "x_cm": 4.77,
            "xd_ratio": 0.085,
            "domain": "2",
            "as_cm2": 3.2,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.2,
            "z_cm": 54.09
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.20 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 40.98,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.0 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.123,
            "alpha_f": 1.323,
            "at_cm": 0.287,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.065,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.287 cm (≤ limite L/250 = 4.400 cm). a_i = 0.123 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          542
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.20 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "542": {
            "Mz_i_knm": 74.98210629196016,
            "Mz_j_knm": -75.15986377191254,
            "M_span_knm": 37.58,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.947840229095235,
            "Vy_j_kn": 40.98015977090476
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4662.172000889312,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0236,
          "ai_branson_cm": 0.1234
        }
      }
    },
    {
      "id": "1q4PhaH7L7pBj3WsvTWcmd",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7516.0,
            "x_cm": 4.77,
            "xd_ratio": 0.085,
            "domain": "2",
            "as_cm2": 3.2,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.2,
            "z_cm": 54.09
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.20 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 40.98,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.0 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.123,
            "alpha_f": 1.323,
            "at_cm": 0.287,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.065,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.287 cm (≤ limite L/250 = 4.400 cm). a_i = 0.123 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          543
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.20 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "543": {
            "Mz_i_knm": 75.15986377180896,
            "Mz_j_knm": -74.9821062920642,
            "M_span_knm": 37.58,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.980159770885905,
            "Vy_j_kn": 40.947840229114135
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4662.172000882886,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0236,
          "ai_branson_cm": 0.1234
        }
      }
    },
    {
      "id": "2W77ybpfT8WvybZBDM5i4F",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7609.9,
            "x_cm": 4.83,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 3.24,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.24,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.24 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 41.09,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.1 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.12,
            "alpha_f": 1.323,
            "at_cm": 0.279,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.063,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.279 cm (≤ limite L/250 = 4.400 cm). a_i = 0.120 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          544
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.24 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "544": {
            "Mz_i_knm": 74.69175702004421,
            "Mz_j_knm": -76.09852526952477,
            "M_span_knm": 37.256,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.83611197731992,
            "Vy_j_kn": 41.091888022680024
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4720.397244162252,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0221,
          "ai_branson_cm": 0.1203
        }
      }
    },
    {
      "id": "21eRLDEUDClh4j44ZkHa$x",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 8114.7,
            "x_cm": 5.16,
            "xd_ratio": 0.092,
            "domain": "2",
            "as_cm2": 3.46,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.46,
            "z_cm": 53.93
          },
          "message": "Domínio 2, x=5.2 cm, x/d=0.09 ≤ 0.45 ok. As=3.46 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 42.76,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=42.8 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.16,
            "alpha_f": 1.323,
            "at_cm": 0.373,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.085,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.373 cm (≤ limite L/250 = 4.400 cm). a_i = 0.160 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          545
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.46 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "545": {
            "Mz_i_knm": 81.14704340617006,
            "Mz_j_knm": -61.37705486131543,
            "M_span_knm": 41.389,
            "w_kn_m": 7.448,
            "Vy_i_kn": 42.76127168589582,
            "Vy_j_kn": 39.16672831410407
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 5033.557203766189,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.5565,
          "ai_branson_cm": 0.1604
        }
      }
    },
    {
      "id": "1KETFKOKj61RiMUEybd1Bp",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 8114.7,
            "x_cm": 5.16,
            "xd_ratio": 0.092,
            "domain": "2",
            "as_cm2": 3.46,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.46,
            "z_cm": 53.93
          },
          "message": "Domínio 2, x=5.2 cm, x/d=0.09 ≤ 0.45 ok. As=3.46 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 42.76,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=42.8 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.16,
            "alpha_f": 1.323,
            "at_cm": 0.373,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.085,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.373 cm (≤ limite L/250 = 4.400 cm). a_i = 0.160 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          546
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.46 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "546": {
            "Mz_i_knm": 61.37705486119303,
            "Mz_j_knm": -81.14704340628136,
            "M_span_knm": 41.389,
            "w_kn_m": 7.448,
            "Vy_i_kn": 39.16672831408287,
            "Vy_j_kn": 42.76127168591711
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 5033.557203773091,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.5565,
          "ai_branson_cm": 0.1604
        }
      }
    },
    {
      "id": "2SFTI3JIH8WgB5zgiV0KzB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7609.9,
            "x_cm": 4.83,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 3.24,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.24,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.24 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 41.09,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.1 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.12,
            "alpha_f": 1.323,
            "at_cm": 0.279,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.063,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.279 cm (≤ limite L/250 = 4.400 cm). a_i = 0.120 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          547
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.24 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "547": {
            "Mz_i_knm": 76.09852526942427,
            "Mz_j_knm": -74.69175702014589,
            "M_span_knm": 37.256,
            "w_kn_m": 7.448,
            "Vy_i_kn": 41.09188802266168,
            "Vy_j_kn": 40.836111977338334
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4720.397244156017,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0221,
          "ai_branson_cm": 0.1203
        }
      }
    },
    {
      "id": "1qdzyIN05CUfeLkqRg9GL5",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7516.0,
            "x_cm": 4.77,
            "xd_ratio": 0.085,
            "domain": "2",
            "as_cm2": 3.2,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.2,
            "z_cm": 54.09
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.20 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 40.98,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.0 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.123,
            "alpha_f": 1.323,
            "at_cm": 0.287,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.065,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.287 cm (≤ limite L/250 = 4.400 cm). a_i = 0.123 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          548
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.20 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "548": {
            "Mz_i_knm": 74.98210629196191,
            "Mz_j_knm": -75.15986377191075,
            "M_span_knm": 37.58,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.94784022909556,
            "Vy_j_kn": 40.980159770904436
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4662.172000889201,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0236,
          "ai_branson_cm": 0.1234
        }
      }
    },
    {
      "id": "09FeS9OgH2be1Nbty2yVW2",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7516.0,
            "x_cm": 4.77,
            "xd_ratio": 0.085,
            "domain": "2",
            "as_cm2": 3.2,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.2,
            "z_cm": 54.09
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.20 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 40.98,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.0 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.123,
            "alpha_f": 1.323,
            "at_cm": 0.287,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.065,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.287 cm (≤ limite L/250 = 4.400 cm). a_i = 0.123 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          549
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.20 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "549": {
            "Mz_i_knm": 75.15986377181088,
            "Mz_j_knm": -74.98210629206216,
            "M_span_knm": 37.58,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.98015977088627,
            "Vy_j_kn": 40.94784022911377
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4662.172000883007,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0236,
          "ai_branson_cm": 0.1234
        }
      }
    },
    {
      "id": "1dRp3dXTz4eOAG$NLxXWKC",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 7609.9,
            "x_cm": 4.83,
            "xd_ratio": 0.086,
            "domain": "2",
            "as_cm2": 3.24,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.24,
            "z_cm": 54.07
          },
          "message": "Domínio 2, x=4.8 cm, x/d=0.09 ≤ 0.45 ok. As=3.24 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 41.09,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=41.1 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.12,
            "alpha_f": 1.323,
            "at_cm": 0.279,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.063,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.279 cm (≤ limite L/250 = 4.400 cm). a_i = 0.120 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          550
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.24 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "550": {
            "Mz_i_knm": 74.6917570200463,
            "Mz_j_knm": -76.0985252695228,
            "M_span_knm": 37.256,
            "w_kn_m": 7.448,
            "Vy_i_kn": 40.83611197732029,
            "Vy_j_kn": 41.091888022679655
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 4720.397244162127,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.0221,
          "ai_branson_cm": 0.1203
        }
      }
    },
    {
      "id": "2_ejTqXqP1e8eHwdtwGhJi",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 60.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 8114.7,
            "x_cm": 5.16,
            "xd_ratio": 0.092,
            "domain": "2",
            "as_cm2": 3.46,
            "as_min_cm2": 1.8,
            "as_adopted_cm2": 3.46,
            "z_cm": 53.93
          },
          "message": "Domínio 2, x=5.2 cm, x/d=0.09 ≤ 0.45 ok. As=3.46 cm² (mín 1.80).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 42.76,
            "vrd2_kn": 570.2,
            "vc_kn": 97.3,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=42.8 ≤ VRd2=570.2 ok. Vc=97.3, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.16,
            "alpha_f": 1.323,
            "at_cm": 0.373,
            "span_cm": 1100.0,
            "limit_ratio": 250.0,
            "allowable_cm": 4.4,
            "utilizacao": 0.085,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.373 cm (≤ limite L/250 = 4.400 cm). a_i = 0.160 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          551
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (3.46 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "551": {
            "Mz_i_knm": 81.14704340617222,
            "Mz_j_knm": -61.37705486131305,
            "M_span_knm": 41.389,
            "w_kn_m": 7.448,
            "Vy_i_kn": 42.76127168589623,
            "Vy_j_kn": 39.16672831410366
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 5213.6,
          "ma_serv_kncm": 5033.557203766321,
          "ie_cm4": 360000.0,
          "ic_cm4": 360000.0,
          "ai_fem_uls_abs_cm": 0.5565,
          "ai_branson_cm": 0.1604
        }
      }
    },
    {
      "id": "09O36tRoX3Ev5WmYewnzFl",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          552
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "552": {
            "Mz_i_knm": 17.362783992424028,
            "Mz_j_knm": -17.36278399242284,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 14.000000000000147,
            "Vy_j_kn": 13.999999999999853
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.198856601709,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0118,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "1rugs6F55CGQM_sehVUmBS",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          553
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "553": {
            "Mz_i_knm": 17.36278399242324,
            "Mz_j_knm": -17.362783992423683,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 13.999999999999945,
            "Vy_j_kn": 14.000000000000055
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.1988566016928,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0197,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "146yZIVfbE_RC37s8qLI9U",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          554
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "554": {
            "Mz_i_knm": 17.362783992424365,
            "Mz_j_knm": -17.362783992422592,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 14.000000000000222,
            "Vy_j_kn": 13.999999999999778
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.19885660174,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0193,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "0r2tvbl5TFCQkKlwx3amr4",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          555
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "555": {
            "Mz_i_knm": 17.362783992425722,
            "Mz_j_knm": -17.36278399242128,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 14.000000000000556,
            "Vy_j_kn": 13.999999999999444
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.1988566018367,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0194,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "1kwj84Og50WPPji_trBhPs",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          556
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "556": {
            "Mz_i_knm": 17.36278399242628,
            "Mz_j_knm": -17.362783992420592,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 14.00000000000071,
            "Vy_j_kn": 13.99999999999929
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.1988566018765,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0193,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "2ieQuoza126ApjEgJQURhi",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          557
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "557": {
            "Mz_i_knm": 17.36278399242149,
            "Mz_j_knm": -17.362783992425353,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 13.999999999999517,
            "Vy_j_kn": 14.000000000000483
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.1988566018103,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0197,
          "ai_branson_cm": 0.061
        }
      }
    },
    {
      "id": "3sLKCPfprFGgOQFFtd76tB",
      "type": "beam",
      "status": "PASS",
      "checks": [
        {
          "check": "NBR6118-13.2.2-min-width",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.2.2",
          "values": {
            "b_cm": 20.0,
            "h_cm": 50.0
          },
          "message": "Largura 20 cm ≥ 14 cm.",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP/Bauru — Vigas (wwwp.feb.unesp.br/pbastos/concreto2/Vigas.pdf)"
        },
        {
          "check": "NBR6118-7.4-aggressiveness",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §7.4.7 (Tabelas 7.1 e 7.2)",
          "values": {
            "caa": "II",
            "fck_mpa": 30.0,
            "min_fck_mpa": 25,
            "min_cover_mm": 30,
            "cover_mm": null
          },
          "message": "CAA II: fck 30 ≥ 25 MPa (cobrimento não informado).",
          "remediation": "",
          "confidence": "MEDIUM",
          "source": "Bastos, UNESP/Bauru — Pilares (wwwp.feb.unesp.br/pbastos/concreto2/Pilares.pdf)"
        },
        {
          "check": "NBR6118-17.2-flexao",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.2.2, §14.6.4.3",
          "values": {
            "md_kncm": 1736.3,
            "x_cm": 1.31,
            "xd_ratio": 0.028,
            "domain": "2",
            "as_cm2": 0.88,
            "as_min_cm2": 1.5,
            "as_adopted_cm2": 1.5,
            "z_cm": 45.48
          },
          "message": "Domínio 2, x=1.3 cm, x/d=0.03 ≤ 0.45 ok. As=0.88 cm² (mín 1.50).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — FlexaoSimples.pdf"
        },
        {
          "check": "NBR6118-17.4-cortante",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §17.4.2.2 (Modelo de Cálculo I)",
          "values": {
            "vsd_kn": 14.0,
            "vrd2_kn": 468.4,
            "vc_kn": 79.9,
            "vsw_kn": 0.0,
            "asw_s_cm2_per_m": 0.0,
            "asw_min_cm2_per_m": 2.32,
            "asw_adopted_cm2_per_m": 2.32,
            "crushing_ok": true
          },
          "message": "VSd=14.0 ≤ VRd2=468.4 ok. Vc=79.9, Vsw=0.0 kN → Asw/s=0.00 cm²/m (mín 2.32).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Cortante.pdf"
        },
        {
          "check": "NBR6118-13.3-flecha",
          "status": "PASS",
          "nbr_ref": "NBR 6118:2014 §13.3 (Tabela 13.3), §17.3.2.1.2",
          "values": {
            "ai_cm": 0.061,
            "alpha_f": 1.323,
            "at_cm": 0.142,
            "span_cm": 800.0,
            "limit_ratio": 250.0,
            "allowable_cm": 3.2,
            "utilizacao": 0.044,
            "xi_t": 2.0,
            "xi_t0": 0.677
          },
          "message": "Flecha total a_t = 0.142 cm (≤ limite L/250 = 3.200 cm). a_i = 0.061 cm; αf = 1.32 (t0=1 mês, t→∞).",
          "remediation": "",
          "confidence": "HIGH",
          "source": "Bastos, UNESP — Lajes.pdf §3.10.3"
        }
      ],
      "force_provenance": {
        "rust_elements": [
          558
        ],
        "combo": "1.4D+1.4L",
        "assumptions": [
          "combinação de serviço EXATA ELS-QP (D + ψ2·L, ψ2=0.3) — segunda resolução do pórtico, não aproximação ULS/γf",
          "As p/ Estádio II = As,req da flexão ULS (1.50 cm²) — detalhamento real pode diferir",
          "a_i por teoria de viga (5wL⁴/384EIe − ΣM_apoio·L²/16EIe) sobre rigidez de Branson §17.3.2.1.1",
          "d = h − 4 cm (hipótese EXPLÍCITA do chamador — cobrimento+φ/2 não lidos do IFC)"
        ],
        "end_forces": {
          "558": {
            "Mz_i_knm": 17.362783992420457,
            "Mz_j_knm": -17.362783992426454,
            "M_span_knm": 10.637,
            "w_kn_m": 3.5,
            "Vy_i_kn": 13.99999999999925,
            "Vy_j_kn": 14.00000000000075
          }
        },
        "stage2": {
          "fissurada": false,
          "mr_kncm": 3620.6,
          "ma_serv_kncm": 1240.198856601881,
          "ie_cm4": 208333.3,
          "ic_cm4": 208333.3,
          "ai_fem_uls_abs_cm": 0.0118,
          "ai_branson_cm": 0.061
        }
      }
    }
  ],
  "governing_combo": "1.4D+1.4L",
  "skipped_no_fem": [],
  "wind": {
    "status": "OK",
    "geometria_medida": {
      "width_m": 69.0,
      "depth_m": 118.8,
      "height_m": 10.0
    },
    "direcoes": {
      "x": {
        "coeficientes": {
          "v0_ms": 45.0,
          "s1": 1.0,
          "s3": 1.0,
          "categoria_rugosidade": 3,
          "classe": "C",
          "ca": 1.122,
          "s2_base_topo": [
            0.8158,
            0.8809
          ]
        },
        "memoria": [
          "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
          "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
          "Ca = 1.122 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=1.722, h/l1=0.084",
          "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 1153.01 kN sobre a frente de 118.80×10.00 m",
          "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 5933.4 kN·m para a EDIFICAÇÃO inteira)"
        ],
        "procedencia": {
          "q": {
            "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§4.2.3",
            "verificar_texto": false,
            "nota": ""
          },
          "vk": {
            "valor": "Vk = V0·S1·S2·S3",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§5",
            "verificar_texto": false,
            "nota": ""
          },
          "v0": {
            "valor": 45.0,
            "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
            "clausula": "§5.1",
            "verificar_texto": false,
            "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
          },
          "s1": {
            "valor": 1.0,
            "fonte": "padrão do módulo",
            "clausula": "§5.2",
            "verificar_texto": true,
            "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
          },
          "s2": {
            "expressao": {
              "valor": "S2 = b·Fr·(z/10)^p",
              "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
              "clausula": "§5.3",
              "verificar_texto": false,
              "nota": ""
            },
            "b_fr_p": {
              "valor": [
                0.93,
                0.95,
                0.115
              ],
              "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
              "clausula": "Tabela 1",
              "verificar_texto": true,
              "nota": "categoria 3 classe C"
            },
            "z_minimo": {
              "valor": 5.0,
              "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
              "clausula": "Tabela 2",
              "verificar_texto": true,
              "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
            }
          },
          "s3": {
            "valor": 1.0,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§5.4 Tabela 3",
            "verificar_texto": true,
            "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
          },
          "categoria_rugosidade": {
            "valor": 3,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§5.3.1",
            "verificar_texto": true,
            "nota": "declarada pelo chamador"
          },
          "classe": {
            "valor": "C",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§5.3.2",
            "verificar_texto": false,
            "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
          },
          "ca": {
            "valor": 1.122,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§6.3 Tabela 4",
            "verificar_texto": true,
            "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
          },
          "arrasto": {
            "valor": "Fa = Ca·q·A",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§6.3",
            "verificar_texto": false,
            "nota": ""
          }
        },
        "resultante": {
          "forca_total_kn": 1153.013,
          "braco_m": 5.146,
          "momento_base_knm": 5933.388,
          "pressao_media_kn_m2": 0.97055
        },
        "reparticao": {
          "status": "OK",
          "missing": [],
          "direcao": "x",
          "eixo_fachada": "y",
          "n_linhas": 17,
          "memoria": [
            "fachada exposta l1 = 118.80 m repartida em 17 linhas de pilares ao longo de y",
            "pressão média de fachada = 0.97055 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
            "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
            "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
          ],
          "avisos": [
            "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
            "uma direção por chamada — rodar x e y (e ±) para a envoltória"
          ]
        }
      },
      "y": {
        "coeficientes": {
          "v0_ms": 45.0,
          "s1": 1.0,
          "s3": 1.0,
          "categoria_rugosidade": 3,
          "classe": "C",
          "ca": 0.966,
          "s2_base_topo": [
            0.8158,
            0.8809
          ]
        },
        "memoria": [
          "Vk = V0·S1·S2·S3 com V0=45 m/s (DECLARADO), S1=1, S3=1, S2 por fatia (cat. 3, classe C)",
          "q = 0,613·Vk² [N/m²] → q(base)=0.8262 kN/m², q(topo)=0.9633 kN/m²",
          "Ca = 0.966 (interpolado da grade interna (Tabela 4, baixa turbulência)), l1/l2=0.581, h/l1=0.145",
          "Fa = Ca·q(z)·l1·dz integrado em 20 fatias de 0.500 m → Fa,total = 576.57 kN sobre a frente de 69.00×10.00 m",
          "braço da resultante = 5.146 m acima da base (M = ΣFa·z = 2967.0 kN·m para a EDIFICAÇÃO inteira)"
        ],
        "procedencia": {
          "q": {
            "valor": "q = 0,613·Vk² (N/m², Vk em m/s)",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§4.2.3",
            "verificar_texto": false,
            "nota": ""
          },
          "vk": {
            "valor": "Vk = V0·S1·S2·S3",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§5",
            "verificar_texto": false,
            "nota": ""
          },
          "v0": {
            "valor": 45.0,
            "fonte": "declaração do chamador (isopleta NBR 6123 §5.1)",
            "clausula": "§5.1",
            "verificar_texto": false,
            "nota": "isopleta NÃO deduzida aqui — entrada obrigatória"
          },
          "s1": {
            "valor": 1.0,
            "fonte": "padrão do módulo",
            "clausula": "§5.2",
            "verificar_texto": true,
            "nota": "NÃO DECLARADO — adotado S1=1,0 (terreno plano/fracamente acidentado, §5.2). Talude/morro exige S1(z,θ) do §5.2 e AUMENTA a ação."
          },
          "s2": {
            "expressao": {
              "valor": "S2 = b·Fr·(z/10)^p",
              "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
              "clausula": "§5.3",
              "verificar_texto": false,
              "nota": ""
            },
            "b_fr_p": {
              "valor": [
                0.93,
                0.95,
                0.115
              ],
              "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
              "clausula": "Tabela 1",
              "verificar_texto": true,
              "nota": "categoria 3 classe C"
            },
            "z_minimo": {
              "valor": 5.0,
              "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
              "clausula": "Tabela 2",
              "verificar_texto": true,
              "nota": "perfil tabelado a partir de z=5 m; abaixo adota-se z=5 m"
            }
          },
          "s3": {
            "valor": 1.0,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§5.4 Tabela 3",
            "verificar_texto": true,
            "nota": "edificações para hotéis e residências; comércio e indústria com alto fator de ocupação"
          },
          "categoria_rugosidade": {
            "valor": 3,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§5.3.1",
            "verificar_texto": true,
            "nota": "declarada pelo chamador"
          },
          "classe": {
            "valor": "C",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§5.3.2",
            "verificar_texto": false,
            "nota": "medida no modelo (§5.3.2) (A ≤20 m · B 20–50 m · C >50 m; maior dimensão medida = 118.8 m)"
          },
          "ca": {
            "valor": 0.966,
            "fonte": "NBR 6123 Tabela reproduzida em literatura secundária (notas de aula) — NÃO conferida contra o texto oficial ABNT",
            "clausula": "§6.3 Tabela 4",
            "verificar_texto": true,
            "nota": "grade reproduzida de fonte secundária e interpolada bilinearmente — CONFERIR no texto oficial ou declarar `ca`; Tabela 5 (alta turbulência) daria valor MENOR e não está implementada (lado seguro)"
          },
          "arrasto": {
            "valor": "Fa = Ca·q·A",
            "fonte": "ABNT NBR 6123:1988 — Forças devidas ao vento em edificações",
            "clausula": "§6.3",
            "verificar_texto": false,
            "nota": ""
          }
        },
        "resultante": {
          "forca_total_kn": 576.569,
          "braco_m": 5.146,
          "momento_base_knm": 2967.015,
          "pressao_media_kn_m2": 0.83561
        },
        "reparticao": {
          "status": "OK",
          "missing": [],
          "direcao": "y",
          "eixo_fachada": "x",
          "n_linhas": 16,
          "memoria": [
            "fachada exposta l1 = 69.00 m repartida em 16 linhas de pilares ao longo de x",
            "pressão média de fachada = 0.83561 kN/m² (resultante/área) — o perfil real cresce com z; a variação está em `perfil`",
            "largura tributária por Voronoi 1-D entre linhas; sobra de fachada além dos pilares extremos jogada nas bordas (lado seguro)",
            "cada linha divide a sua carga entre os pilares que alcançam a cobertura daquela linha (hipótese registrada, não medida)"
          ],
          "avisos": [
            "SEM diafragma de cobertura modelado: a repartição por largura tributária vale para pórticos independentes (galpão). Com laje rígida a repartição é por rigidez, não por área.",
            "uma direção por chamada — rodar x e y (e ±) para a envoltória"
          ]
        }
      }
    },
    "envoltoria": "pior das direções x e y por pilar"
  },
  "combinations_verified": [
    "1.4D+1.4L",
    "1.4D+1.4L + 1,4·W (NBR 6123)"
  ],
  "foundations": {
    "supports": [
      {
        "node": 0,
        "reaction_kn": 393.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "0skko_hsP3SwG4c_8IO6PI",
          "name": "S1",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 130.0,
          "b_cm": 130.0,
          "h_cm": 35.0,
          "s_req_cm2": 15757.0,
          "s_prov_cm2": 16900.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 2,
        "reaction_kn": 531.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1_OZTE5xX1YhqhLuNn25Cp",
          "name": "S2",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 165.0,
          "b_cm": 165.0,
          "h_cm": 45.0,
          "s_req_cm2": 21250.0,
          "s_prov_cm2": 27225.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 4,
        "reaction_kn": 532.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "09$bvK6CPAeOKlyxjsGDMI",
          "name": "S3",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 165.0,
          "b_cm": 165.0,
          "h_cm": 45.0,
          "s_req_cm2": 21302.0,
          "s_prov_cm2": 27225.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 6,
        "reaction_kn": 318.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "1ovOdSLVH9HxglQS7l1zxg",
          "name": "S4",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 130.0,
          "b_cm": 130.0,
          "h_cm": 35.0,
          "s_req_cm2": 12742.0,
          "s_prov_cm2": 16900.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 9,
        "reaction_kn": 381.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "2l2BephSbBEQ_JM3rytGXo",
          "name": "S5",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15238.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 10,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "1fB26uHqf1m9SAUxv4DlUD",
          "name": "S6",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25813.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 12,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1$xWpt3gz9euKQnYqsbxx6",
          "name": "S7",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 14,
        "reaction_kn": 381.7,
        "foundation": {
          "class": "IfcFooting",
          "id": "3YfLWY7$L1$fl2PXLvGklR",
          "name": "S8",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15269.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 17,
        "reaction_kn": 381.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "1XiKNr2Nr0GA3lcu7VC0Jx",
          "name": "S9",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15241.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 18,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "2puSS$0cXB5gKwgPQFctiU",
          "name": "S10",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25811.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 20,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "0TJkf7unr9jh3FyQE6a$jX",
          "name": "S11",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25809.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 22,
        "reaction_kn": 381.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "3yLu9p9Zz1FR7Cs8C54QzN",
          "name": "S12",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15252.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 25,
        "reaction_kn": 381.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "1sNDuXH6TD3BFlLWSXwFKg",
          "name": "S13",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15245.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 26,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "2_4ATzojL1$vxNxxM2DbVl",
          "name": "S14",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 28,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1ZSK9tVJLAWeVUdJKP8rfG",
          "name": "S15",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 30,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "2kTfDywQT7$fBIrjojmzGg",
          "name": "S16",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15249.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 33,
        "reaction_kn": 381.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "0tbwnY7Br2ig2wbrXGnSoP",
          "name": "S17",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15246.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 34,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "140_3lbxn18fDLzAGoYfWj",
          "name": "S18",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 36,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "0EByGtFOH7WuJzFqyeivQV",
          "name": "S19",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 38,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1$dYEuC3H929xzV97CwUoH",
          "name": "S20",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 41,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1zpqU7wuf70QYebA9$3s88",
          "name": "S21",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15246.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 42,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "3CwDDf0jT8ZgK8nyKv7dhn",
          "name": "S22",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 44,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1B5g6ybTn3MxsxdyX_nB$7",
          "name": "S23",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 46,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "00SMlxyDnDAQh_zUPpdqp4",
          "name": "S24",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 49,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "098InKSyL8gw0JzUaVvUbN",
          "name": "S25",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 50,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "2NW6iMHMr9b99S6S7fmIhd",
          "name": "S26",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 52,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "2sgDzKmsz3COfB32_PfCri",
          "name": "S27",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 54,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "2Y6JOtFo535xGSVFRBPR$V",
          "name": "S28",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 57,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "0OLXhwSHH2VgauwSnaGeQa",
          "name": "S29",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 58,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1sirQM80jAGBDkogGZDsqT",
          "name": "S30",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 60,
        "reaction_kn": 645.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "3aSJ80STH25xB3FxEHqubY",
          "name": "S31",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25810.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 62,
        "reaction_kn": 381.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "29LmRC7v991xuTBkWfnWkn",
          "name": "S32",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15247.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 65,
        "reaction_kn": 381.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "12wR1sAtr2GvWKN0P54hWG",
          "name": "S33",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15253.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 66,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "17S9iZQPzExB25OpdOd89M",
          "name": "S34",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25812.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 68,
        "reaction_kn": 645.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "1ph2kNDS1679LY97pL5l14",
          "name": "S35",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 180.0,
          "b_cm": 180.0,
          "h_cm": 50.0,
          "s_req_cm2": 25812.0,
          "s_prov_cm2": 32400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 70,
        "reaction_kn": 381.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "0aX$iSHfb9eQfXzhw48iAT",
          "name": "S36",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 145.0,
          "b_cm": 145.0,
          "h_cm": 40.0,
          "s_req_cm2": 15253.0,
          "s_prov_cm2": 21025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 72,
        "reaction_kn": 317.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "1B9Zcg7bz84fIfZoBve8bf",
          "name": "S37",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 130.0,
          "b_cm": 130.0,
          "h_cm": 35.0,
          "s_req_cm2": 12704.0,
          "s_prov_cm2": 16900.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 74,
        "reaction_kn": 532.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "0QUrHis3LCqQHB0rQJltZL",
          "name": "S38",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 165.0,
          "b_cm": 165.0,
          "h_cm": 45.0,
          "s_req_cm2": 21303.0,
          "s_prov_cm2": 27225.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 76,
        "reaction_kn": 532.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "3DDXbNMwrFd8GtrJQi3Z9T",
          "name": "S39",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 165.0,
          "b_cm": 165.0,
          "h_cm": 45.0,
          "s_req_cm2": 21303.0,
          "s_prov_cm2": 27225.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 78,
        "reaction_kn": 317.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "32CFqFsFPFGB_TbDCVR4hu",
          "name": "S40",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 130.0,
          "b_cm": 130.0,
          "h_cm": 35.0,
          "s_req_cm2": 12706.0,
          "s_prov_cm2": 16900.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 40×80 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 81,
        "reaction_kn": 78.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "1RMqBTmqT6tPINoMB3Zeuf",
          "name": "S41",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3135.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 82,
        "reaction_kn": 123.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "0rWaI1A3fAWvz32$Sny9bV",
          "name": "S42",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4922.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 84,
        "reaction_kn": 121.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "1IWO9jM_P6$AS8HqyULyMD",
          "name": "S43",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4839.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 86,
        "reaction_kn": 121.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "08yjrVrBX5YfH_96hpzLdX",
          "name": "S44",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4846.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 88,
        "reaction_kn": 121.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "3OfR2ckyv0LgQQpkB453bU",
          "name": "S45",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4839.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 90,
        "reaction_kn": 123.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "17_RMpkzrC5RtrtuLqYhog",
          "name": "S46",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4922.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 92,
        "reaction_kn": 78.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "2UrkmoR4H29Qpg89HpEucu",
          "name": "S47",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3135.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 95,
        "reaction_kn": 78.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "0xUI3U2Jz6Lw4M3BVJpnY1",
          "name": "S48",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3135.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 96,
        "reaction_kn": 123.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "12nxdA7MbD4vbOUdQplii2",
          "name": "S49",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4922.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 98,
        "reaction_kn": 121.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "0CNWpt_sr1txBGRrNT586M",
          "name": "S50",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4839.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 100,
        "reaction_kn": 121.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1hITsdTO10I9l8mFIA$YSJ",
          "name": "S51",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4846.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 102,
        "reaction_kn": 121.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "1sIP4FQsvCuu95EpbfFpa3",
          "name": "S52",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4839.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 104,
        "reaction_kn": 123.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "0RYUXpTir39woTFNrZd$fP",
          "name": "S53",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 4922.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 106,
        "reaction_kn": 78.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "0Upfcc4Bf8vupbTtfOlSGN",
          "name": "S54",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3135.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 30×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 108,
        "reaction_kn": 80.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "0zJkDDoC118BidjeyNc3t_",
          "name": "S55",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3202.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 110,
        "reaction_kn": 158.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "2560ma0oTAdRqCvHkSlfkj",
          "name": "S56",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6322.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 112,
        "reaction_kn": 151.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "2XJqi7Qf13KwQWXWcP2oYu",
          "name": "S57",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6038.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 114,
        "reaction_kn": 151.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "3I5mQ3a4P6fBdchoDg7icm",
          "name": "S58",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6078.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 116,
        "reaction_kn": 151.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "2qgCf1Q5fBoQ9XuTN7kz72",
          "name": "S59",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6054.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 118,
        "reaction_kn": 151.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "1Qe0jmPrL0MuLsNpJwaV80",
          "name": "S60",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6062.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 120,
        "reaction_kn": 151.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "0xUXBrbx18PQ3SQ6UZiBfV",
          "name": "S61",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6064.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 122,
        "reaction_kn": 152.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1z764si$19MxBWQ_vSIz_5",
          "name": "S62",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6088.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 124,
        "reaction_kn": 150.7,
        "foundation": {
          "class": "IfcFooting",
          "id": "2lSKeQdZH4mRWjk08xCL7u",
          "name": "S63",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6028.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 126,
        "reaction_kn": 157.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "0Ki$lKbq53sxyQA7aAKOfs",
          "name": "S64",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6316.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 128,
        "reaction_kn": 78.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "0_nvZzIVjFTeZi45yJAZwh",
          "name": "S65",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3120.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 130,
        "reaction_kn": 140.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "1aDK2uKjL56R5lcgY2z_oj",
          "name": "S66",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 100.0,
          "b_cm": 100.0,
          "h_cm": 30.0,
          "s_req_cm2": 5612.0,
          "s_prov_cm2": 10000.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 132,
        "reaction_kn": 278.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "0MF5xBG$56SxqVYofqxT4H",
          "name": "S67",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 11135.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 134,
        "reaction_kn": 270.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "2x2CgfI9L4IgAtyXcqHh2C",
          "name": "S68",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10802.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 136,
        "reaction_kn": 268.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "1yiA0uRdn3$8VpaXKduOwt",
          "name": "S69",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10753.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 138,
        "reaction_kn": 270.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "1hWvKM3L99NAiO3uv7b4dt",
          "name": "S70",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10830.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 140,
        "reaction_kn": 270.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "3cHknVFtP5Pge5evFLJtj_",
          "name": "S71",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10814.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 142,
        "reaction_kn": 269.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "25abCPe5PDzPWgROctHRFt",
          "name": "S72",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10762.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 144,
        "reaction_kn": 271.7,
        "foundation": {
          "class": "IfcFooting",
          "id": "1vQi8h_pXCsvgspjU0IDSq",
          "name": "S73",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10867.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 146,
        "reaction_kn": 267.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "2_sNoF03H8Q8UHIPpqJe_u",
          "name": "S74",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10686.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 148,
        "reaction_kn": 280.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "26VBQ3csr6d8HhTm7hidey",
          "name": "S75",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 11210.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 150,
        "reaction_kn": 139.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "38WYx0uyn8FukQ3XVKmTBA",
          "name": "S76",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 100.0,
          "b_cm": 100.0,
          "h_cm": 30.0,
          "s_req_cm2": 5579.0,
          "s_prov_cm2": 10000.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 152,
        "reaction_kn": 114.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "1GE4fZkIH5IP_c_gedCrI$",
          "name": "S77",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 95.0,
          "b_cm": 95.0,
          "h_cm": 30.0,
          "s_req_cm2": 4572.0,
          "s_prov_cm2": 9025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 154,
        "reaction_kn": 227.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "1tza2vMsr8LQW83UsgiWBT",
          "name": "S78",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 9104.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 156,
        "reaction_kn": 218.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "07n5KGnL1CHOdZtv2Oy5_Z",
          "name": "S79",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8755.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 158,
        "reaction_kn": 219.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "1kk6Jh_g51FvSG9sWyNe3O",
          "name": "S80",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8764.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 160,
        "reaction_kn": 220.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "02X8AGbab7hgKTgnGo6mGu",
          "name": "S81",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8832.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 162,
        "reaction_kn": 220.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "0Z9IaWfTvD6xBwBzaOAbkY",
          "name": "S82",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8807.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 164,
        "reaction_kn": 218.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "2PfxqBLh98Pv109kHhP2_U",
          "name": "S83",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8753.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 166,
        "reaction_kn": 220.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "1b8YymEInBpRBOPH_Yt$HP",
          "name": "S84",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8820.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 168,
        "reaction_kn": 217.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "1r7ozUzYHEtgbfafwI_4tW",
          "name": "S85",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8700.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 170,
        "reaction_kn": 229.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "2NOx1yZ2HCIxmGiKPlxlhR",
          "name": "S86",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 9193.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 172,
        "reaction_kn": 112.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "0nabaVGcT6jfmkZaQQC0cG",
          "name": "S87",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 95.0,
          "b_cm": 95.0,
          "h_cm": 30.0,
          "s_req_cm2": 4498.0,
          "s_prov_cm2": 9025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 174,
        "reaction_kn": 113.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "3ZYkEX$qLAZvLw1xlbiFjM",
          "name": "S88",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 95.0,
          "b_cm": 95.0,
          "h_cm": 30.0,
          "s_req_cm2": 4541.0,
          "s_prov_cm2": 9025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 176,
        "reaction_kn": 229.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "2ORPm1N$fAM8UptyANX_bc",
          "name": "S89",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 9183.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 178,
        "reaction_kn": 217.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "0Z2h8dncX18vaPfrEUZ$1F",
          "name": "S90",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8705.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 180,
        "reaction_kn": 220.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "1SaZzQRM97UflMD9EMVSbG",
          "name": "S91",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8821.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 182,
        "reaction_kn": 218.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "3734X56hn7rg0YpmhBNC$y",
          "name": "S92",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8755.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 184,
        "reaction_kn": 220.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "1G1DNrZqj7mxnOGhJIniZO",
          "name": "S93",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8809.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 186,
        "reaction_kn": 220.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "02o3QIPEL3gf1iwZtUBOP$",
          "name": "S94",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8834.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 188,
        "reaction_kn": 219.2,
        "foundation": {
          "class": "IfcFooting",
          "id": "3BLbRDU3n2$PUC_UhKLSaR",
          "name": "S95",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8766.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 190,
        "reaction_kn": 218.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "01$kqvh3PASfjURPXJrboz",
          "name": "S96",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 8755.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 192,
        "reaction_kn": 227.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "2R9hodwyPArO10dJEnuISO",
          "name": "S97",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 125.0,
          "b_cm": 125.0,
          "h_cm": 40.0,
          "s_req_cm2": 9118.0,
          "s_prov_cm2": 15625.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 194,
        "reaction_kn": 113.7,
        "foundation": {
          "class": "IfcFooting",
          "id": "3LaowBXB17CBle46wE5sfT",
          "name": "S98",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 95.0,
          "b_cm": 95.0,
          "h_cm": 30.0,
          "s_req_cm2": 4547.0,
          "s_prov_cm2": 9025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 196,
        "reaction_kn": 140.1,
        "foundation": {
          "class": "IfcFooting",
          "id": "2Ufziz$ET9uPg$AwJlPahX",
          "name": "S99",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 100.0,
          "b_cm": 100.0,
          "h_cm": 30.0,
          "s_req_cm2": 5604.0,
          "s_prov_cm2": 10000.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 198,
        "reaction_kn": 278.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "2Y$oku0dDBNPwfqE1zPHWS",
          "name": "S100",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 11152.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 200,
        "reaction_kn": 267.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "01FIVvY2z8dAZAwndKQNP5",
          "name": "S101",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10697.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 202,
        "reaction_kn": 271.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "1HSssEY$122h3IJylQQlDQ",
          "name": "S102",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10864.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 204,
        "reaction_kn": 269.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "23RZKCmjn41hvKNISERXFC",
          "name": "S103",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10762.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 206,
        "reaction_kn": 270.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "0aN1X64ov5JvmUsUd3N4Nn",
          "name": "S104",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10814.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 208,
        "reaction_kn": 270.7,
        "foundation": {
          "class": "IfcFooting",
          "id": "1zj4bnIk9ApxQyuDJicxDV",
          "name": "S105",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10830.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 210,
        "reaction_kn": 268.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "3y4J5BSXL6PPJM28reUKJI",
          "name": "S106",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10752.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 212,
        "reaction_kn": 270.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "1widwr6RHEwftgjS5Xmn0u",
          "name": "S107",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 10800.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 214,
        "reaction_kn": 278.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "2cBCZ6vInFy8Ui9qv729Go",
          "name": "S108",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 140.0,
          "b_cm": 140.0,
          "h_cm": 40.0,
          "s_req_cm2": 11144.0,
          "s_prov_cm2": 19600.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 216,
        "reaction_kn": 139.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "02vu1eWdXDwudK2tugDLaa",
          "name": "S109",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 100.0,
          "b_cm": 100.0,
          "h_cm": 30.0,
          "s_req_cm2": 5575.0,
          "s_prov_cm2": 10000.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 218,
        "reaction_kn": 150.3,
        "foundation": {
          "class": "IfcFooting",
          "id": "2Ep20VKc11yxt5wHdNtFt$",
          "name": "S110",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6011.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 220,
        "reaction_kn": 151.8,
        "foundation": {
          "class": "IfcFooting",
          "id": "2E3_26qRP7Sg4mvaXrkMPk",
          "name": "S111",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6072.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 222,
        "reaction_kn": 152.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "1VEd1w4_n6x8a2_dcxSh_k",
          "name": "S112",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6082.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 224,
        "reaction_kn": 151.6,
        "foundation": {
          "class": "IfcFooting",
          "id": "1rTJu_QEz0x8OWDj_EK6N_",
          "name": "S113",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6065.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 226,
        "reaction_kn": 151.5,
        "foundation": {
          "class": "IfcFooting",
          "id": "3nkeyJh4f6OfwmoBu_48Og",
          "name": "S114",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6062.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 228,
        "reaction_kn": 151.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "3l0dIz39L2UPmriddCeZur",
          "name": "S115",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6055.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 230,
        "reaction_kn": 152.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "3O24gcu$XF9PlUDf1SjoJQ",
          "name": "S116",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6078.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 232,
        "reaction_kn": 150.9,
        "foundation": {
          "class": "IfcFooting",
          "id": "2nR5pR1g90JwaG_eh0rWdh",
          "name": "S117",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6038.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 234,
        "reaction_kn": 158.4,
        "foundation": {
          "class": "IfcFooting",
          "id": "1u$$vJkpD2g9$5apaLGDX0",
          "name": "S118",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 105.0,
          "b_cm": 105.0,
          "h_cm": 30.0,
          "s_req_cm2": 6337.0,
          "s_prov_cm2": 11025.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      },
      {
        "node": 236,
        "reaction_kn": 79.0,
        "foundation": {
          "class": "IfcFooting",
          "id": "0E0VfTzfbBKwspTUeQ5yUg",
          "name": "S119",
          "dist_m": 0.0
        },
        "status": "PASS",
        "values": {
          "a_cm": 80.0,
          "b_cm": 80.0,
          "h_cm": 30.0,
          "s_req_cm2": 3160.0,
          "s_prov_cm2": 6400.0,
          "rigida": true,
          "sigma_adm_mpa": 0.25
        },
        "assumptions": [
          "ap×bp = 20×40 cm (seção REAL do pilar sobre o apoio)",
          "d = h − 5 cm (hipótese registrada)",
          "carga centrada (excentricidade v2)"
        ],
        "nbr_ref": "NBR 6118 sapata rígida (bielas); dimensões REAIS do IFC"
      }
    ],
    "unmapped": [],
    "n_foundation_elements": 119,
    "summary": {
      "PASS": 119
    },
    "note": "reações do pórtico verificadas contra as fundações REAIS do IFC; solo sempre declarado, nunca inventado"
  },
  "extraction": {
    "stats": {
      "elements_seen": 319,
      "members": 319,
      "excluded": 0,
      "role_mismatches": 0,
      "sections_rescaled": 0,
      "volume_anomalies": 0
    },
    "excluded": []
  },
  "assembly": {
    "stats": {
      "members_in": 319,
      "members_ok": 319,
      "excluded": 0,
      "floating_members": 0,
      "nodes": 478,
      "elements": 559,
      "supports": 119,
      "column_splits": 240,
      "total_dof": 2868,
      "warnings": []
    },
    "excluded": []
  },
  "slab_takedown": {
    "slabs": [
      {
        "id": "1LHOEVtmX1vOj9gH842FR1",
        "name": "Cobertura Anexo - Laje",
        "area_m2": 1269.6,
        "volume_m3": 152.352,
        "espessura_m": 0.12,
        "z_bottom_m": 3.88,
        "w_dead_kn_m2": 4.0,
        "w_live_kn_m2": 1.5,
        "beams": [
          {
            "beam": "347r$1Ud9AWAPgQOv9I4Hk",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "1R_XzVOU90EO7_ksBS0vbC",
            "area_m2": 9.76,
            "w_dead_kn_m": 5.66,
            "w_live_kn_m": 2.123
          },
          {
            "beam": "0deXPxspz1muHFi7QCbv_$",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "3_FIIMpsv5D8IfnrNhTjgT",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "0DhISUrmv4UOugmg9Ey$Gl",
            "area_m2": 9.61,
            "w_dead_kn_m": 5.57,
            "w_live_kn_m": 2.089
          },
          {
            "beam": "0PAOmHnAH3cwDd0WDhXOMj",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "3UVTUtquL2kfecvojmKlNz",
            "area_m2": 9.76,
            "w_dead_kn_m": 5.66,
            "w_live_kn_m": 2.123
          },
          {
            "beam": "0WNdeDUEvByQfUwS1kev2j",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "1Wrbgkeln1bAaz2n8kt5uD",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "0cqYNcD8v9rR9jctWewiG7",
            "area_m2": 9.61,
            "w_dead_kn_m": 5.57,
            "w_live_kn_m": 2.089
          },
          {
            "beam": "0bxD$7zVrEsQcspMF2fbP5",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "2GsuA5CPz3Nx2PDwRE3eR1",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "2o5Z56RM91shWMclWDd5GP",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "3Yaqx_6hb9NxxvRwBLcfps",
            "area_m2": 19.68,
            "w_dead_kn_m": 11.41,
            "w_live_kn_m": 4.279
          },
          {
            "beam": "2DV9KOsvPBufxBtPV5URjE",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "0gJs_NvwD4Fxqm0siloaP7",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "2kMlS6jOv9Pf1s_NEklVJd",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "0C7KWZa$v8097oV8KKDgR4",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "1fez5cvkD0tA$7GHFwmtzS",
            "area_m2": 19.68,
            "w_dead_kn_m": 11.41,
            "w_live_kn_m": 4.279
          },
          {
            "beam": "02knbZl25AEwGfhy81xkLU",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "1Q9sROUBnE$fW2xwjY3_cW",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "0YMVfQD$D70QqovbBMlopZ",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "0tjErd60z0Pg4TfstWS78_",
            "area_m2": 16.58,
            "w_dead_kn_m": 9.613,
            "w_live_kn_m": 3.605
          },
          {
            "beam": "3$cRly3cT3LhCxCkAY49tH",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "2NNVu_CfD1mRIpr5s6sIpH",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "0YZkMuYxHBQQB2hVKEY0i7",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "2NmzLd_hf7EQJsrlID_9j1",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "3MfbERnzz0W8NMW$OpmryB",
            "area_m2": 16.58,
            "w_dead_kn_m": 9.613,
            "w_live_kn_m": 3.605
          },
          {
            "beam": "37uNgUDYrBtxv9mcYgM9uN",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "3696AToOH3XOtJ6en3rFq9",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "1v4bLzPQP50PCVcDUQVPBr",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "3lebTciDrEGO9aIzwI9yG3",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "3ZX2djP_bFVxAIOXJrhEIf",
            "area_m2": 16.58,
            "w_dead_kn_m": 9.613,
            "w_live_kn_m": 3.605
          },
          {
            "beam": "060eAbT650kxleTmPAyMq8",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "3w$6AhHX91pfbgHBhn3E6$",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "3AB$TBo9b51vKYI6VjXdB8",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "293iHwiqn1$u7ldxQMCIye",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "3wMRTRP5jFNhsivg5xv7BE",
            "area_m2": 16.58,
            "w_dead_kn_m": 9.613,
            "w_live_kn_m": 3.605
          },
          {
            "beam": "20URIfRjn0zPtWh0LCoS4y",
            "area_m2": 16.43,
            "w_dead_kn_m": 9.523,
            "w_live_kn_m": 3.571
          },
          {
            "beam": "08uMXaDiPCy9vQ24lzlR8d",
            "area_m2": 16.74,
            "w_dead_kn_m": 9.703,
            "w_live_kn_m": 3.639
          },
          {
            "beam": "0uXirEi419oxdFVGWDqnCh",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "33qnDu8lv0VxybWEy0XMkd",
            "area_m2": 19.68,
            "w_dead_kn_m": 11.41,
            "w_live_kn_m": 4.279
          },
          {
            "beam": "1uz8b01eb49xGwc6SCSBTK",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "3plWRYDJXCTATrfes7jzMb",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "0CWuavfVfC485eUos3ymdB",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "1oDJhq$e17CwzifRdRaYyH",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "37wqsdo_H1qwtimVU80_Lg",
            "area_m2": 19.68,
            "w_dead_kn_m": 11.41,
            "w_live_kn_m": 4.279
          },
          {
            "beam": "2yvGSn9aX1hehiFRQkCaTB",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "2EGjD3Wrb6Rf7X1G6vNr30",
            "area_m2": 19.53,
            "w_dead_kn_m": 11.32,
            "w_live_kn_m": 4.245
          },
          {
            "beam": "1oTeAB2SPF_Q4M5ixeuh3B",
            "area_m2": 19.84,
            "w_dead_kn_m": 11.5,
            "w_live_kn_m": 4.313
          },
          {
            "beam": "1q1hFJeu55iuH8KlSDZ77k",
            "area_m2": 9.61,
            "w_dead_kn_m": 5.57,
            "w_live_kn_m": 2.089
          },
          {
            "beam": "0vD03gy5L4rxSdEcYBkC5b",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "2Qrjvj8fz1fOFqXtbVZUnL",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "2ekaMGnI9Dqu3twlbHENc_",
            "area_m2": 9.76,
            "w_dead_kn_m": 5.66,
            "w_live_kn_m": 2.123
          },
          {
            "beam": "3yph_gwADC0gketSXYyRWm",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "3UKEHJzcX439b$lkJUbA5i",
            "area_m2": 9.61,
            "w_dead_kn_m": 5.57,
            "w_live_kn_m": 2.089
          },
          {
            "beam": "3xMwRBaoP7i8wiEx94ADr2",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "2hXnHQ9IfBqQgUmGsjcCAT",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "3rVHht4vDAIhUQuIsT1zmB",
            "area_m2": 9.76,
            "w_dead_kn_m": 5.66,
            "w_live_kn_m": 2.123
          },
          {
            "beam": "0_BhJThtH9_w05anFZGyZ1",
            "area_m2": 9.92,
            "w_dead_kn_m": 5.75,
            "w_live_kn_m": 2.156
          },
          {
            "beam": "0E2CET3_P6dfpd7mWAw6qJ",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          },
          {
            "beam": "0mP$AxJ4DCJO7hxflK8Ral",
            "area_m2": 3.87,
            "w_dead_kn_m": 3.875,
            "w_live_kn_m": 1.453
          },
          {
            "beam": "13EGiOFSDAJwY$prlIHIkU",
            "area_m2": 1.55,
            "w_dead_kn_m": 2.583,
            "w_live_kn_m": 0.969
          },
          {
            "beam": "3Ge5STH9H8SfBQdFLDJZvR",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          },
          {
            "beam": "01y71SKQLEreATDBgWgfvd",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          },
          {
            "beam": "2G9gyfWTTEd9X1Qple2cY_",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "18oE6HPMXAc8gsKFf6MIaz",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "3Zz1LPxwr1KAQ1$vfhQCol",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "13GIHd4JrDZBYiPSkdzMaA",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "0um$hvwBj6VB8tnNkSaot7",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "2n1oZM4iP5XO3SaoN5l$Fc",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "0ZwJH_VzjE1839OUoiEk0C",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "0Ez8wIGtz9bOd84yv3MErv",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "2I$vL4B1j4kB7n_Jzu5yTR",
            "area_m2": 7.59,
            "w_dead_kn_m": 7.594,
            "w_live_kn_m": 2.848
          },
          {
            "beam": "2D9EcPSpDCS9WGm2z6XfZL",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "2KrJwEhRD41QRbIMmEH_Hc",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "1p9z9bTef5Jv8ClvH2Xvdp",
            "area_m2": 7.59,
            "w_dead_kn_m": 7.594,
            "w_live_kn_m": 2.848
          },
          {
            "beam": "0jOxUUweX0je5l_lVTZPHq",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "0QXDWVKPv9jxiGxs3JCaiM",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "08aekx4LX4BQkQP9GNT5p1",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "2gkwpJAhH0UfdfD1r6Hfkl",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "1JqLedqRP4cesQ3hFl91O5",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "0r35hjaizCSeVw5paRvOm6",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "0uKpRWXtb4YQdfw97jSBn_",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "1sGGqhSwT4fva_Af1IjRuA",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "3Gu61kZA1FHeRZ8i0ndBj9",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "2hKM7UtNfAcQgbKsBYPzpb",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "3QysCYuG5BbfgNhro75r3v",
            "area_m2": 3.1,
            "w_dead_kn_m": 5.166,
            "w_live_kn_m": 1.937
          },
          {
            "beam": "2_jNPhjnj4B951wQgt5N_v",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "0uSMrW10TCJg8GZBPboTjr",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "1apgpNLQLDquZlmw4IDbwB",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "1$sRmmZIn25PCYIlHIIWqQ",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "1W04smv4P7WAjkJ5FFpEMy",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "1av7bdKsj9ywssxqgQc1H4",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "3Ue54u_959DQAjNLQDjhmY",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "2XUvsjsnL1KQ7zFaFJebIz",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "1i02ALgULDhfPXjkhNo3YW",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "3RZ9dGEuPDpeuR5jUSvFQM",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "0_uojcnEL5wRHR7_JdjuMi",
            "area_m2": 7.59,
            "w_dead_kn_m": 7.594,
            "w_live_kn_m": 2.848
          },
          {
            "beam": "0G6P2gPALCOg4FCiddZxuZ",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "0Oq6HM_Fb8mBLMPGVDaHC6",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "3iK4VDJ5b0hwQRVk2$MnL3",
            "area_m2": 7.59,
            "w_dead_kn_m": 7.594,
            "w_live_kn_m": 2.848
          },
          {
            "beam": "1Xmedjv6967eTJCUoUJymN",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "3_8lDwumzAIQof_hxmvEwQ",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "3TvzcJKen5vRlCarlGDUud",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "2QDZ9eTqT6Guv9MDxC8aOX",
            "area_m2": 8.06,
            "w_dead_kn_m": 8.059,
            "w_live_kn_m": 3.022
          },
          {
            "beam": "1$YwSPyhX2DQtAY_pDNsQb",
            "area_m2": 8.21,
            "w_dead_kn_m": 8.214,
            "w_live_kn_m": 3.08
          },
          {
            "beam": "3gawFc5Ef4pg2TrQZpmfcQ",
            "area_m2": 2.94,
            "w_dead_kn_m": 4.908,
            "w_live_kn_m": 1.84
          },
          {
            "beam": "2KiFo_2Mr1CQ6KbKC1reF8",
            "area_m2": 7.75,
            "w_dead_kn_m": 7.749,
            "w_live_kn_m": 2.906
          },
          {
            "beam": "1oOIlccpT2ogOVLZmsj4tN",
            "area_m2": 7.9,
            "w_dead_kn_m": 7.904,
            "w_live_kn_m": 2.964
          },
          {
            "beam": "1TZn1ltxD119yFGeO1nUTa",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          },
          {
            "beam": "3icasufBX3cB6VQMGsLjEy",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          },
          {
            "beam": "2540IEHSnDPPri93fAuDY6",
            "area_m2": 1.55,
            "w_dead_kn_m": 2.583,
            "w_live_kn_m": 0.969
          },
          {
            "beam": "10FTPM_aT9Xxsk7qQ8bjAh",
            "area_m2": 3.87,
            "w_dead_kn_m": 3.875,
            "w_live_kn_m": 1.453
          },
          {
            "beam": "3ciM0re_H4cgnr5SYmb125",
            "area_m2": 4.03,
            "w_dead_kn_m": 4.029,
            "w_live_kn_m": 1.511
          }
        ]
      }
    ],
    "unassigned": [
      {
        "id": "3pSE6gNyf03v8_OJkG_V0t",
        "name": "Recepção - Laje",
        "area_m2": 48.0,
        "peso_kn": 192.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "360A$9$cL7xuvUMoH6Pvjj",
        "name": "Escritório Administrativo - Laje",
        "area_m2": 112.0,
        "peso_kn": 448.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "073sAtLZL8cBxvCOldElDb",
        "name": "Sala de Reunião - Laje",
        "area_m2": 48.0,
        "peso_kn": 192.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "3DcM6f1q59BOP5avETOGic",
        "name": "Diretoria - Laje",
        "area_m2": 40.0,
        "peso_kn": 160.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "0SIAhfWBjFjelRGiLYSxHB",
        "name": "Ambulatório - Laje",
        "area_m2": 40.0,
        "peso_kn": 160.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "1EqZJ_cvf3iOj9ptFFndo4",
        "name": "CPD / Sala Técnica - Laje",
        "area_m2": 32.0,
        "peso_kn": 128.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "39vgmJroD9g8AV4mg3ZE7s",
        "name": "DML - Laje",
        "area_m2": 16.0,
        "peso_kn": 64.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "04vNZ1McH0bRNZkQdQ9Prt",
        "name": "Sanitário PNE - Laje",
        "area_m2": 24.0,
        "peso_kn": 96.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "3RJmHdj2fDVvOS8ANvauf1",
        "name": "Copa - Laje",
        "area_m2": 32.0,
        "peso_kn": 128.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2Y$p7jcFTFeRpn8yjPBxAH",
        "name": "Refeitório - Laje",
        "area_m2": 160.0,
        "peso_kn": 640.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "0niszwhBn8KgRf4AfYwRuQ",
        "name": "Vestiário Masculino - Laje",
        "area_m2": 120.0,
        "peso_kn": 480.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2zFpDrEEH4MOHRDCl5vI4w",
        "name": "Vestiário Feminino - Laje",
        "area_m2": 120.0,
        "peso_kn": 480.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "37Z8h59_P1t9E9mbOMmNTb",
        "name": "Sala CIPA / Segurança - Laje",
        "area_m2": 48.0,
        "peso_kn": 192.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2I3bElGhrBqx9XXzLkodil",
        "name": "Almoxarifado - Laje",
        "area_m2": 80.0,
        "peso_kn": 320.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2bkaM0ElzCC8DrpHjzVeqQ",
        "name": "Casa de Bombas de Incêndio - Laje",
        "area_m2": 40.0,
        "peso_kn": 160.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "0xGNKfTEv7GBLiFj6deWbd",
        "name": "Subestação Abrigada - Laje",
        "area_m2": 48.0,
        "peso_kn": 192.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "0TGtjBVc58gvOYXMebND5M",
        "name": "Sala de Compressores - Laje",
        "area_m2": 40.0,
        "peso_kn": 160.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "3LLRm2kTjBQhBA3hJ$Dtxr",
        "name": "Guarita - Laje",
        "area_m2": 56.0,
        "peso_kn": 224.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "1p$HBijBD4kAu7yhu2ON$0",
        "name": "Galpão - Área de Armazenagem - Laje",
        "area_m2": 5940.0,
        "peso_kn": 23760.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "1xuagsAcTFdOL$Yux3Vf_m",
        "name": "Doca de Carga/Descarga - Laje",
        "area_m2": 528.0,
        "peso_kn": 2112.0,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2g9WHLHTDEExDAdrxgk0de",
        "name": "Circulação 1 - Laje",
        "area_m2": 165.6,
        "peso_kn": 662.4,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "2sfgfNplH0oxRtPohU91Cq",
        "name": "Circulação 2 - Laje",
        "area_m2": 158.4,
        "peso_kn": 633.6,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      },
      {
        "id": "0BAYUW40nE6xn2S9BJ_WEx",
        "name": "Faixa de Manobra Estacionamento",
        "area_m2": 119.6,
        "peso_kn": 269.1,
        "reason": "nenhuma viga de apoio no nível da laje — carga NÃO distribuída (laje lisa/apoio em parede? punção é outra verificação)"
      }
    ],
    "skipped": [],
    "live_load_missing": false,
    "method": "peso próprio da laje do VOLUME EXATO tesselado × 25 kN/m³ (NBR 6120); partição por viga de apoio mais próxima em planta (≡ charneiras 45°/quinhões p/ painéis apoiados nas bordas); carga de linha uniforme por viga (total exato, distribuição aproximada)",
    "params": {
      "live_kn_m2": 1.5,
      "dead_extra_kn_m2": 1.0,
      "z_tol_m": 0.45,
      "density_kn_m3": 25.0
    }
  },
  "cobertura_leve": {
    "metodo": "cobertura leve (telha metálica sobre terças) — sem laje: a carga NÃO vem do takedown de lajes, é aplicada por largura de influência de cada viga de cobertura",
    "cargas_kn_m2": {
      "peso_proprio_cobertura": 0.18,
      "instalacoes_suspensas": 0.15,
      "sobrecarga": 0.25
    },
    "fontes": {
      "peso_proprio_cobertura": "telha de aço 0,5 mm + terças + contraventamento — pré-dimensionamento declarado (peso de catálogo), não é valor normativo",
      "instalacoes_suspensas": "iluminação + rede de sprinkler + eletrocalha — estimativa de projeto DECLARADA",
      "sobrecarga": "cobertura sem acesso de pessoas (apenas manutenção) — NBR 6120:2019; valor DECLARADO como entrada, conforme a regra do pipeline (sobrecarga nunca é inventada)"
    },
    "vigas_carregadas": 42,
    "vigas_sem_membro_extraido": []
  },
  "nao_verificado": [
    {
      "item": "Vento (NBR 6123) e estabilidade global",
      "motivo": "O pórtico de galpão pré-moldado é usualmente governado por vento e por 2ª ordem do pilar engastado na fundação. A verificação FEM deste pacote é de CARGAS GRAVITACIONAIS (peso próprio + sobrecarga). Pilar de 10 m em balanço exige verificação de 2ª ordem (NBR 6118 §15) e de vento — NÃO executada aqui."
    },
    {
      "item": "Perfis metálicos (terças e contraventamento)",
      "motivo": "As terças são pré-dimensionadas por prática de catálogo. A verificação por elemento deste pipeline é de concreto armado (NBR 6118); perfis de aço formado a frio (NBR 14762) NÃO são verificados."
    },
    {
      "item": "Protensão das vigas de cobertura",
      "motivo": "As vigas de 22 m são modeladas e verificadas como CONCRETO ARMADO. Em obra, vigas de galpão nesse vão são protendidas — o que muda armadura e contraflecha. A verificação de protensão (NBR 6118 §13.4 / Tabela 13.4) existe no motor de pontes e NÃO foi aplicada aqui."
    },
    {
      "item": "Piso industrial",
      "motivo": "O piso é apoiado no terreno; não é laje estrutural e não foi verificado à punção/fadiga de empilhadeira (NBR 6118 não cobre piso industrial; a referência usual é ACI 360 / prática de pisos)."
    }
  ],
  "portao_do_modelo": {
    "ok": true,
    "invariantes_rodadas": [
      "EST-01",
      "EST-02",
      "EST-03",
      "EST-04",
      "EST-05",
      "ARQ-01",
      "ARQ-02",
      "ARQ-03",
      "ARQ-04",
      "ARQ-05",
      "MEP-01",
      "MEP-02",
      "MEP-03",
      "MEP-04"
    ],
    "violacoes": [],
    "bloqueios": 0,
    "alertas": 0,
    "metodo": "invariantes geométricas e topológicas medidas do IFC entregue; determinísticas e reprodutíveis, sem interpretação de norma",
    "escopo": "este portão responde 'a peça está onde deveria?'. 'a peça resiste?' é o verificador de engenharia; 'a peça atende à norma X?' é o verificador normativo"
  }
}