Como usar scripts-modelo para visualizar rapidamente nós semaforizados

Janeiro de 2020 — Por Margarida Delgado

Nesta nota técnica, veremos um dos scripts disponíveis no template que pode acelerar o processo de filtrar e visualizar nós semaforizados.

O Script 10 da lista de templates percorre todos os nós do modelo e atribui a cada nó um atributo chamado GKNode::hasControlInfo, com valor verdadeiro ou falso. Se esse atributo ainda não existir, o script o cria automaticamente.

Ao executar o Script 10, a função principal é chamada e um diálogo se abre com as seguintes opções:

  1. All Control Plans
  2. One Control Plan
  3. All Control Plans in a Master Control Plan
Menu do Script 10 com opções para todos os planos de controle, um plano ou um plano mestre
Diálogo do Script 10 com opções de busca de nós com informação semafórica.

Se você escolher One Control Plan, deverá informar o número de ID do plano de controle. Se escolher All Control Plans in a Master Control Plan, deverá informar o número de ID do plano mestre de controle.

A função getCreateNodeAttribute() verifica se o atributo GKNode::hasControlInfo já existe. Caso não exista, ela o cria. O tipo de valor aceito por esse atributo é booleano — true ou false. O nome externo será Has Control Info?.

Tela do Aimsun Next com o atributo booleano GKNode::hasControlInfo
O script cria ou atualiza o atributo GKNode::hasControlInfo para indicar se o nó possui informação de controle.

A função isNodeInCP(cp, node) determina se um nó específico possui informação em um determinado plano de controle. Ela retorna 0, ou seja, false/No, quando não há informação; e 1, ou seja, true/Yes, quando há informação. A função getControlJunction() retorna 0 quando o nó aparece no plano de controle como Unspecified, isto é, sem informação.

Trecho de script verificando se um nó possui informação em um plano de controle
A função verifica se um nó aparece com informação em um determinado plano de controle.

Quando a busca considera todos os planos de controle, a função startCalculation(column) é executada. Ela percorre todos os nós e, para cada nó, percorre todos os planos de controle. Os nós são objetos do tipo GKNode e os planos de controle são objetos do tipo CKControlPlan; por isso, eles são localizados com a função getCatalog().getObjectsByType(enterType).

Quando a busca considera um plano de controle específico, a função startCalculationCP(column, cp) percorre todos os nós daquele plano de controle.

Quando a busca considera um plano mestre de controle específico, a função startCalculationMCP(column, mcp) percorre todos os nós e todos os planos de controle dentro daquele plano mestre, independentemente da programação horária ou da zona.

Depois que o script termina, você pode visualizar os nós sem informação criando um modo de visualização:

Mapa do Aimsun Next destacando nós sem informação de controle semafórico
Após executar o script, um modo de visualização pode destacar nós sem informação de controle.
Configuração de modo de visualização usando o atributo GKNode::hasControlInfo
A configuração do modo de visualização usa o atributo criado pelo script para filtrar os nós.
Resultado do filtro visual para nós com ou sem informação de controle no Aimsun Next
O resultado permite identificar rapidamente nós que precisam de revisão nos planos de controle.