Complete API surface of the Beep.Skia.FlowChart assembly: 44 public types with their documented members. Follow the family guide for usage patterns.

Types in this assembly

AnnotationNode (class)

Annotation node: dashed border rectangle for adding notes and comments to flowcharts. Can optionally attach to another node via a dotted connector line.

MemberKindDescription
string TextPropertyGets or sets the text.
bool ShowConnectorPropertyGets or sets the show connector.
AnnotationNode()MethodInitializes a new instance of the AnnotationNode class.

CardNode (class)

Card node: rectangle with cut corner for punch card or card-based storage. Legacy flowchart symbol for card-based data processing.

MemberKindDescription
string LabelPropertyGets or sets the label.
CardNode()MethodInitializes a new instance of the CardNode class.

CodeLanguage (enum)

Target languages for FlowchartCodeGenerator.

CollateNode (class)

Collate node: inverted trapezoid for sorting or collating data. Used to represent organizing or ordering operations.

MemberKindDescription
string LabelPropertyGets or sets the label.
CollateNode()MethodInitializes a new instance of the CollateNode class.

CommentNode (class)

Comment node: fold-over corner rectangle for additional notes or comments. Similar to AnnotationNode but with a distinctive folded corner appearance.

MemberKindDescription
string TextPropertyGets or sets the text.
CommentNode()MethodInitializes a new instance of the CommentNode class.

ConnectorDirection (enum)

ConnectorNode (class)

Off-page connector: pentagon shape for referencing flow on another page/diagram. Use matching ConnectorId to link From/To pairs.

MemberKindDescription
string ConnectorIdPropertyGets or sets the connector id.
ConnectorDirection DirectionPropertyGets or sets the direction.
ConnectorNode()MethodInitializes a new instance of the ConnectorNode class.

DataNode (class)

Data (Database) node: cylinder shape representing a data store.

MemberKindDescription
string LabelPropertyGets or sets the label.
DataNode()MethodInitializes a new instance of the DataNode class.

DecisionNode (class)

Decision node: diamond shape with Yes/No ports (left/right) plus optional top/bottom ports.

MemberKindDescription
string LabelPropertyGets or sets the label.
bool ShowTopBottomPortsPropertyGets or sets the show top bottom ports.
DecisionNode()MethodInitializes a new instance of the DecisionNode class.

DelayNode (class)

Delay node: half-circle or rounded shape indicating a pause/wait in the process.

MemberKindDescription
string LabelPropertyGets or sets the label.
string DurationPropertyGets or sets the duration.
DelayNode()MethodInitializes a new instance of the DelayNode class.

DirectAccessNode (class)

Direct Access Storage node: cylinder with flat bottom for random access storage (hard disk).

MemberKindDescription
string LabelPropertyGets or sets the label.
DirectAccessNode()MethodInitializes a new instance of the DirectAccessNode class.

DisplayNode (class)

Display node: rounded rectangle with curved bottom (like a monitor) for output display.

MemberKindDescription
string LabelPropertyGets or sets the label.
DisplayNode()MethodInitializes a new instance of the DisplayNode class.

DocumentNode (class)

Document: rectangle with a curved bottom edge and centered label.

MemberKindDescription
string LabelPropertyGets or sets the label.
bool OutPortsOnTopPropertyGets or sets the out ports on top.
DocumentNode()MethodInitializes a new instance of the DocumentNode class.

DoWhileLoopNode (class)

Do-While loop node: executes body at least once, then checks condition at end. Similar to WhileLoop but with condition checked after execution.

MemberKindDescription
string ConditionPropertyGets or sets the condition.
DoWhileLoopNode()MethodInitializes a new instance of the DoWhileLoopNode class.

ExtractNode (class)

Extract node: right-pointing triangle for data extraction operations. Used for selecting, filtering, or extracting specific data from a dataset.

MemberKindDescription
string LabelPropertyGets or sets the label.
ExtractNode()MethodInitializes a new instance of the ExtractNode class.

FlowchartCodeGenerator (class)

Generates structured code from a flowchart diagram. Conventions: for decision nodes the first output port is the true branch and the second is the false branch; for loop nodes the first output port is the loop body and the second is the exit.

MemberKindDescription
string Generate(DrawingManager manager, CodeLanguage language = CodeLanguage.Pseudocode)MethodGenerates code for the flowchart held by a drawing manager.
string Generate(IReadOnlyList<SkiaComponent> components, IReadOnlyList<IConnectionLine> lines, CodeLanguage language = CodeLanguage.Pseudocode)MethodGenerates code for the given components and connection lines.

FlowchartControl (class)

