Responding to several user requests, we have added comprehensive support for String States as well as several new numeric state types. We have also enhanced Vehicle behavior to address a common modeling need. And we have added new capability to Repeat groups that will be particularly useful for people building custom hierarchical objects.
We’ve added several categories of states to the Discrete group, including Integer, Boolean, DateTime and String. The Real, Integer, Boolean and DateTime states can be scalar (default), vector or matrix type states. The String state is scalar. All discrete-change states can be changed by assignment logic at discrete times during a model run.
Based on the new String States that have been added, there are also a number of string functions that may be used, including:
Vehicle and Worker Behavior
We’ve changed the Vehicle and Worker object behavior for accepting entity reservations based on many customer needs. A Vehicle or Worker with Ride Capacity > 1 will now accept multiple reservation requests if all of those requests are originating from the same pickup location. For example, suppose a Vehicle with Ride Capacity = 3 accepts a request to pick up a rider at Node A. While traveling to Node A, that Vehicle will also accept up to 2 more pickup reservation requests (up to its ride capacity) if those requests are also originating from Node A where the vehicle is already headed to do a pickup. Previously, the Vehicle would not accept any more pickup reservation requests after the first one.
Property Repeat Groups
We’ve enhanced our property repeat group capability by adding the ability to reference repeat groups and their properties similar to referencing tables. This feature should be very beneficial in object building.
For example, let’s say you have a repeat group named MyRepeatGroup with two properties within the repeat group, MyTime and MyEntityReference. You may now utilize the SetTable step with the Table Name set as ‘MyRepeatGroup’. You may also utilize other table functions, as shown below, in expressions.
You can now specify a table name in a repeat group property. If a repeat group references a table, then when asking for the number of rows in the repeat group (either for traversing the repeat group in a step, or asking for it in an expression, such as “MyRepeatGroup.AvailableRowCount”), the number of rows of the table will be returned. Additionally, when the engine traverses each tuple in the repeat group, it will implicitly map to a set table reference to the corresponding row in the table. Therefore, any table reference properties in the single repeat group referencing tuple, such as “MyTable.Property”, will resolve correctly.