For instance, I would like to be able to iterate through all the programs in a signal controller and have the green time start 3 seconds later. I cannot figure out how to change any attributes of a signal program in COM in Python.
I have looked through the COM Help and cannot find any signal program objects, only "signal controller" which allows me to change which signal program is active, but not attributes within it.
For instance, I would like to be able to iterate through all the programs in a signal controller and have the green time start 3 seconds later. I cannot figure out how to change any attributes of a signal program in COM in Python.
I have looked through the COM Help and cannot find any signal program objects, only "signal controller" which allows me to change which signal program is active, but not attributes within it.
Share Improve this question asked Mar 15 at 0:02 iz ziiz zi 112 bronze badges1 Answer
Reset to default 0If it is an "internal" signal controller (2-stage controller, fixed time (simple), pedestrian crossing, ramp metering), Vissim is taking all the signal controller data directly from the attributes available in Vissim. They should also be editable via COM (see the ISignalController and ISignalGroup attributes in the COM help).
However, I guess you have another signal controller such as "Fixed Time" or "Ring Barrier Controller". Unfortunately, Vissim does not provide a convenient interface for the signal controller's data in this case, because it is external to Vissim. You have to edit the input files of the signal controller directly, whatever they might be. Note: The "Fixed Time" controller is a bit of a special case here because its input does not reside in a dedicated file but is stored as string in the signal controller attribute "Internal supply data" since Vissim 2022. The attribute is editable via COM and contains the signal controller program as string (Base64 encoded). You have to decode, parse, edit and encode it manually, though.