WardleyDiagram Class

A Wardley map: the components of a value chain placed by their visibility to the user (vertically) and their evolution, from genesis to commodity (horizontally), with their dependencies, their movements and the forces on them (Mermaid wardley-beta). The coordinates are between 0 and 1.

public sealed class WardleyDiagram : Diagram
Inheritance
Diagram WardleyDiagram

Constructors

NameDescription
WardleyDiagram()Initializes a new instance of the WardleyDiagram class, without padding: the map is drawn on a canvas of WardleyDiagram.Width by WardleyDiagram.Height pixels, as in Mermaid.

WardleyDiagram()

WardleyDiagram.cs

Initializes a new instance of the WardleyDiagram class, without padding: the map is drawn on a canvas of WardleyDiagram.Width by WardleyDiagram.Height pixels, as in Mermaid.

public WardleyDiagram()

Properties

NameDescription
AcceleratorsGets the accelerators: the forces that speed up the evolution, drawn as arrows pointing right.
AnchorsGets the anchors: the users or the customers whose needs the value chain serves.
AnnotationsGets the numbered annotations.
AnnotationsPositionGets or sets the position of the top-left corner of the box that lists the texts of the annotations (Mermaid annotations [visibility, evolution]), or null to draw no box. The box stays inside the map.
AxisFontSizeGets or sets the size of the font of the names of the axes, in pixels. The stages are 2 pixels smaller. The default is 12.
ComponentsGets the components. A component that has the name of an anchor or of a previous component replaces its position.
DeacceleratorsGets the deaccelerators: the forces that slow down the evolution, drawn as arrows pointing left.
EvolvesGets the movements of the components toward a later evolution. The last movement of a component replaces the previous ones.
HeightGets or sets the height of the canvas, in pixels. The default is 600.
LabelFontSizeGets or sets the size of the font of the labels of the components and the links, in pixels. The default is 10.
LinksGets the links between the components. A link to a name that is not on the map is not drawn.
MapPaddingGets or sets the space between the edges of the canvas and the axes, in pixels. The default is 48.
NodeLabelOffsetGets or sets the distance between a component and its label, in pixels. The default is 8.
NodeRadiusGets or sets the radius of the circles of the components, in pixels. The default is 6.
NotesGets the notes.
PipelinesGets the pipelines: the variants of a component at different stages of evolution.
ShowGridGets or sets a value that indicates whether a grid divides the map in quarters.
StagesGets the stages of the evolution axis, from left to right (Mermaid evolution). When the list is empty, the stages are Genesis, Custom Built, Product and Commodity. Mermaid needs at least two stages.
WidthGets or sets the width of the canvas, in pixels. The default is 900.

Accelerators

WardleyDiagram.cs

Gets the accelerators: the forces that speed up the evolution, drawn as arrows pointing right.

public IList<WardleyAccelerator> Accelerators { get; }

Gets the anchors: the users or the customers whose needs the value chain serves.

public IList<WardleyAnchor> Anchors { get; }

Property value

IList<WardleyAnchor>

Gets the numbered annotations.

public IList<WardleyAnnotation> Annotations { get; }

AnnotationsPosition

WardleyDiagram.cs

Gets or sets the position of the top-left corner of the box that lists the texts of the annotations (Mermaid annotations [visibility, evolution]), or null to draw no box. The box stays inside the map.

public WardleyPosition? AnnotationsPosition { get; set; }

Property value

WardleyPosition?

AxisFontSize

WardleyDiagram.cs

Gets or sets the size of the font of the names of the axes, in pixels. The stages are 2 pixels smaller. The default is 12.

public double AxisFontSize { get; set; }

Property value

double

Gets the components. A component that has the name of an anchor or of a previous component replaces its position.

public IList<WardleyComponent> Components { get; }

Deaccelerators

WardleyDiagram.cs

Gets the deaccelerators: the forces that slow down the evolution, drawn as arrows pointing left.

public IList<WardleyAccelerator> Deaccelerators { get; }

Gets the movements of the components toward a later evolution. The last movement of a component replaces the previous ones.

public IList<WardleyEvolve> Evolves { get; }

Property value

IList<WardleyEvolve>

Gets or sets the height of the canvas, in pixels. The default is 600.

public double Height { get; set; }

Property value

double

LabelFontSize

WardleyDiagram.cs

Gets or sets the size of the font of the labels of the components and the links, in pixels. The default is 10.

public double LabelFontSize { get; set; }

Property value

double

Gets or sets the space between the edges of the canvas and the axes, in pixels. The default is 48.

public double MapPadding { get; set; }

Property value

double

NodeLabelOffset

WardleyDiagram.cs

Gets or sets the distance between a component and its label, in pixels. The default is 8.

public double NodeLabelOffset { get; set; }

