# Contributes

A contributing element adds to the base element. Contributes provides a way for elements to contribute their properties into their base element without directly changing any of its existing properties, such as in an additive fashion. The effect, after contribution, is that the base element is logically replaced with an element that combines the attributes and associations of the contributing element with the base element.

Use the Content Variability section on the Description tab to make an element contribute to another element. Select Contributes as the Variability type and then select the base element to which this element will contribute. The base element must be the same type of element as the contributing element.

Any information you enter in the contributing element is added to the base element. Text fields in the contributing element are added at the end of the respective text fields in the base element.

Contribution only adds attributes and associations to the base. It never overrides or replaces any information from the base. In other words, if the base is allowed an association to exactly one other element and has this one already defined, it is not being replaced by a contributor's association.

Contribution rules:

- Attributes are appended except for identifying/naming attributes and non-string attributes such as boolean, date, etc.
- Outgoing to-one associations of the contributor are ignored if the base already has such an association or if the base element has more than one contributing element (i.e. it cannot be decided which contribution should be chose, then none will be chosen).
- Outgoing to-many associations are added to the base elements of a contribution.
- Incoming associations to the contributing element with a to-one constraint on the other association end are ignored if the base already has such an incoming association or if there is more than one contribution to consider for the base element.
- Other incoming associations to the contributing element are added to the base elements of a contribution.
- A base element of a contribution can have more than one contributor
- Contribution works transitively, i.e. a contribution element contributes its own contributors.

See Variability Associations to find the associations for each element type.
Related concepts
Variability
Extends
Replaces