> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-pt/kilo-iot-server/rules-engine/visual-editor.md).

# Editor Visual

Desenhe regras de automação na tela BPMN visual do Kilo IoT — arraste nós, desenhe fluxos, configure cada etapa no painel.

O editor visual é onde você desenha fluxos de trabalho de automação. Apresenta uma tela BPMN 2.0 onde coloca nós, os liga com fluxos e configura cada passo através de um painel de propriedades.

Este é um editor visual-first, não um construtor de regras apenas de arrastar e largar. A maior parte do trabalho acontece através da colocação de nós e de campos de formulário, enquanto o CEL é usado em campos de expressão focados, onde a regra precisa de lógica precisa.

## Como aceder

O editor abre quando você:

* Clique em **Adicionar regra** para criar uma nova regra (em `/rules/create`)
* Clique em **Editar** de uma regra da lista de Regras (em `/rules/:id/edit/editor`)
* Altere o seletor de modo de **Visualização** para **Edição** ao visualizar uma regra

## Layout do editor

O editor tem quatro áreas principais:

1. **Barra de ferramentas / Paleta** — À esquerda. Contém tipos de nós arrastáveis e ferramentas da tela.
2. **Tela** — A área central. O seu diagrama BPMN fica aqui.
3. **Painel de propriedades** — À direita. Abre-se quando seleciona um nó, mostrando os respetivos campos de configuração.
4. **Barra de cabeçalho** — No topo. Mostra o nome da regra, o seletor de modo, o estado de gravação automática e os botões de ação.

<figure><img src="https://585438662-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-e08a020c61a10d4702120b8257dd2155e9a75b7c%2Frules-visual-editor.jpg?alt=media" alt="The rule editor with the tool palette on the left, the rule on the canvas and the header bar carrying Save and Build"><figcaption></figcaption></figure>

## Paleta

A paleta fornece ferramentas e elementos arrastáveis que pode colocar na tela.

### Ferramentas

| Ferramenta                       | O que faz                                                |
| -------------------------------- | -------------------------------------------------------- |
| **Ferramenta Mão**               | Desloca a tela sem selecionar nada                       |
| **Ferramenta Laço**              | Desenha uma caixa de seleção à volta de vários elementos |
| **Ferramenta Espaço**            | Cria ou remove espaço entre elementos                    |
| **Ferramenta de ligação global** | Desenha uma ligação (fluxo) entre dois nós               |

### Elementos arrastáveis

| Elemento                     | Descrição                                                                                                                                                          |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Evento de início**         | Ponto de entrada da regra — começa a partir de um sensor de dispositivo ou de uma condição de acionamento guardada. Um é colocado automaticamente numa nova regra. |
| **Evento de fim**            | Termina um caminho de fluxo                                                                                                                                        |
| **Portal exclusivo**         | Ponto de decisão — encaminha para um ramo com base em condições                                                                                                    |
| **Tarefa de script**         | Avalia uma expressão CEL para transformar ou classificar dados                                                                                                     |
| **Definir alarme**           | Aciona uma definição de alarme com uma mensagem dinâmica                                                                                                           |
| **Executar comando**         | Envia um comando para um dispositivo quando a regra é ativada — controla hardware, não apenas alerta                                                               |
| **Enriquecimento**           | Obtém a leitura mais recente de outro sensor                                                                                                                       |
| **Evento de erro de limite** | Anexa-se a uma tarefa para capturar erros e encaminhar para um caminho de recurso                                                                                  |

Arraste um elemento da paleta para a tela para o adicionar. Cada tipo de elemento e a sua configuração completa estão documentados em [Referência de nós](/kilo-docs-pt/kilo-iot-server/rules-engine/node-reference.md).

## Trabalhar com a tela

### Adicionar nós

Arraste elementos da paleta para a tela. Posicione-os na ordem em que pretende que a regra seja executada.

### Ligar nós

Use a **Ferramenta de ligação global** da paleta, ou passe o cursor sobre um nó até aparecerem as alças de ligação e depois arraste de um nó para outro. Isto cria um **fluxo de sequência** — uma seta que mostra a ordem de execução.

