How to use template scripts for fast visualization of signalized nodes

Technical Note #43

January 2020
By Margarida Delgado

In this technical note, we’ll take a look at one of the scripts in the template that you can use to speed up the process of filtering and viewing signalized nodes.

Script number 10 in the template list will search through all of the nodes in the model, and then assign a node attribute, called GKNode::hasControlInfo, as being either true or false (or it creates that node attribute if it doesn’t exist).


When you execute Script 10, the main function will be called and a dialog will open with the following options:


  1. All Control Plans
  2. One Control Plan
  3. All Control Plans in a Master Control Plan


Drop down menu for GKNode::hasControlInfo

If you choose the option ‘One Control Plan’, you’ll need to provide the control plan ID number; if you choose the option ‘All Control Plans in a Master Control Plan’, you’ll need to provide the ID number of the master control plan.


The function getCreateNodeAttribute() checks if the attribute GKNode::hasControlInfo exists. if not, it will create it. The type of values that this attribute accepts will be Boolean (true or false). The external name will be Has Control Info?




The function isNodeInCP( cp, node ) just determines whether a particular node has info for a particular control plan; it returns 0, i.e., false or No, if there is no info; and 1, i.e., true or Yes, if there is info. The function getControlJunction() will return 0 when the node appears in the control plan as Unspecified (i.e. no info).





When looking for all control plans, the function startCalculation(column) will be executed. It iterates all nodes and, for each node, it iterates all control plans. Nodes are all GKNode-type objects and control plans are all CKControlPlan-type objects, so find them with the getCatalog().getObjectsByType(enterType) function.


When looking for one particular control plan, the function startCalculationCP(column, cp) will iterate all nodes of this particular control plan.


When looking for one particular master control plan, the function startCalculationMCP(column, mcp) iterates all nodes and all control plans inside that master control plan, whatever the timetable or zone.


Once the script has finished, you can visualize nodes with no info, creating a view mode:





More technical notes

Python: from function to attribute

August 2016: Most users are familiar with creating their own attributes within objects within an Aimsun model. Grant MacKinnon explains how you can also add a column to an object where a value is returned based on some Python Code, allowing you to calculate a value on the fly.

  • Got a question? Get in touch.

    We are here to help!


Cite Aimsun Next

Aimsun Next 24

Aimsun (2024). Aimsun Next 24 User’s Manual, Aimsun Next Version 24.0.0, Barcelona, Spain. Accessed on: April. 16, 2024. [Online].


Aimsun Next 24

@manual {AimsunManual,
title = {Aimsun Next 24 User’s Manual},
author = {Aimsun},
edition = {Aimsun Next 24.0.0},
address = {Barcelona, Spain},
year = {2024. [Online]},
month = {Accessed on: Month, Day, Year},
url = {},

Aimsun Next 24

T1 – Aimsun Next 24 User’s Manual
A1 – Aimsun
ET – Aimsun Next Version 24.0.0
Y1 – 2024
Y2 – Accessed on: Month, Day, Year
CY – Barcelona, Spain
PB – Aimsun
UR – [In software]. Available: