Paul Toone avatar image
Paul Toone posted


The rack is used to store flowitems as if they were in a warehouse rack. The number and size of bays and levels in the rack can be defined by the user. The user can specify the bay and level to place entering flowitems. If a transporter object is used to deliver or pickup flowitems from a rack, the transporter will drive to the specific cell in the rack where the flowitem is assigned. The rack can also be used as storage on the floor of a warehouse, using the bay number to specify an x position to place a flowitem on the floor, and the level to specify the y position to place the flowitem.


The rack is a sub-class of the FixedResource. It will continue to receive flowitems until its maximum content value is met. When each flowitem enters the rack, it executes the minimum dwell time function for that item. This function returns the minimum stay time for that flowitem. The rack starts a timer for that amount of time. After the timer expires, the rack releases the flowitem.

Extra Parameters in Entry/Exit Triggers

The rack passes extra parameters into the entry and exit triggers. Within the triggers, parval(3) is the bay that the flowitem is in, and parval(4) is the level the flowitem is in.

Place in Bay, Place in Level Functions

The timing of the place in bay and place in level function calls can depend on the configuration of the rack in the model. It depends on whether flowitems are being transported to the rack or if they are being moved directly from upstream objects. If they are moved from upstream objects, the placement functions are called when they are received (in the OnReceive event). If they are being transported into the rack, then the placement functions are called when the transport finishes its travel task and starts the offset travel of the unload task. For more information on task sequences, see the task sequence section. At this point, the transport queries from the rack where to place the flowitem. The rack calls the placement functions so that it can tell the transport to travel to the correct bay and level. If the placement functions are called when the transport asks to place them, then they will not be called again when the flowitem actually enters the rack. This new functionality is different than the functionality in Flexsim version 2.6 and earlier, which would call the place in bay and place in level functions both when a transport requested it as well as when the flowitem entered.

Flowitem Placement

If the rack is a vertical storage rack, the flowitems entering the rack will be placed in their given bay and level and against the y fringe of the rack (yloc(rack) - ysize(rack). They will stack backwards into the rack from that point. If the rack is being used for floor storage, then flowitems will be place in their given bay and level on the floor, and will stack vertically from that point.


The rack can have several viewing modes to better see products in the rack. In addition to the opacity value, you can hold the 'X' key down and repeatedly click on the rack, and the rack will toggle through different viewing modes. These modes are listed as follows.

  1. Full Draw Mode: This mode shows each cell as a level with a platform to put flowitems on. This is the realistic representation of the rack.
  2. Back Face Draw Mode with Cells: This mode shows only the back faces of the rack, so that you always see into the rack. It also draws a grid on the back face representing the bays and levels of the rack. This allows you to better view items in the rack, as well as which bays and levels the items are on.
  3. Back Face Draw Mode: This mode is like the previous mode, except that the grid of bays and levels is not drawn. This mode allows you to easily view items in the rack.
  4. Wire Frame Draw Mode: This mode draws a wire frame around the shape of the rack. This mode allows you to see flowitems in several back-to-back racks. Once a rack is in this draw mode, you will need to 'X' click on the actual wire frame in order to toggle back to mode 1.


There are several commands you can use to query information on the bays and levels of a rack. These commands are as follows. For more detailed information, refer to the command summary.

rackgetbaycontent(obj rack, num bay)
       This command returns the total number of flowitems that are in the given bay.

rackgetbayofitem(obj rack, obj item)
       This command returns the bay number that the flowitem is in.

rackgetcellcontent(obj rack, num bay, num level)
       This command returns the number of flowitems that are in a given bay and level.

rackgetitembybayandlevel(obj rack, num bay, num level, num itemrank)
       This command returns a reference to an item in a given bay and level.

rackgetlevelofitem(obj rack, obj item)
       This command returns the level number that the flowitem is in.

rackgetnrofbays(obj rack)
       This command returns the total number of bays the rack has.

rackgetnroflevels(obj rack [,num bay])
       This command returns the number of levels in the given bay of the rack.


The rack doesn't implement any states. Use the content graph to get statistics.

Properties pages


flexsim users manual
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.



paul.t contributed to this article


FlexSim 2016.1