---
title: "10.8 Lanes"
chapter: "10 Process"
source: "OMG BPMN 2.0.2 — formal/2013-12-09"
pages: "304-308"
---

> 10 Process · páginas 304-308 · [índice](../README.md)


<a id="sec-10-8"></a>
## 10.8 Lanes


A **Lane** is a sub-partition within a **Process** (often within a **Pool**) and will extend the entire length of the **Process** level, either vertically (see Figure 10.122) or horizontally (see Figure 10.123). Text associated with the **Lane** (e.g., its name and/or that of any **Process** element attribute) can be placed inside the shape, in any direction or location, depending on the preference of the modeler or modeling tool vendor. Our examples place the name as a banner on the left side (for horizontal **Pools**) or at the top (for vertical **Pools**) on the other side of the line that separates the **Pool** name, however, this is not a requirement. A **Lane** is a square-cornered rectangle that MUST be drawn with a solid single line (see Figure 10.123 and Figure 10.124).


<a id="fig-10-123"></a>
![Figure 10.123 – Two Lanes in a Vertical Pool](../figures/fig-10-123.png)

*Figure 10.123 – Two Lanes in a Vertical Pool* (p. 305)


<a id="fig-10-124"></a>
![Figure 10.124 – Two Lanes in a horizontal Pool](../figures/fig-10-124.png)

*Figure 10.124 – Two Lanes in a horizontal Pool* (p. 305)


**Lanes** are used to organize and categorize **Activities** within a **Pool**. The meaning of the **Lanes** is up to the modeler. **BPMN** does not specify the usage of **Lanes**. **Lanes** are often used for such things as internal roles (e.g., Manager, Associate), systems (e.g., an enterprise application), an internal department (e.g., shipping, finance), etc. In addition, **Lanes** can be nested (see Figure 10.125) or defined in a matrix. For example, there could be an outer set of **Lanes** for company departments and then an inner set of **Lanes** for roles within each department.


<a id="fig-10-125"></a>
![Figure 10.125 – An Example of Nested Lanes](../figures/fig-10-125.png)

*Figure 10.125 – An Example of Nested Lanes* (p. 306)


Figure 10.126 shows the **Lane** class diagram. When a **Lane** is defined it is contained within a LaneSet, which is contained within a **Process**.


<a id="fig-10-126"></a>
![Figure 10.126 – The Lane class diagram](../figures/fig-10-126.png)

*Figure 10.126 – The Lane class diagram* (p. 307)


The LaneSet element defines the container for one or more **Lanes**. A **Process** can contain one or more LaneSets. Each LaneSet and its **Lanes** can partition the *Flow Nodes* in a different way. The LaneSet element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 10.134 presents the additional attributes and model associations of the LaneSet element.


<a id="tab-10-134"></a>
**Table 10.134 – LaneSet attributes and model associations**

| Attribute Name | Description/Usage |
| --- | --- |
| **name:** sting [0..1] | The name of the LaneSet. A LaneSet is not visually displayed on a **BPMN** diagram. Consequently, the name of the LaneSet is not displayed as well. |
| **process:** Process | The **Process** owning the LaneSet |
| **lanes:** Lane [0..*] | One or more **Lane** elements, which define a specific partition in the LaneSet. |
| **parentLane:** Lane [0..1] | The reference to a **Lane** element which is the parent of this LaneSet. |


A **Lane** element defines one specific partition in a LaneSet. The **Lane** can define a partition element that specifies the value and element type, a tool can use to determine the list of *Flow Nodes* to be partitioned into this **Lane**. All **Lanes** in a single LaneSet MUST define partition element of the same type, e.g., all **Lanes** in a LaneSet reference a Resource as the partition element, but each Lane references a different Resource instance. The **Lane** element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 10.135 presents the additional attributes and model associations of the **Lane** element.


<a id="tab-10-135"></a>
**Table 10.135 – Lane attributes and model associations**

| Attribute Name | Description/Usage |
| --- | --- |
| **name**: string | The name of the **Lane** |
| **partitionElement:** BaseElement [0..1] | A reference to a BaseElement that specifies the partition value and partition type. Using this partition element a **BPMN** compliant tool can determine the FlowElements that have to be partitioned in this **Lane**. |
| **partitionElementRef:** BaseElement [0..1] | A reference to a BaseElement that specifies the partition value and partition type. Using this partition element a **BPMN** compliant tool can determine the FlowElements that have to be partitioned in this **Lane**. |
| **childLaneSet:** LaneSet [0..1] | A reference to a LaneSet element for embedded **Lanes**. |
| **flowNodeRefs:** FlowNode [0..*] | The list of partitioned into this **Lane** according to the FlowNodes partitionElement defined as part of the **Lane** element. |

