Skip to end of metadata
Go to start of metadata

Except for the root, every arKItect object has one or several parents. Consequently, every type (except the root type) must have at least one parent type. Accordingly, a type is always created "under" its parent type in the type hierarchy; the parent type must exist before we can create any children.

The root type is the only type always present in a project. Its name corresponds to the name of the project and you cannot remove it.

To add a new type (and a new rule) to a project, right-click on an existing type and choose Add Rule from the context menu:

After adding a rule by a mouse-click, a window with the Type Properties opens:

In the type properties window, you can define:

  • The name of the type, which must be unique. If this is not the case, you will actually add an existing type.
  • Whether the relation is a flow for this particular parent or not.
  • Whether the flow containers will be visible inside this parent type. If this is not the case, only the flow links will be visible. (This property is only relevant to flows.)
  • Whether the flow is bidirectional or not. (This property is only relevant to flows.)
  • Whether the type is flexible or not.

If a relation is defined as a flow, it cannot later be changed to an element relation. However, this restriction can be sidestepped by exploiting the fact that the copying of flow types removes the relation's definition as a flow.

Click on the More >> button to access additional parameters described on the Type Properties page.

Finally, click Add to add the new child type.


If you have clicked on More >>, the General tab is revealed. Modifying the text field next to Name in the tab will rename the selected type and if you click on Add this type will be added. By default, an existing object type (the first in alphabetical order) is defined as the selected type.


By default, the new rule is not is not included in any filter. If you want to use it, you have to make in visible in at least one projection.


In order to keep the rules coherent, adding a new type as the child of an existing type will be repeated in all the locations where the parent type is present. For instance, if you have a type called Sub-System that is a child of both System and the project root, adding a new type Component as the child of root/Subsystem shall also add Component as a child in the root/System/Subsystem branch.


In the same manner, when you have recursive types, the adding of child types to the parent type is automatically extended to the recursive type. In fact, the child types of the recursive type are not even visible since the rules of the parent always apply. Here you see a recursive System type.


  • No labels