# BPMN 2.0 — metamodelo de Diagram Interchange (BPMNCI.cmof)

**Arquivo fonte:** [`BPMNCI.cmof`](../../BPMNCI.cmof) · **Pacote CMOF:** `BPMNDI` · **URI:** `http://www.omg.org/spec/BPMN/20100524/DI-XMI`

Extensão do metamodelo DI para BPMN. Define `BPMNDiagram`, `BPMNPlane`, `BPMNShape`, `BPMNEdge`, rótulos e estilos, reutilizando as classes base de `DI.cmof` e `DC.cmof` e referenciando elementos semânticos de `BPMN20.cmof`.

| Metadado | Valor |
| --- | --- |
| Pacote | `BPMNDI` |
| URI | `http://www.omg.org/spec/BPMN/20100524/DI-XMI` |
| Prefixo XMI | `bpmndi` |
| Importa | `DI.cmof#_0`, `DC.cmof#_0` |

## Resumo

| Elemento | Quantidade |
| --- | --- |
| Classes | 6 |
| Associações | 11 |
| Enumerações | 2 |
| Tipos de dados | 0 |
| Tipos primitivos | 0 |
| Restrições | 0 |

## Referências externas

Tipos definidos em outros modelos CMOF e usados por este pacote:

| Tipo | Uso | Ocorrências |
| --- | --- | --- |
| [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | atributo | 3 |
| [DC.Boolean](dc.md#primitive-Boolean) | atributo | 4 |
| [DC.Font](dc.md#datatype-Font) | atributo | 1 |
| [DI.Diagram](di.md#class-Diagram) | superclasse | 1 |
| [DI.DiagramElement](di.md#class-DiagramElement) | atributo | 2 |
| [DI.Label](di.md#class-Label) | superclasse | 1 |
| [DI.LabeledEdge](di.md#class-LabeledEdge) | superclasse | 1 |
| [DI.LabeledShape](di.md#class-LabeledShape) | superclasse | 1 |
| [DI.Plane](di.md#class-Plane) | superclasse | 1 |
| [DI.Style](di.md#class-Style) | superclasse | 1 |

## Classes

Índice alfabético. A coluna **Atributos** conta apenas atributos simples; **Papéis** conta as extremidades de associação navegáveis a partir da classe.

| Classe | Abstrata | Herda de | Atributos | Papéis | Subclasses |
| --- | --- | --- | --- | --- | --- |
| [BPMNDiagram](#class-BPMNDiagram) | não | [DI.Diagram](di.md#class-Diagram) | 0 | 2 | 0 |
| [BPMNEdge](#class-BPMNEdge) | não | [DI.LabeledEdge](di.md#class-LabeledEdge) | 1 | 4 | 0 |
| [BPMNLabel](#class-BPMNLabel) | não | [DI.Label](di.md#class-Label) | 0 | 1 | 0 |
| [BPMNLabelStyle](#class-BPMNLabelStyle) | não | [DI.Style](di.md#class-Style) | 1 | 0 | 0 |
| [BPMNPlane](#class-BPMNPlane) | não | [DI.Plane](di.md#class-Plane) | 0 | 1 | 0 |
| [BPMNShape](#class-BPMNShape) | não | [DI.LabeledShape](di.md#class-LabeledShape) | 5 | 3 | 0 |

## Hierarquia de herança

- [DI.Diagram](di.md#class-Diagram) *(externo)*
  - **BPMNDiagram**
- [DI.Label](di.md#class-Label) *(externo)*
  - **BPMNLabel**
- [DI.LabeledEdge](di.md#class-LabeledEdge) *(externo)*
  - **BPMNEdge**
- [DI.LabeledShape](di.md#class-LabeledShape) *(externo)*
  - **BPMNShape**
- [DI.Plane](di.md#class-Plane) *(externo)*
  - **BPMNPlane**
- [DI.Style](di.md#class-Style) *(externo)*
  - **BPMNLabelStyle**

<a id="class-BPMNDiagram"></a>
### BPMNDiagram

**Classe** · **Herda de:** [DI.Diagram](di.md#class-Diagram) · **Subclasses diretas:** —

**Papéis de associação (saída)**

| Papel | Destino | Mult. | Oposto | Mult. oposta | Propriedades |
| --- | --- | --- | --- | --- | --- |
| `plane` | [BPMNPlane](#class-BPMNPlane) | 1 | `diagram` | 1 | composto, redefine `rootElement` |
| `labelStyle` | [BPMNLabelStyle](#class-BPMNLabelStyle) | 0..* | `diagram` | 1 | composto, subconjunto de `ownedStyle` |


<a id="class-BPMNEdge"></a>
### BPMNEdge

**Classe** · **Herda de:** [DI.LabeledEdge](di.md#class-LabeledEdge) · **Subclasses diretas:** —

**Atributos próprios**

| Nome | Tipo | Mult. | Padrão | Propriedades |
| --- | --- | --- | --- | --- |
| `messageVisibleKind` | [MessageVisibleKind](#enum-MessageVisibleKind) | 0..1 | — | — |

**Papéis de associação (saída)**

| Papel | Destino | Mult. | Oposto | Mult. oposta | Propriedades |
| --- | --- | --- | --- | --- | --- |
| `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `edge` | 0..* | redefine `modelElement` |
| `label` | [BPMNLabel](#class-BPMNLabel) | 0..1 | `edge` | 0..1 | composto, subconjunto de `ownedLabel` |
| `sourceElement` | [DI.DiagramElement](di.md#class-DiagramElement) | 0..1 | `sourceEdge` | 0..* | redefine `source` |
| `targetElement` | [DI.DiagramElement](di.md#class-DiagramElement) | 0..1 | `targetEdge` | 0..* | redefine `target` |


<a id="class-BPMNLabel"></a>
### BPMNLabel

**Classe** · **Herda de:** [DI.Label](di.md#class-Label) · **Subclasses diretas:** —

**Papéis de associação (saída)**

| Papel | Destino | Mult. | Oposto | Mult. oposta | Propriedades |
| --- | --- | --- | --- | --- | --- |
| `labelStyle` | [BPMNLabelStyle](#class-BPMNLabelStyle) | 0..1 | `label` | 0..* | redefine `style` |

**Papéis de associação (entrada)**

| Origem | Papel na origem | Papel inverso | Mult. inversa |
| --- | --- | --- | --- |
| [BPMNEdge](#class-BPMNEdge) | `label` | `edge` | 0..1 |
| [BPMNShape](#class-BPMNShape) | `label` | `shape` | 0..1 |


<a id="class-BPMNLabelStyle"></a>
### BPMNLabelStyle

**Classe** · **Herda de:** [DI.Style](di.md#class-Style) · **Subclasses diretas:** —

**Atributos próprios**

| Nome | Tipo | Mult. | Padrão | Propriedades |
| --- | --- | --- | --- | --- |
| `font` | [DC.Font](dc.md#datatype-Font) | 1 | — | — |

**Papéis de associação (entrada)**

| Origem | Papel na origem | Papel inverso | Mult. inversa |
| --- | --- | --- | --- |
| [BPMNLabel](#class-BPMNLabel) | `labelStyle` | `label` | 0..* |
| [BPMNDiagram](#class-BPMNDiagram) | `labelStyle` | `diagram` | 1 |


<a id="class-BPMNPlane"></a>
### BPMNPlane

**Classe** · **Herda de:** [DI.Plane](di.md#class-Plane) · **Subclasses diretas:** —

**Papéis de associação (saída)**

| Papel | Destino | Mult. | Oposto | Mult. oposta | Propriedades |
| --- | --- | --- | --- | --- | --- |
| `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `plane` | 0..* | redefine `modelElement` |

**Papéis de associação (entrada)**

| Origem | Papel na origem | Papel inverso | Mult. inversa |
| --- | --- | --- | --- |
| [BPMNDiagram](#class-BPMNDiagram) | `plane` | `diagram` | 1 |


<a id="class-BPMNShape"></a>
### BPMNShape

**Classe** · **Herda de:** [DI.LabeledShape](di.md#class-LabeledShape) · **Subclasses diretas:** —

**Atributos próprios**

| Nome | Tipo | Mult. | Padrão | Propriedades |
| --- | --- | --- | --- | --- |
| `isHorizontal` | [DC.Boolean](dc.md#primitive-Boolean) | 0..1 | — | — |
| `isExpanded` | [DC.Boolean](dc.md#primitive-Boolean) | 0..1 | — | — |
| `isMarkerVisible` | [DC.Boolean](dc.md#primitive-Boolean) | 0..1 | — | — |
| `isMessageVisible` | [DC.Boolean](dc.md#primitive-Boolean) | 0..1 | — | — |
| `participantBandKind` | [ParticipantBandKind](#enum-ParticipantBandKind) | 0..1 | — | — |

**Papéis de associação (saída)**

| Papel | Destino | Mult. | Oposto | Mult. oposta | Propriedades |
| --- | --- | --- | --- | --- | --- |
| `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `shape` | 0..* | redefine `modelElement` |
| `label` | [BPMNLabel](#class-BPMNLabel) | 0..1 | `shape` | 0..1 | composto, subconjunto de `ownedLabel` |
| `choreographyActivityShape` | [BPMNShape](#class-BPMNShape) | 0..1 | `participantBandShape` | 1 | — |

**Papéis de associação (entrada)**

| Origem | Papel na origem | Papel inverso | Mult. inversa |
| --- | --- | --- | --- |
| [BPMNShape](#class-BPMNShape) | `choreographyActivityShape` | `participantBandShape` | 1 |


## Enumerações

<a id="enum-MessageVisibleKind"></a>
### MessageVisibleKind

_Enumeração._

| Literal | Valor XMI |
| --- | --- |
| `initiating` | — |
| `non_initiating` | — |

<a id="enum-ParticipantBandKind"></a>
### ParticipantBandKind

_Enumeração._

| Literal | Valor XMI |
| --- | --- |
| `top_initiating` | — |
| `middle_initiating` | — |
| `bottom_initiating` | — |
| `top_non_initiating` | — |
| `middle_non_initiating` | — |
| `bottom_non_initiating` | — |

## Associações

O arquivo tem **11 associações** e **11 extremidades navegáveis**. Nomes `A_*` são identificadores internos do CMOF; a direção indicada é a do papel navegável.

| Origem | Papel | Destino | Mult. | Papel oposto | Mult. oposta | Bidirecional | Associação |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [BPMNDiagram](#class-BPMNDiagram) | `labelStyle` | [BPMNLabelStyle](#class-BPMNLabelStyle) | 0..* | `diagram` | 1 | não | `A_labelStyle_diagram` |
| [BPMNDiagram](#class-BPMNDiagram) | `plane` | [BPMNPlane](#class-BPMNPlane) | 1 | `diagram` | 1 | não | `A_plane_diagram` |
| [BPMNEdge](#class-BPMNEdge) | `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `edge` | 0..* | não | `A_bpmnElement_edge` |
| [BPMNEdge](#class-BPMNEdge) | `label` | [BPMNLabel](#class-BPMNLabel) | 0..1 | `edge` | 0..1 | não | `A_label_edge` |
| [BPMNEdge](#class-BPMNEdge) | `sourceElement` | [DI.DiagramElement](di.md#class-DiagramElement) | 0..1 | `sourceEdge` | 0..* | não | `A_sourceElement_sourceEdge` |
| [BPMNEdge](#class-BPMNEdge) | `targetElement` | [DI.DiagramElement](di.md#class-DiagramElement) | 0..1 | `targetEdge` | 0..* | não | `A_targetElement_targetEdge` |
| [BPMNLabel](#class-BPMNLabel) | `labelStyle` | [BPMNLabelStyle](#class-BPMNLabelStyle) | 0..1 | `label` | 0..* | não | `A_labelStyle_label` |
| [BPMNPlane](#class-BPMNPlane) | `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `plane` | 0..* | não | `A_bpmnElement_plane` |
| [BPMNShape](#class-BPMNShape) | `bpmnElement` | [BPMN20.BaseElement](bpmn20.md#class-BaseElement) | 0..1 | `shape` | 0..* | não | `A_bpmnElement_shape` |
| [BPMNShape](#class-BPMNShape) | `choreographyActivityShape` | [BPMNShape](#class-BPMNShape) | 0..1 | `participantBandShape` | 1 | não | `A_choreographyActivityShape_participantBandShape` |
| [BPMNShape](#class-BPMNShape) | `label` | [BPMNLabel](#class-BPMNLabel) | 0..1 | `shape` | 0..1 | não | `A_label_shape` |
