---
title: "Network Element"
method: POST
path: "/api/v1/network/element"
tags: ["rede"]
---

# Network Element

`POST /api/v1/network/element`

## 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/network/element`
- Auth: none declared

O clique no unifilar resolvido pelo NÚCLEO (`unifilar_ops`).

O SVG interativo marca cada símbolo com `data-elem`; quem diz o que aquele
id é — e o que ele aceita editar — é o domínio, não o navegador. Três
recusas que o núcleo já sabia fazer e que a rota preserva: id que não existe
na rede ATUAL não seleciona nada; aresta PARALELA (o desenho colapsa as
duas) recusa a edição por clique, porque o ordinal prometeria uma precisão
que a figura não tem; e só aparecem os campos cuja COLUNA existe — oferecer
um campo que a tabela não guarda seria prometer edição que se perde.

## Request body

- ElementoCliqueIn: Um clique no unifilar: a rede atual e o `data-elem` do símbolo tocado. Quem resolve o id contra a rede é o NÚCLEO (`unifilar_ops`), não o navegador — id que não existe na rede de agora não seleciona nada, e aresta paralela colapsada no desenho é recusada em vez de editar a errada.
  - `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
  - `elem_id` string, required: `bus:<id>` · `edge:<de>→<para>` · `mot:<barra>` · `ger:<barra>` · `dev:<n>` · `src`
  - `geometria` object: a geometria de arco já declarada, por barra — a aba do painel 📐 mostra a PRÓPRIA da barra quando existe, e o padrão por tensão quando não, dizendo qual é qual
  - `protecoes` Protecao[]: as proteções da instalação, na ordem do desenho: é ela que faz `dev:<n>` resolver (G305). Sem a lista, clicar numa proteção não selecionava nada — e ainda desmarcava a barra em estudo
    - `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)
  - `lang` string

## Response `200`

Successful Response

- ElementoCliqueOut: `selecionado=false` quando o id não existe na rede ATUAL — a mesma recusa do `parse_deeplink`: melhor nada selecionado do que o elemento errado.
  - `selecionado` boolean, required
  - `tipo` string
  - `abas` AbaInspetor[]: o inspetor por ABAS (W1): cada uma com os campos do tipo, o destino da gravação e o que ela declara
    - `id` string, required
    - `titulo` string, required
    - `destino` 'rede' | 'geometria' | 'fonte'
    - `campos` CampoEditavel[]
      - `nome` string, required
      - `rotulo` string
      - `unidade` string
      - `ajuda` string
      - `valor` unknown
      - `tipo` string
      - `opcoes` string[], nullable
    - `nota` string: o que a aba DECLARA — de onde veio o número, e contra o que ele se compara
  - `rotulo` string
  - `linha` integer, nullable: índice da linha na tabela do tipo
  - `campos` CampoEditavel[]
    - `nome` string, required
    - `rotulo` string
    - `unidade` string
    - `ajuda` string
    - `valor` unknown
    - `tipo` string
    - `opcoes` string[], nullable
  - `ambigua` boolean: aresta paralela: o desenho colapsa as duas e o ordinal prometeria precisão que a figura não tem — a edição por clique é recusada
  - `motivo` string

## Other responses

- `422`: Validation Error

---

[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)
