PlantUml define relative position of components


Plantuml Problem Overview

I'm actually trying to generate a component diagram with PlantUml. Is it possible to define the relative position of the different components? What I want to define is: ComponentB is left from ComponentA. ComponentC is below ComponentA, ...

Plantuml Solutions

Solution 1 - Plantuml

A typical approach is to mark a line as hidden.

One thing to keep in mind is that hidden is only supported for left-to-right ->, and top-to-bottom --> lines, so you need to place the left and right side accordingly (syntax X <[hidden]- Y doesn't seem to be supported).

class ComponentA

ComponentB -[hidden]> ComponentA
ComponentA -[hidden]-> ComponentC

enter image description here

See also for more positioning tips.

Solution 2 - Plantuml

You can follow guidelines from here: Layout of grouping component

In general when you write connections like -> you just have to know that there is special notation for right arrow, left arrow, bottom arrow, top arrow: This has special meaning for plantUml:


It means to place arrow on the left or right or up or down if possible.

Lets imagine this diagram:

node "My system" {
  [A] -> [B]
  [C] -> [B]

Not good placement

This looks horrible, you can fix this by directing PlanUml with arrow directions.

node "My system" {
  [A] -d-> [B]
  [C] -r-> [B]

Will generate this:

Good placement



All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMoerwaldView Question on Stackoverflow
Solution 1 - PlantumlPeter UhnakView Answer on Stackoverflow
Solution 2 - PlantumlBorislav MarkovView Answer on Stackoverflow