Macro Function Components
March 2016: Marga Delgado explains how to use macro function components to produce extra outputs when executing an assignment.
January 2020
By Margarida Delgado
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:
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:
March 2016: Marga Delgado explains how to use macro function components to produce extra outputs when executing an assignment.
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.
SHARE
Aimsun Next 23
Aimsun Next 20.0.5
Aimsun Next 23
@manual {AimsunManual,
title = {Aimsun Next 23 User's Manual},
author = {Aimsun},
edition = {Aimsun Next 23.0.0},
address = {Barcelona, Spain},
year = {2023. [Online]},
month = {Accessed on: Month, Day, Year},
url = {https://docs.aimsun.com/next/23.0.0/},
}
Aimsun Next 20.0.5
@manual {AimsunManual,
title = {Aimsun Next 20.0.5 User's Manual},
author = {Aimsun},
edition = {Aimsun Next 20.0.5},
address = {Barcelona, Spain},
year = {2021. [In software]},
month = {Accessed on: Month, Day, Year},
url = {qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html},
}
Aimsun Next 23
TY - COMP
T1 - Aimsun Next 23 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 23.0.0
Y1 - 2023
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spain
PB - Aimsun
UR - [In software]. Available: https://docs.aimsun.com/next/23.0.0/
Aimsun Next 20.0.5
TY - COMP
T1 - Aimsun Next 20.0.5 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 20.0.5
Y1 - 2021
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spain
PB - Aimsun
UR - [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html