Property value

double

Gets or sets the radius of the circles of the components, in pixels. The default is 6.

public double NodeRadius { get; set; }

Property value

double

Gets the notes.

public IList<WardleyNote> Notes { get; }

Property value

IList<WardleyNote>

Gets the pipelines: the variants of a component at different stages of evolution.

public IList<WardleyPipeline> Pipelines { get; }

Gets or sets a value that indicates whether a grid divides the map in quarters.

public bool ShowGrid { get; set; }

Property value

bool

Gets the stages of the evolution axis, from left to right (Mermaid evolution). When the list is empty, the stages are Genesis, Custom Built, Product and Commodity. Mermaid needs at least two stages.

public IList<WardleyStage> Stages { get; }

Property value

IList<WardleyStage>

Gets or sets the width of the canvas, in pixels. The default is 900.

public double Width { get; set; }

Property value

double

Methods

NameDescription
AddAccelerator(string, double, double)Adds an accelerator: a force that speeds up the evolution.
AddAnchor(string, double, double)Adds an anchor.
AddAnnotation(int, string, double, double)Adds a numbered annotation.
AddComponent(string, double, double)Adds a component.
AddDeaccelerator(string, double, double)Adds a deaccelerator: a force that slows down the evolution.
AddEvolve(string, double)Adds a movement of a component toward a later evolution.
AddLink(string, string)Adds a link.
AddNote(string, double, double)Adds a note.
AddPipeline(string)Adds a pipeline to a component.

AddAccelerator(string, double, double)

WardleyDiagram.cs

Adds an accelerator: a force that speeds up the evolution.

public WardleyAccelerator AddAccelerator(string name, double visibility, double evolution)

Parameters

name string
The name.
visibility double
The visibility of the arrow, between 0 (bottom) and 1 (top).
evolution double
The evolution of the left end of the arrow, between 0 (left) and 1 (right).

Returns

WardleyAccelerator The accelerator.

AddAnchor(string, double, double)

WardleyDiagram.cs

Adds an anchor.

public WardleyAnchor AddAnchor(string name, double visibility, double evolution)

Parameters

name string
The name of the anchor.
visibility double
The visibility, between 0 (bottom) and 1 (top).
evolution double
The evolution, between 0 (left) and 1 (right).

Returns

WardleyAnchor The anchor.

AddAnnotation(int, string, double, double)

WardleyDiagram.cs

Adds a numbered annotation.

public WardleyAnnotation AddAnnotation(int number, string text, double visibility, double evolution)

Parameters

number int
The number.
text string
The text, listed in the box of the annotations.
visibility double
The visibility of the circle, between 0 (bottom) and 1 (top).
evolution double
The evolution of the circle, between 0 (left) and 1 (right).

Returns

WardleyAnnotation The annotation.

AddComponent(string, double, double)

WardleyDiagram.cs

Adds a component.

public WardleyComponent AddComponent(string name, double visibility, double evolution)

Parameters

name string
The name of the component.
visibility double
The visibility, between 0 (bottom) and 1 (top).
evolution double
The evolution, between 0 (left) and 1 (right).

Returns

WardleyComponent The component.

AddDeaccelerator(string, double, double)

WardleyDiagram.cs

Adds a deaccelerator: a force that slows down the evolution.

public WardleyAccelerator AddDeaccelerator(string name, double visibility, double evolution)

Parameters

name string
The name.
visibility double
The visibility of the arrow, between 0 (bottom) and 1 (top).
evolution double
The evolution of the left end of the arrow, between 0 (left) and 1 (right).

Returns

WardleyAccelerator The deaccelerator.

AddEvolve(string, double)

WardleyDiagram.cs

Adds a movement of a component toward a later evolution.

public WardleyEvolve AddEvolve(string component, double evolution)

Parameters

component string
The name of the component.
evolution double
The evolution it moves to, between 0 (left) and 1 (right).

Returns

WardleyEvolve The movement.

AddLink(string, string)

WardleyDiagram.cs

Adds a link.

public WardleyLink AddLink(string source, string target)

Parameters

source string
The name of the component that depends on the target.
target string
The name of the component the source depends on.

Returns

WardleyLink The link.

AddNote(string, double, double)

WardleyDiagram.cs

Adds a note.

public WardleyNote AddNote(string text, double visibility, double evolution)

Parameters

text string
The text.
visibility double
The visibility of its start, between 0 (bottom) and 1 (top).
evolution double
The evolution of its start, between 0 (left) and 1 (right).

Returns

WardleyNote The note.

AddPipeline(string)

WardleyDiagram.cs

Adds a pipeline to a component.

public WardleyPipeline AddPipeline(string parent)

Parameters

parent string
The name of the parent component.

Returns

WardleyPipeline The pipeline.