How can I nest elements that were defined somewhere else?

0 votes
asked Mar 6, 2022 in Question / help by Brenna

Let's say I want to create a deployment diagram. I have classes defined in another file that I've included in my deployment uml file. How can I nest these classes inside a component? I can link the component to these classes, but it would be easier to visualize the classes nested inside the component. For example, if I had a classes.uml file that looked like this:

@startuml
class class1 {
  String data
  void methods()
}
class class2 {
  String data
  void methods()
}
@enduml

Now, I have another file deployment.uml:

@startuml
!include classes.uml
package Package1 {
class2  <------ returns an error
}
@enduml

I'm guessing based on my experimentation and different things that nesting UML elements defined outside the package in this way is not possible?

1 Answer

0 votes
answered Mar 6, 2022 by Martin (8,360 points)

It works if you put the !include after the package definition:

@startuml
package Package1 {
class class2
}

class class1 {
  String data
  void methods()
}
class class2 {
  String data
  void methods()
}
@enduml

...