---
title: "Study Bus Memorial"
method: POST
path: "/api/v1/study/bus/memorial"
tags: ["estudo"]
---

# Study Bus Memorial

`POST /api/v1/study/bus/memorial`

## Request

- Base URL: `https://app.estudoseletricos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.estudoseletricos.com/api/v1/study/bus/memorial`
- Auth: none declared

O MEMORIAL DA BARRA composto no SERVIDOR a partir do MODELO (W8).

Até aqui o memorial da UI nova recebia um formulário — os números do arco e,
no máximo, o PNG da folha —, e o que o Streamlit compunha em volta dele (o
curto, a folha com os ajustes, a seletividade, o ERMS, o diagrama e a
tabela-mestra) ficava de fora. Aqui o documento nasce do ESTUDO da barra: o
arco pelo PAR de tempos do cenário governante (o mesmo `arco.entrada`), o
curto da barra NA REDE (`curto_da_barra`, com o que só existe no ponto único
em branco), a folha e o resto da mesma cadeia, e o diagrama do laudo
(G126-01). Barra fora do IEEE 1584 não tem memorial de arco — e diz por quê.

## Request body

- MemorialDaBarraRequest: O MEMORIAL DA BARRA composto no SERVIDOR a partir do MODELO (W8): o corpo do `study/bus` — a folha, os ajustes e a seletividade que a tela mostra são os que o documento imprime — mais o que só o documento carrega: a emissão (C32), o que ele leva e se é o laudo consolidado §11.
  - `rede` NetworkRequest, required: Os registros dos data_editors (o mesmo contrato da tool `montar_rede`).
    - `unifilar_interativo` boolean: marca cada símbolo com `data-elem` para o clique (G126). É OPT-IN: o SVG default continua byte a byte o do laudo
    - `protecoes` Protecao[]: as proteções posicionadas, só para o DESENHO — elas não entram no cálculo de curto-circuito. Sem elas o diagrama sai sem os símbolos de proteção, e quem acabou de pôr um disjuntor pelo desenho não o veria aparecer. Lista vazia = o SVG de sempre.
      - `kind` 'bus' | 'edge', required
      - `ref` union, required: id da barra ('bus') ou [from_id, to_id] ('edge')
        - string
        - string[]
      - `label` string
      - `model_id` string, nullable: id no devices_db; None = ajuste manual
      - `color` string
      - `ajustes` object, nullable: ajustes DESTA proteção (curve, in, ir, tms, isden, isd, tsd, iien, ii, tinst, tab) e a tolerância DIGITADA de quem o banco não declara banda: toli (± % nos pickups), tolt (± % no tempo das curvas L e S) e tolii (± % só na instantânea — vence o toli no Ii). A identidade (placement_key) é resolvida no servidor, onde ela é definida — o cliente não a calcula. Fusível e MCB são de BANDA: aqui não há ajuste a fazer e o que vier é ignorado pelo núcleo. A curva TÉRMICA tabelada (G325), para o modelo cujo banco não a declara: `pts` (pontos [múltiplo, t_s] da borda lenta), `pts_rapida` (a rápida, opcional), `pts_base` ('Ir' ou 'In', obrigatória) e `pts_fonte` (de onde vieram)
    - `datablock` 'curto' | 'arco' | 'adequacao' | 'protecao': O QUE cabe no bloco de dados de cada barra, decidido no SERVIDOR — não é filtro de tela. `curto` traz as quatro correntes; `arco` traz só a Ik3φ, porque a energia e o tempo entram pelo estudo e quatro correntes ao lado deles tornam o bloco ilegível; `adequacao` traz Ik3φ e ip, que são as duas que o duty compara; `protecao` traz a máxima e a MÍNIMA, que são os limites entre os quais o pickup vive
    - `unifilar_subrede` string, nullable: id de barra: desenha só a ÁREA dela (a barra e o que está a jusante). As áreas da rede vêm em `areas`; None = a folha da rede inteira
    - `barras` object[], required: as barras (id, label, Vn_kV) — até 500 por rede (G342)
    - `elementos` object[], required: transformadores, cabos, barramentos e reatores — até 1000 por rede (G342)
    - `fonte` object, nullable: a concessionária no ponto de conexão. Ausente (ou nula) só na rede alimentada por gerador — sem nenhum dos dois é recusa de forma
    - `motores` object[], nullable
    - `geradores` object[], nullable: geradores síncronos por barra (G334, IEC 60909-0 §6.6.1): bus_id, label, Sn_kVA, xd2_pu, cos_phi e os opcionais U_rG_kV, x0_pu, aterramento, Rn_ohm
    - `cenarios` object[], nullable: os cenários de OPERAÇÃO (G336): nome, `fontes` em serviço ('concessionaria' e as barras com gerador; ausente = todas) e `abertas` (os elementos abertos, [DE, PARA] ou 'DE→PARA'). Com eles o estudo de arco de cada barra é o do cenário de MAIS energia
    - `lang` string
    - `unifilar` boolean
    - `folha` Folha: Carimbo do unifilar (sheet_meta): o que a UI sabe do estudo.
      - `local` string
      - `equip` string
      - `resp` string
      - `crea` string: registro do responsável no CREA
      - `art` string: nº da ART do estudo
      - `rev` string: identificação da revisão (ex.: 'rev 3')
      - `rev_data` string: data da revisão, como o emissor a escreve
      - `wl_name` string
  - `protecoes` Protecao[], required
    - `kind` 'bus' | 'edge', required
    - `ref` union, required: id da barra ('bus') ou [from_id, to_id] ('edge')
      - string
      - string[]
    - `label` string
    - `model_id` string, nullable: id no devices_db; None = ajuste manual
    - `color` string
    - `ajustes` object, nullable: ajustes DESTA proteção (curve, in, ir, tms, isden, isd, tsd, iien, ii, tinst, tab) e a tolerância DIGITADA de quem o banco não declara banda: toli (± % nos pickups), tolt (± % no tempo das curvas L e S) e tolii (± % só na instantânea — vence o toli no Ii). A identidade (placement_key) é resolvida no servidor, onde ela é definida — o cliente não a calcula. Fusível e MCB são de BANDA: aqui não há ajuste a fazer e o que vier é ignorado pelo núcleo. A curva TÉRMICA tabelada (G325), para o modelo cujo banco não a declara: `pts` (pontos [múltiplo, t_s] da borda lenta), `pts_rapida` (a rápida, opcional), `pts_base` ('Ir' ou 'In', obrigatória) e `pts_fonte` (de onde vieram)
  - `barra_estudo` string, required
  - `ajustes` object: por placement_key (ver resposta): curve, in, ir, tms, isden, isd, tsd, iien, ii, tinst, tab, a tolerância digitada toli/tolt/tolii (± % nos pickups · no tempo das curvas L e S · só na instantânea) e a curva térmica tabelada pts/pts_rapida/pts_base/pts_fonte (G325)
  - `cb_open_ms` number: tempo de abertura do disjuntor (ms), somado ao tempo de atuação das proteções nos dois lados do compartimento. Com um RELÉ decidindo, 0 ms deixa de fora os ciclos do disjuntor que ele comanda — e o aviso sai em `avisos`
  - `t_sem_atuacao_ms` number, nullable: OPÇÃO, desligada por padrão (nulo): o tempo máximo de arco, em ms, adotado na barra cuja proteção EXISTE e não vê nenhuma das correntes de arco (G329). Com ela a barra ganha energia no tempo declarado — sem somar abertura — e a marca `t_max_adotado = sem_atuacao`; sem ela, sai sem número, como sempre. Maior que zero e no máximo 2000 ms (IEEE 1584:2018 §6.9.1), senão 422. A barra sem proteção declarada continua sem número, e o alerta `retaguarda_cega` permanece
  - `banda_padrao` 'norma', nullable: banda PADRÃO do disparador de curto-circuito onde o banco não declara banda e nenhuma tolerância foi digitada: 'norma' aplica ±20 % na instantânea do disjuntor termomagnético (IEC 60947-2), dito na folha como premissa do estudo; eletrônico e relé seguem na curva ajustada. Nulo = a curva nominal, como sempre foi
  - `base_ibf` 'pior_caso' | 'nominal', nullable: OPÇÃO, desligada por padrão (nulo = a corrente de curto MÁXIMA, como sempre): 'pior_caso' calcula cada barra também com a corrente MÍNIMA (IEC 60909-0 §7.1.2, ou a fonte mínima que a concessionária declara em `fonte.Icc_min_kA`) e fica com a que dá MAIS energia no cenário governante (NBR 17227 §4.2.1.3 e §5.1.12). O modo que governou sai em `ibf_base` de cada cenário; a corrente mínima que não pôde ser calculada é 422. 'nominal' (G328) calcula a energia com a corrente de TENSÃO NOMINAL — c = 1,0 no ponto de falta, sem K_T e os cabos em `t_cabo_C` (nulo = a temperatura de cada cabo): a base dos estudos feitos em tensão nominal, FORA do §7.1.2, dita no laudo; a máxima da norma segue dimensionando a barra
  - `t_cabo_C` number, nullable: a temperatura dos cabos (°C) na base `nominal` de Ibf (G328): nula = a temperatura declarada em cada cabo. Só vale com `base_ibf='nominal'`
  - `geometria` object: por id de barra
  - `geometria_padrao` GeometriaPadrao: A geometria padrão da PLANTA por classe de tensão — o 'study case' do arco (W6). Cada classe é uma declaração PARCIAL sobre o padrão do núcleo (o campo nulo continua sendo o dele), e a declaração POR BARRA prevalece sobre as duas. Duas classes porque o padrão do núcleo tem duas (até 1 kV · acima).
    - `bt` Geometria: A geometria de arco DAQUELA barra — uma declaração PARCIAL sobre o padrão por tensão do núcleo (BT: G=32 · D=610 · MT: G=152 · D=914). Nenhum campo é obrigatório e nenhum tem default AQUI: quem sabe o padrão é o núcleo, e repeti-lo no contrato seria a segunda definição dele. O que vier nulo continua sendo o padrão — é o que permite declarar só a distância de trabalho de cinquenta barras sem afirmar medição do resto.
      - `G` number, nullable
      - `D` number, nullable
      - `W` number, nullable
      - `H` number, nullable
      - `P` number, nullable
      - `cfg` string, nullable
      - `confirmado` boolean, nullable: a geometria foi CONFERIDA em campo, e não assumida do padrão por tensão. Não muda cálculo nenhum — muda o que o memorial afirma, e afirmar que se mediu o que se herdou é o começo de um laudo errado
    - `mt` Geometria: A geometria de arco DAQUELA barra — uma declaração PARCIAL sobre o padrão por tensão do núcleo (BT: G=32 · D=610 · MT: G=152 · D=914). Nenhum campo é obrigatório e nenhum tem default AQUI: quem sabe o padrão é o núcleo, e repeti-lo no contrato seria a segunda definição dele. O que vier nulo continua sendo o padrão — é o que permite declarar só a distância de trabalho de cinquenta barras sem afirmar medição do resto.
      - `G` number, nullable
      - `D` number, nullable
      - `W` number, nullable
      - `H` number, nullable
      - `P` number, nullable
      - `cfg` string, nullable
      - `confirmado` boolean, nullable: a geometria foi CONFERIDA em campo, e não assumida do padrão por tensão. Não muda cálculo nenhum — muda o que o memorial afirma, e afirmar que se mediu o que se herdou é o começo de um laudo errado
  - `figura` boolean: renderiza a folha TCC (PNG base64)
  - `svg` boolean: devolve também a folha em SVG (`tcc_svg`) — o mesmo desenho do PNG, com um id por curva: `tcc-curva-{n}` é o número do badge e o `tag` da folha de ajustes, e `tcc-faixa-reprovada-{par}-{k}` a faixa de seletividade do par
  - `I_max_kA` number, nullable
  - `T_max_ms` number
  - `erms_on` boolean: modo MANUTENÇÃO (ERMS · NEC 240.87): desenha a curva de manutenção ao lado da normal e compara as duas energias. Não altera o ajuste de operação — é um modo comutável, para trabalho energizado
  - `erms_ii_pu` number: instantâneo do modo manutenção, em múltiplos de In
  - `camadas_elemento` CamadasElemento: As camadas que o PRÓPRIO unifilar define para a folha: o dano do transformador que alimenta a barra, a partida dos motores dela e o dano k²S² do CABO que chega nela. As três juntas são o coordenograma de um motor — a curva de partida dele, o limite do cabo que o alimenta e a proteção que fica entre os dois — e é por isso que inserir um motor pelo diagrama cria também a barra dos terminais e o cabo: sem eles, duas dessas camadas não existem. Desligadas por omissão — a do transformador abre o eixo de tempo até ~1100 s, e ligá-la por padrão mudaria em silêncio a forma de toda folha existente.
    - `trafo` boolean
    - `motor` boolean
    - `cabo` boolean
  - `camadas_folha` CamadasFolha: As camadas de LEITURA da folha TCC — as mesmas da aba do coordenograma (`coord_show_*`). Nenhuma muda número: o tempo, a energia e o ponto de operação continuam calculados com elas desligadas (G128). A omissão é a folha que esta rota sempre desenhou.
    - `arco` boolean: verticais da corrente de arco (plena e reduzida) com os marcadores de operação. Desligada, a folha é de PROTEÇÃO pura — a que vai à concessionária
    - `ibf` boolean: vertical da falta franca da barra
    - `ikmin` boolean: corrente MÍNIMA (§7.1.2): pickup à direita dela não detecta a falta no fim do circuito
    - `ponto_ei` boolean: ★ no ponto de operação, com a energia e a categoria
    - `zonas_ei` boolean: fundo por categoria da NBR 17227 (1,2 · 12 · 40 cal/cm²), com a geometria da própria barra
    - `ith` boolean: corrente TÉRMICA equivalente Ith = Ik″·√(m+n) (Cláusula 14) no tempo de eliminação da própria folha. Sem duração não há grandeza térmica: a marca não sai, e `camadas_fora` diz por quê
    - `seletividade` boolean: as FAIXAS de corrente em que um par adjacente da cadeia reprova a seletividade (IEC 60255-151, margem de 15 %), atrás das curvas. O veredito é o de `seletividade`; par não verificado não tem faixa, e sem par reprovado a camada volta em `camadas_fora` com o motivo
  - `ferramentas` EstudoDoCaderno[]: os estudos da SUÍTE que o projeto carrega (`v2.tools`), no mesmo formato do caderno. O que cada ferramenta publica vira CAMADA da folha TCC — a ponte entre a ferramenta e o estudo. O que não pode ser desenhado volta em `camadas_fora`, com o motivo
    - `slug` string, required: o slug do catálogo (`GET /tools`)
    - `corpo` object, required: o corpo da rota `/tools/<slug>/memorial`
    - `veredito` string: o que a tela mostrou
    - `resultado` string: a manchete do estudo
  - `emissao_n` integer, nullable: a emissão que o DOCUMENTO carrega hoje (C32); nula = nunca emitido
  - `emissao_anterior_data` string, nullable: a data da emissão que esta SUBSTITUI (a n−1, do histórico — `EmissaoDocumento.anterior_data`); a capa reemitida diz "Substitui a rev. N, emitida em D"
  - `incluir` IncluirMemorial: O que o memorial da barra leva — as mesmas escolhas da aba do app.
    - `curto` boolean: a memória de curto-circuito da BARRA na rede
    - `memoria_curto` boolean: o desenvolvimento passo a passo (equações)
    - `coordenograma` boolean: a folha TCC, os ajustes, a seletividade e o ERMS
    - `prancha` boolean: a prancha de proteção (Anexo P)
    - `sensibilidade` boolean: Ei × D · Ei × Ibf · Ei × T e os limiares
    - `teoria` boolean: o fundamento das equações do IEEE 1584
  - `consolidado` boolean: o laudo consolidado §11: sumário e a tabela-mestra da instalação
  - `ciencia` CienciaIn: O que a tela declara ao pedir um documento assinável: o Termo aceito e o `hash` do conjunto de alertas de que deu ciência.
    - `termo_aceito` boolean
    - `hash` string

## Response `200`

Successful Response

## Other responses

- `402`: exige assinatura ativa
- `422`: a barra não tem estudo de arco pelo IEEE 1584

---

[API](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api.md) · [All operations](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/estudoseletricos/apis/arc-flash-platform-api/revisions/5877d717cb1b?raw)
