A Detach routing causes entities that have been attached to the current entity to be detached and routed to the connected activity.
A detach route can be used disassemble entities that have been previously assembled or to unload entities previously loaded (with an attach routing in the current model).
A detach route is almost always used in conjunction with a percentage routing so that the base or carrying entity has a place to go. If no percentage routing is drawn from the same activity as the detach then the carrying entity will exit the system.
You may not connect more than one Detach routing from the same activity, but you can detach all entities then add a storage and then separate entities using conditional routings.
After detaching, the parent entity’s attributes remain with the parent. In addition, any attributes assigned while the entities were attached remain with the parent. The detached child will retain any attributes it had prior to the attach. They will not inherit attributes assigned to the attached group of entities.
• Any time statistics are needed for items that have been previously attached use the detach at the end of the model.
• A bus route has people loading the bus (Attach route) and people unloading (Detach route) at predetermined stops. An attribute can be used to tag individuals. This tag is later used in the detach routing to signal them to leave the bus. See “Attributes” in Chapter 3.12.3.
Move Time Time required to move to the next activity or storage. Any expression is valid.
Detach After Activity or Before Activity The entity may be detached before or after the activity. Detaching before the activity allows the detached entity to be reattached as part of the same activity.
Condition An optional condition to be satisfied for detaching entities that are to use this routing. This allows multiple detach routings to be defined with different conditions. This could be used to detach and route specific entities (previously attached) to specific destinations.
- You may only connect one Detach routing to a process step. If you specify a condition for the detach, only the entities matching that condition will be detached and follow that route. If the condition field is left blank, all attached entities will detach and follow the detach route.
Detach Child and Parent Separately
Since there is no route defined for the parent entity to use, it exits the model at that activity. In order to see the parent entity leave the activity, add a 100% exit route from the activity, in addition to the detach route. The child entities will leave on the detach route and the parent entity will leave on the 100% route.
Before or After the Activity on a Detach Route
The terms Before or After the activity when using a Detach route refer to the activity from where the route originates (the non-arrow head end of the route). If you detach Before the activity, all attached entities will be detached, be released to leave for the next activity and then the carrier entity will execute it’s processing time. If you detach After the activity, all attached entities enter the activity as a single unit. They then detach after the activity time has been executed.
Detaching Children and Grandchildren
In a detach route, the Detach needs to be done in levels. If you create and then attach entities at multiple levels (parent creating children, and children creating grandchildren, then attaching each entity back to their respective parent) you must use a separate detach route for each “generation” of child entities. You must also detach in the proper order; detach the most recently attached child entities, then detach the next most previous attached entities. In addition, the activity hosting the detach route for the grandchild entities (on the upstream end of the detach route) must have an input queue.
Combining Detach Route with other Route Types
You cannot combine Detach and Conditional routes. The only routing type you can combine with a Detach route is a 100% route. If you want to route each type of entity in the attached group to a different location, you must do it as a separate step after the detach has occurred. Leaving the Condition field blank on the Detach route will route “all” attached child entities down the Detach route. You could then use Conditional routes at a subsequent activity (following the Detach route) to route the child entities appropriately. If you enter a Condition on the Detach route, then only the entities matching that condition will be routed down the Detach route. All other child entities will remain attached to the parent entity, and go down the 100% route. If no 100% route is used in conjunction with the Detach route, the parent, and any remaining attached entities will exit the model immediately. In version 5 and above, Conditional routed can be combined with Detach. That being said, the conditional route would be for the base entity (parent entity) and not for the detached entity.
The following routing types are available: