Collect / Assemble Work Items

This routing in discipline lets you collect a specified number of work items from one or several queues, before you start processing them together.

For example, you might want to pack 12 bottles of whiskey into a box at a bottling plant; you might need to wait for 100 units before you put them into the oven as a batch; or you will need a passenger and their suitcase to be present before they can proceed to the airport security.

Only when the number of work items required have all been collected at an activity, will it start working.

How to use Collect

Collect is a routing in discipline and can be found in an activity’s routing in dialog (under Properties). By using the input box next to Collect, we define how many work items are being collected from the highlighted queue.

Note: 10,000 is the highest collect number you can enter here, if you wish to collect up to 32,000 work items, please see Label/Sheet below.

Collect Options

Do Not Collect Until All Available

This option tells the activity not to collect any of the required work items from their feeding objects until all the required work items are available. This option is available if all the feeding objects are queues or if the feeding object is a start point using the Unlimited function.

“Do not collect until all available” will be greyed out if one of feeding queues has a minimum wait time applied to it.


Matching causes the activity to collect only items with identical label content (checking the “Match” check box will allow you to select the label name to use). For example, at an airport security process, you can match a passenger with their suitcase. Likewise, in a healthcare process, patients often need to collect their own test results. Unique labels are commonly used for this purpose when batched out at some earlier stage of the process.


Assemble (the default) pulls together all the items collected into a single work item. For example, in manufacturing, component parts are often assembled together into the final product that is being produced. Uncheck this box if you want all the work items kept separate.

Assembly time-in-system from:

When assembling work items, you can specify which of the individual work items will dictate the time in system result of the assembled unit. You can choose from the following options:

  • First collected: Uses the time on the first work item collected
  • First in List: Uses the time on the work item that comes from the first source object in the list of source objects above
  • Youngest: Uses the most recent time found on any of the collected work items
  • Oldest: Uses the time on the oldest of the collected work items
  • Set to Now: Uses the time that the final work Item is collected (the time in system for the work item started at the time it was assembled at the activity)
Label Values from

When assembling work items with different Label values, Simul8 must make a choice of which of these values will be applied to the newly assembled item. Label values of the final assembled work items can be sourced from either:

  • Highest: The work item with the highest label value (the default setting)
  • Lowest: The work item with the lowest label values.
  • Selected: The work item that enters the activity from the highlight source object.

Label / Sheet

Checking the Label / Sheet option will allow an activity to use Simul8’s variable collect feature. With this, you can define how many work items are collected, based on another work item's label value.

For instance, we might have a work item representing a product type. Then, based on its product type label, we want to collect a certain number of work items from other queues feeding into that activity.

Some examples of when this would be useful:

  • Different car models on the same production line require different combinations of parts;
  • Patients in an emergency department have different diagnostics tests and are required to collect different test results;
  • Orders in a restaurant are made up of variable combinations of dishes.

Once Label / Sheet is selected, a dialog will appear to select the label and the internal spreadsheet you want to use.

Use the Select label  dropdown to choose the label that will be referenced to control the collection of items. For example, the product type.

Use the Select sheet  dropdown to choose which spreadsheet contains the matrix of how many work items need to be collected from each incoming queue depending on the label value.

Use the New  button at the side of each dropdown to create a new label or sheet if you do not yet have any labels or spreadsheets in your simulation for this purpose.

High Volume:  When using Collect with a high-volume activity, we are not collecting work items based on their count, but instead Simul8 looks at the Quantity label on each work item and uses its value to determine how many work items to bring into the activity. If necessary, a work item will be split into two work items to leave some “quantity” in the prior queue and bring some into the activity.

Note: While you can enter any value as the collect number into the spreadsheet, 32,000 is the highest number that can be collected. If you try to collect more than this, some work items may be lost. The Simulation Assistant will notify you if one of your collect values breaches this limit.

See Also