Skip to content

support multiple groups having the same name when using PlantUML #450

@chrikoch

Description

@chrikoch

Description

I have to admit, this is somehow the same issue as previously raised in structurizr/export#57 When having multiple groups with the same name, they are not rendered correctly when using structurizr cli 2025.11.01 with PlantUML.

Example:

workspace {
	model {
		s1 = softwareSystem "S1" {
			b1 = group "backend" {
				c1b = container "C1 Backend"
			}
		}
		s2 = softwareSystem "S2" {
			b2 = group "backend" {
				c2b = container "C2 Backend"
			}
		}
	}
	
	views {
		container s2 test  {
			include c1b c2b
		}
	}
}

Result:

Image

I'm bringing this issue up here again, as is was temporarily fixed by this commit simonwfarrow@586a32b , which introduced unique groupIDs as aliases in the PlantUML file. So with structurizr cli 2025.05.28 the result is this (like I'd expect it to be):

Image

The problem might be affected by the set separator none used in the PlantUML file. This disables the namespace feature of PlantUML. From https://pdf.plantuml.net/PlantUML_Language_Reference_Guide_en.pdf :

You can disable automatic namespace creation using the command set separator none.

Probably, we don't want to use PlantUML namespaces separated by ., as this changes the rendering massively.

That's why I suggest to either

  • reintroduce the unique group aliases using the groupID when creating the puml file
  • or use set separator <some long and random string>, as this (in my tests) keeps PlantUMLs namespace behavior allowing multiple groups with the same name, but keeps the current rendering (as long as some long and random string is not used in a name of a group or container or ....

Priority

Low (I have no budget and there's no rush - please add this feature for free)

More information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions