Search code examples
javaparametersradio-buttonagentanylogic

How to give a parameter from the Main to an agent in Anylogic


my Main contains a conveyor, which transports a carton (my agent) from A to B. I added a radio button with which the user can choose the size of the box ("small", "medium", "big" & "very big"). I now want every carton to save the value of the radio button. I tried a lot of different stuff like linking it to a parameter, but I didn't manage to figure it out.

Picture of my model:

enter image description here

the code I used for the radio button is:

if( value == 0 )
    radioValue = 1;
else if( value == 1 )
    radioValue = 2;
else if( value == 2 )
    radioValue = 3;
 else if( value == 3 )
    radioValue = 4;

radioValue being the parameter in the Main i linked my radio-button to.

How do I give this parameter to the agent and how do I read it out later?

Thanks in advance for helping!


Solution

  • in your Kist agent create a variable called size of type int.

    in the source block, in the properties, on the "on at exit" action, under the action section of the properties write the following code:

    agent.size=radioValue;
    

    This is one of the most basic things to do in AnyLogic... so I suggest for you to go through a training before even starting to work on any model. This can be done by going through the tutorials, the anylogic in 3 days book or my course here: noorjax.teachable.com/p/anylogic

    later you can use agent.size to access the size of your agent, in any of the blocks.