Search code examples
plantuml

How is a plantuml diagram with nested boxes oriented vertically?


I am trying to made a diagram that grow vertically (with the trick of hidden arrows to down), but plantuml is still drawing horizontally.

This is a tiny example of diagram

@startuml
skinparam linetype ortho
top to bottom direction

rectangle aaa {
  rectangle aaa111
}

rectangle bbb {
  rectangle ccc {
    rectangle ccc111
    rectangle ccc222
    rectangle ccc333
    
    aaa111 -right-> ccc111

    ccc111 -[hidden]-> ccc222
    ccc222 -[hidden]-> ccc333
  }
  rectangle ddd {
    rectangle ddd111
    rectangle ddd222

    ddd111 -[hidden]-> ddd222
  }
  rectangle eee {
    rectangle eee111
    rectangle eee222

    eee111 -[hidden]-> eee222
  }

  ccc -[hidden]-> ddd
  ddd -[hidden]-> eee
}
@enduml

The example tiny diagram

And this must be like:

aaa -> ccc
  
       ddd

       eee

Solution

  • It's not logical, but left to right direction will do it:

    @startuml
    skinparam linetype ortho
    'top to bottom direction
    left to right direction
    
    rectangle aaa {
      rectangle aaa111
    }
    
    rectangle bbb {
      rectangle ccc {
        rectangle ccc111
        rectangle ccc222
        rectangle ccc333
        
        aaa111 --> ccc111
    
        ccc111 -[hidden]left-> ccc222
        ccc222 -[hidden]left-> ccc333
      }
      rectangle ddd {
        rectangle ddd111
        rectangle ddd222
    
        ddd111 -[hidden]left-> ddd222
      }
      rectangle eee {
        rectangle eee111
        rectangle eee222
    
        eee111 -[hidden]left-> eee222
      }
    
    '  ccc -[hidden]-> ddd
    '  ddd -[hidden]-> eee
    }
    @enduml
    

    PlantUML image