Base class for Flowchart nodes providing consistent sizing and port layout helpers.

MemberKindDescription
SKColor? CustomFillColorPropertyOptional custom fill color (overrides default node color). Set to null to use default.
SKColor? CustomStrokeColorPropertyOptional custom stroke color (overrides default border color). Set to null to use default.
SKColor? CustomTextColorPropertyOptional custom text color (overrides default text color). Set to null to use default.
int InPortCountPropertyGets or sets the in port count.
int OutPortCountPropertyGets or sets the out port count.

FlowchartSimulator (class)

Step-through execution of a flowchart. The simulator walks connection lines in port order; when a node has multiple outgoing edges (decisions, loops, forks) the optional BranchSelector chooses the branch (defaults to the first edge).

MemberKindDescription
SkiaComponent? CurrentNodePropertyGets the node the simulation is currently on.
bool IsFinishedPropertyGets a value indicating whether the simulation reached a terminal node.
int StepCountPropertyGets the number of steps executed since the last reset.
List<string> TracePropertyGets the execution trace (node labels in visit order).
Func<SkiaComponent, IReadOnlyList<SimulationEdge>, SimulationEdge?>? BranchSelectorPropertyOptional branch selector for nodes with multiple outgoing edges. Return null to fall back to the first edge.
event EventHandler<SimulationStepEventArgs>? SteppedEventRaised after each step.
void Reset(IReadOnlyList<SkiaComponent> components, IReadOnlyList<IConnectionLine> lines)MethodResets the simulation to the entry node of the given diagram.
bool Step()MethodAdvances the simulation by one node. Returns false when already finished.
bool Run(int maxSteps = 1000)MethodRuns until finished or the step cap is reached. True when the simulation finished naturally; false when capped.

ForkNode (class)

Fork node (parallel split): thick vertical bar with single input and multiple parallel outputs. Represents splitting flow into concurrent/parallel paths.

MemberKindDescription
int ParallelPathsPropertyGets or sets the parallel paths.
ForkNode()MethodInitializes a new instance of the ForkNode class.

ForLoopNode (class)

For loop node: rectangle with loop icon and condition text. Represents iterative processing with init, condition, and increment.

MemberKindDescription
string LoopVariablePropertyGets or sets the loop variable.
string InitExpressionPropertyGets or sets the init expression.
string ConditionPropertyGets or sets the condition.
string IncrementPropertyGets or sets the increment.
ForLoopNode()MethodInitializes a new instance of the ForLoopNode class.

InputOutputNode (class)

Input/Output (parallelogram) node with slanted sides and centered label.

MemberKindDescription
string LabelPropertyGets or sets the label.
InputOutputNode()MethodInitializes a new instance of the InputOutputNode class.

InternalStorageNode (class)

Internal Storage node: rectangle with vertical lines for internal memory/storage. Used for data structures in memory (arrays, buffers, caches).

MemberKindDescription
string LabelPropertyGets or sets the label.
InternalStorageNode()MethodInitializes a new instance of the InternalStorageNode class.

JoinNode (class)

Join node (parallel synchronization): thick vertical bar with multiple inputs and single output. Represents waiting for all parallel paths to complete before continuing.

MemberKindDescription
int WaitCountPropertyGets or sets the wait count.
JoinNode()MethodInitializes a new instance of the JoinNode class.

LoopLimitNode (class)

Loop Limit node: hexagon with horizontal orientation for loop boundaries. Used to mark the beginning or end of a loop structure.

MemberKindDescription
string LabelPropertyGets or sets the label.
LoopLimitType LimitTypePropertyGets or sets the limit type.
LoopLimitNode()MethodInitializes a new instance of the LoopLimitNode class.

LoopLimitType (enum)

ManualInputNode (class)

Manual Input node: parallelogram with top slanted (wider at top) for manual data entry.

MemberKindDescription
string LabelPropertyGets or sets the label.
ManualInputNode()MethodInitializes a new instance of the ManualInputNode class.

ManualOperationNode (class)

Manual operation node: trapezoid shape (top wider than bottom) for human-performed tasks.

MemberKindDescription
string LabelPropertyGets or sets the label.
ManualOperationNode()MethodInitializes a new instance of the ManualOperationNode class.

MergeNode (class)

Merge node: inverted triangle for combining multiple flow paths (no synchronization logic).

MemberKindDescription
string LabelPropertyGets or sets the label.
MergeNode()MethodInitializes a new instance of the MergeNode class.

MultiDocumentNode (class)

Multi-Document node: stacked documents for multiple document output. Visual: Multiple overlapping document shapes with curved bottoms.