Regras para ligações:

* Eventos de início e nós de tarefa podem ter um fluxo de saída
* Os Portais exclusivos podem ter vários fluxos de saída (um por ramo)
* Cada fluxo de um Portal (exceto o predefinido) deve ter uma expressão de condição
* Os Eventos de fim não têm fluxos de saída

### Selecionar e configurar nós

Clique num nó para o selecionar. O painel de propriedades abre-se à direita, mostrando campos específicos desse tipo de nó. Configure o nó e depois clique em **Guardar** na parte inferior do painel de propriedades para aplicar as suas alterações.

### Eliminar nós

Selecione um nó e prima a tecla Delete, ou use o menu de contexto para o remover. Eliminar um fluxo de portal requer confirmação, uma vez que também remove a ligação correspondente da tela.

## Painel de propriedades

Cada tipo de nó tem o seu próprio painel de propriedades com campos específicos. Quando clica num nó, o painel abre-se no lado direito do editor.

Campos comuns na maioria dos tipos de nós:

* **Nome** — Uma etiqueta descritiva para o nó

Muitos tipos de nós também expõem **Entradas** e **Saídas** baseadas em CEL para modelação avançada de dados. Os campos específicos de cada nó são abordados em detalhe em [Referência de nós](/kilo-docs-pt/kilo-iot-server/rules-engine/node-reference.md).

Depois de editar as propriedades, clique em **Guardar** na parte inferior do painel para aplicar as alterações. Clique em **Cancelar** para descartar.

## Barra de cabeçalho

### Nome da regra

Clique no nome da regra no topo para o renomear em linha (máx. 60 caracteres). O nome é guardado quando clica fora ou prime Enter.

### Seletor de modo

Uma lista suspensa que mostra o modo atual:

* **Edição** — Acesso total à tela e às propriedades. Adquire um bloqueio de edição.
* **Visualização** — Vista apenas de leitura do diagrama. Não é adquirido qualquer bloqueio.

Mudar de Visualização para Edição adquire o bloqueio de edição (se disponível). Mudar de Edição para Visualização navega para a rota só de leitura. Se tiver alterações do diagrama não guardadas, a plataforma pede-lhe para confirmar o desbloqueio da regra e, em fluxos normais de saída, tenta persistir o estado mais recente do diagrama antes de libertar o bloqueio.

### Indicador de gravação automática

Mostra o estado atual de gravação:

* **A guardar...** — Uma gravação está em curso (com ícone de carregamento)
* **Guardado** — As alterações mais recentes foram guardadas
* **Falha na gravação automática** — A gravação automática falhou. Uma caixa de diálogo oferece a opção de tentar novamente ou voltar atrás.

### Menu de ações

O menu de três pontos (⋮) fornece:

* **Renomear** — Abre o editor de nome em linha
* **Editar descrição** — Abre uma caixa de diálogo para editar a descrição da regra (máx. 1.000 caracteres)
* **Duplicar regra** — Cria uma cópia da regra

### Botões de ação

* **Guardar** — Guarda manualmente o estado atual. Cria uma nova versão. Desativado quando não há alterações não guardadas.
* **Compilar** — Abre a barra lateral de compilação para validar e criar um artefacto de compilação. Consulte [Compilações, Artefactos e Implementação](/kilo-docs-pt/kilo-iot-server/rules-engine/builds-artifacts-and-deployment.md).

### Separadores

Ao editar uma regra existente, aparecem dois separadores por baixo do cabeçalho:

* **Editor** — A tela BPMN (predefinição)
* **Histórico** — A tabela de histórico de versões. Consulte [Histórico de versões e restauro](/kilo-docs-pt/kilo-iot-server/rules-engine/version-history-and-restore.md).

Estes separadores só são apresentados enquanto está a editar uma regra guardada existente. Não aparecem no modo Visualização nem enquanto cria uma regra nova sem guardar.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-pt/kilo-iot-server/rules-engine/visual-editor.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
