IT:AD:plantuml:HowTo:Default Configuration (*)

Summary

Process

Common Setup

I found that in most cases an ultra-stripped down (no Circles), compact version is just what I need to get ideas moving:

!includeurl http://skysigal.com/_media/resources/configuration/plantuml/minimalist.txt

Which relies on the following which still shows Circles and Stereotypes, but just in a restrained pallet:

!includeurl http://skysigal.com/_media/resources/configuration/plantuml/default.txt

There's also the following, which in turn relies on the default one:

!includeurl http://skysigal.com/_media/resources/configuration/plantuml/archimate.txt

Common Reference Information

PlantUML Graph

<uml>
Class01 .. Class02:invalid in uml
Class03 <-- Class04:directed association
Class05 <.. Class06:dependency
IService01 ()-- Service01 : implements
IService02 <|-- Service01 : implements
ServiceBase <|.. Service02: realization
Service03 <|-- Service04: generalizes/inherits
Class10 "1" o-- Class11 : contains
Class12 "1" *-- "many" Class13 : aggregation
</uml>

Hidden Relationships

Use Hidden Tags to help layout diagrams:

Foo .[Hidden]. Bar

Diagram Notes

I prefer free standing notes..they always start small…and grow. Use a Relationship to link the note to the class you want:

note as N1
blah...
blah...
blah...
end note

Foo .. N1

Embed Images

If you have a publicly available, correctly sized image (like from here: http://skysigal.com/lib/exe/mediamanager.php?ns=resources%3Aimages) you can include it:

class Foo {
<img:http://plantuml.com/logoc.png>
}
class "Azure AD" {
<img:http://skysigal.com/_media/resources/images/64/cloud/azure_active_directory.png>
}

PlantUML Graph

Shading

class Bar1 #Wheat {
Highlighted
}


PlantUML Graph

Comments

It's not the most intuitive syntax, but a comment start with a '

'Some Comment
etc...

Direction

PlantUML has an interesting bug that if you put the arrows at the beginning of the line, it reverses the direction you requested using UP, DOWN, RIGHT, LEFT.

The recommendation is to keep arrow heads on the right if you don't want to do your head in having arrow heads on the left, but having to also have it say LEFT when you want RIGHT, and vice versa.

package 1 {
  class A1
  class B1
  A1 -RIGHT-> B1 : -RIGHT->

  class C1
  class D1
  C1 -LEFT-> D1 : -LEFT->

  class E1
  class F1
  E1 <-RIGHT- F1 : <-RIGHT-

  class G1
  class H1
  G1 <-LEFT- H1 : <-LEFT-

  class I1
  class J1
  I1 <-- J1 : <--

  A1 -[HIDDEN]DOWN- C1
  C1 -[HIDDEN]DOWN- E1
  E1 -[HIDDEN]DOWN- G1
  G1 -[HIDDEN]DOWN- I1
}



package 2 {
  class A2
  class B2
  A2 -RIGHT-|> B2 : -RIGHT-|>

  class C2
  class D2
  C2 -LEFT-|> D2 : -LEFT-|>

  class E2
  class F2
  E2 <|-RIGHT- F2 : <|-RIGHT-

  class G2
  class H2
  G2 <|-LEFT- H2 : <|-LEFT-

  class I2
  class J2
  I2 <|-- J2 : <|--

  A2 -[HIDDEN]DOWN- C2
  C2 -[HIDDEN]DOWN- E2
  E2 -[HIDDEN]DOWN- G2
  G2 -[HIDDEN]DOWN- I2
}

Produces:

PlantUML Graph