MemberKindDescription
string LabelPropertyGets or sets the label.
MultiDocumentNode()MethodInitializes a new instance of the MultiDocumentNode class.

OffPageReferenceNode (class)

Off-Page Reference node: upside-down house shape (pentagon) for page references. Alternative to ConnectorNode with a different visual style.

MemberKindDescription
string ReferenceIdPropertyGets or sets the reference id.
string PageNumberPropertyGets or sets the page number.
OffPageReferenceNode()MethodInitializes a new instance of the OffPageReferenceNode class.

OrNode (class)

Or node: logic gate shape for conditional OR operations. Circle with OR symbol. Used when any input condition can proceed to the next step.

MemberKindDescription
string LabelPropertyGets or sets the label.
OrNode()MethodInitializes a new instance of the OrNode class.

PredefinedProcessNode (class)

Predefined Process: rectangle with vertical double-struck edges and centered label.

MemberKindDescription
string LabelPropertyGets or sets the label.
PredefinedProcessNode()MethodInitializes a new instance of the PredefinedProcessNode class.

PreparationNode (class)

Preparation node: horizontal hexagon for initialization/setup steps. Commonly used for variable declarations, configuration, or setup tasks.

MemberKindDescription
string LabelPropertyGets or sets the label.
PreparationNode()MethodInitializes a new instance of the PreparationNode class.

ProcessNode (class)

Process node: rectangle with optional rounded corners and centered label.

MemberKindDescription
string LabelPropertyGets or sets the label.
bool ShowTopBottomPortsPropertyGets or sets the show top bottom ports.
ProcessNode()MethodInitializes a new instance of the ProcessNode class.

SequentialAccessNode (class)

Sequential Access Storage node: elongated oval for sequential access storage devices. Used for devices like magnetic tape where data must be accessed sequentially.

MemberKindDescription
string LabelPropertyGets or sets the label.
SequentialAccessNode()MethodInitializes a new instance of the SequentialAccessNode class.

SimulationEdge (class)

A candidate transition from the current simulation node.

MemberKindDescription
IConnectionLine? LinePropertyGets or sets the line.
SkiaComponent? TargetPropertyGets or sets the target.
int PortIndexPropertyGets or sets the port index.

SimulationStepEventArgs (class)

Event args raised after each simulation step.

MemberKindDescription
SkiaComponent? NodePropertyGets or sets the node.
IReadOnlyList<SimulationEdge> OutgoingPropertyGets or sets the outgoing.
bool IsFinishedPropertyGets or sets the is finished.

SortNode (class)

Sort node: two overlapping triangles for sorting operations.

MemberKindDescription
string LabelPropertyGets or sets the label.
string SortKeyPropertyGets or sets the sort key.
SortNode()MethodInitializes a new instance of the SortNode class.

StartEndNode (class)

Start/End node (terminator): pill-shaped rounded rectangle with a label.

MemberKindDescription
string LabelPropertyGets or sets the label.
bool ShowTopBottomPortsPropertyGets or sets the show top bottom ports.
StartEndNode()MethodInitializes a new instance of the StartEndNode class.

StoredDataNode (class)

Stored data node: parallelogram tilted to the right for data storage (tape, disk). Different from InputOutput which tilts both sides.

MemberKindDescription
string LabelPropertyGets or sets the label.
StoredDataNode()MethodInitializes a new instance of the StoredDataNode class.

SubProcessNode (class)

Sub-process node: rectangle with double border for calling/referencing another process. Can be collapsed (shows + icon) or expanded to show nested details.

MemberKindDescription
string LabelPropertyGets or sets the label.
string SubProcessIdPropertyGets or sets the sub process id.
bool IsExpandedPropertyGets or sets the is expanded.
SubProcessNode()MethodInitializes a new instance of the SubProcessNode class.

SummingJunctionNode (class)

Summing Junction node: X in a circle for combining/merging multiple inputs. Different from OR gate - represents mathematical summation or aggregation.

MemberKindDescription
string LabelPropertyGets or sets the label.
SummingJunctionNode()MethodInitializes a new instance of the SummingJunctionNode class.

TapeNode (class)

Tape node: rounded bottom semicircle shape for magnetic tape storage. Legacy flowchart symbol for sequential tape-based storage.

MemberKindDescription
string LabelPropertyGets or sets the label.
TapeNode()MethodInitializes a new instance of the TapeNode class.

WhileLoopNode (class)

While loop node: hexagon (vertical orientation) with condition text. Represents loop that executes while condition is true.

MemberKindDescription
string ConditionPropertyGets or sets the condition.
WhileLoopNode()MethodInitializes a new instance of the WhileLoopNode class.