Table of Contents

Namespace C4.Net

Classes

AbstractImpliedRelationshipsStrategy

Provides shared guard logic for implied-relationship strategies.

AbstractWorkspace

Provides the shared metadata and configuration carried by all workspace representations.

Animation

Describes a single animation step for a static or deployment view.

AssemblyInfo

Placeholder type that anchors the assembly namespace for assembly-level attributes.

AutomaticLayout

Captures the automatic layout settings applied to a view.

Branding

Defines workspace-wide branding such as logos and fonts.

CodeElement

Represents a code element, such as a class or interface, that is part of the implementation of a component.

Color

Provides helpers for validating color values used by the view layer.

ColorPair

Represents a validated background and foreground color combination.

Component

A component (a grouping of related functionality behind an interface that runs inside a container).

ComponentView

A component view that shows components inside a container and their direct neighbours.

Container

A container (e.g. an application or data store).

ContainerInstance

Represents a deployment instance of a Container, which can be added to a DeploymentNode.

ContainerView

A container view.

CreateImpliedRelationshipsUnlessAnyRelationshipExistsStrategy

This strategy creates implied relationships between all valid combinations of the parent elements, unless any relationship already exists between them.

CreateImpliedRelationshipsUnlessSameRelationshipExistsStrategy

This strategy creates implied relationships between all valid combinations of the parent elements, unless the same relationship already exists between them.

DefaultImpliedRelationshipsStrategy

The default strategy is to NOT create implied relationships.

DefaultLayoutMergeStrategy

A default implementation of a LayoutMergeStrategy that:

  • Sets the paper size (if not set).
  • Copies element x,y positions.
  • Copies relationship vertices.

Elements are matched using the following properties, in order:

  • the element's full canonical name
  • the element's name
  • the element's description
DeploymentElement

This is the superclass for model elements that describe deployment nodes, infrastructure nodes, and container instances.

DeploymentNode

Represents a deployment node, which is something like:

  • Physical infrastructure (e.g. a physical server or device)
  • Virtualised infrastructure (e.g. IaaS, PaaS, a virtual machine)
  • Containerised infrastructure (e.g. a Docker container)
  • Database server
  • Java EE web/application server
  • Microsoft IIS
  • etc
DeploymentView

A deployment view, used to show the mapping of container instances to deployment nodes.

Dimensions

Describes an explicit view size in pixels.

DynamicView

A dynamic view, used to describe behaviour between static elements at runtime.

Element

This is the superclass for all model elements.

ElementNotPermittedInViewException

The exception thrown when a view rejects an element type or scope.

ElementStyle

A definition of an element style.

ElementView

An instance of a model element (Person, Software System, Container or Component) in a View.

Enterprise

Represents the enterprise boundary that owns the software systems in a model.

FilteredView

Represents a view on top of a view, which can be used to include or exclude specific elements.

Font

Describes an external font resource used by branding.

GroupableElement

Extends an element with optional grouping metadata used by views and renderers.

HttpHealthCheck

Represents a HTTP-based health check.

InfrastructureNode

Represents an infrastructure node, which is something like:

  • Load balancer
  • Firewall
  • DNS service
  • etc
Model

A software architecture model.

ModelItem

Provides common metadata shared by elements and relationships in the model.

PaperSize

Represents a named paper or slide size that can be assigned to a view.

Person

A person who uses a software system.

Perspective

Represents an architectural perspective, that can be applied to elements and relationships. See https://www.viewpoints-and-perspectives.info/home/perspectives/ for more details of this concept

Relationship

A relationship between two elements.

RelationshipStyle

A definition of a relationship style.

RelationshipView

An instance of a model relationship in a View.

SequentialIntegerIdGeneratorStrategy

An ID generator that simply uses a sequential number when generating IDs for model elements and relationships. This is the default ID generator.

SoftwareSystem

A software system.

SoftwareSystemInstance

Represents a deployment instance of a Software System, which can be added to a DeploymentNode.

StaticStructureElement

This is the superclass for model elements that describe the static structure of a software system, namely Person, SoftwareSystem, Container and Component.

StaticStructureElementInstance

Represents a deployment instance of a SoftwareSystem or a Container, which can be added to a DeploymentNode.

StaticView

Serves as the base type for views that render a static structural slice of the model.

Styles

The styles associated with this set of views.

SystemContextView

A system context view.

SystemLandscapeView

Represents an System Landscape view that sits above the C4 model. This is the "big picture" view, showing the software systems and people in an given environment. The permitted elements in this view are software systems and people.

Tags

Defines the built-in tags applied to elements and relationships.

Vertex

Represents the X and Y coordinate of a bend in a relationship line.

View

Defines the shared metadata, elements, and relationships for a rendered architecture view.

ViewConfiguration

The configuration associated with a set of views.

ViewSet

The set of views onto a software architecture model.

Workspace

Represents a Structurizr workspace, which is a wrapper for a software architecture model and the associated views.

WorkspaceUtils

Provides convenience helpers for loading, saving, and printing workspace JSON.

Interfaces

IImpliedRelationshipsStrategy

Defines the contract for strategies that create implied relationships after an explicit relationship is added.

IdGenerator

Defines how identifiers are generated and tracked for model elements and relationships.

LayoutMergeStrategy

A pluggable strategy that can be used to copy layout information from one version of a view to another.

Enums

Border

Defines the supported border styles for rendered elements.

CodeElementRole

Identifies how a code element contributes to a component implementation.

FilterMode

Determines whether a filtered view keeps or hides matching tags.

InteractionStyle

Describes whether a relationship happens synchronously or asynchronously.

Location

Describes whether an element belongs inside or outside the enterprise boundary.

Orientation

Identifies the orientation of a paper size.

RankDirection

Specifies the direction used by automatic layout to arrange ranks.

Routing

Defines the supported routing styles for relationship lines.

Shape

Defines the supported element shapes available to renderers.

ViewSortOrder

Controls how a view set orders views when presented to consumers.