Evotec

Project

PSWriteHTML

PSWriteHTML is an open-source PowerShell project with packages, release history, and working documentation.

Stars 995
Forks 114
Open issues 69
PowerShell Gallery downloads 7,436,513
Release v1.41.0
Language: PowerShell Updated: 2026-04-11

API Reference

Function

New-DiagramOptionsLayout

Namespace PSWriteHTML

Defines layout options for hierarchical diagrams.

Remarks

When enabling the hierarchical layout, it overrules some of the other options. The physics is set to the hierarchical repulsion solver and dynamic smooth edges are converted to static smooth edges.

Examples

Authored help example

EXAMPLE 1


An example
        

Common Parameters

This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.

For more information, see about_CommonParameters.

Syntax

New-DiagramOptionsLayout [-ClusterThreshold <Nullable`1>] [-HierarchicalBlockShifting <Nullable`1>] [-HierarchicalDirection <FromUpToDown|FromDownToUp|FromLeftToRight|FromRigthToLeft>] [-HierarchicalEdgeMinimization <Nullable`1>] [-HierarchicalEnabled <Nullable`1>] [-HierarchicalLevelSeparation <Nullable`1>] [-HierarchicalNodeSpacing <Nullable`1>] [-HierarchicalParentCentralization <Nullable`1>] [-HierarchicalShakeTowards <roots|leaves>] [-HierarchicalSortMethod <hubsize|directed>] [-HierarchicalTreeSpacing <Nullable`1>] [-ImprovedLayout <Nullable`1>] [-RandomSeed <Nullable`1>] [<CommonParameters>]
#
Parameter set: All Parameter Sets

Parameters

ClusterThreshold Nullable`1 optionalposition: 2pipeline: False
Cluster threshold to which improvedLayout applies.
HierarchicalBlockShifting Nullable`1 optionalposition: 7pipeline: False
Method for reducing whitespace. Can be used alone or together with edge minimization. Each node will check for whitespace and will shift it's branch along with it for as far as it can, respecting the nodeSpacing on any level. This is mainly for the initial layout. If you enable physics, the layout will be determined by the physics. This will greatly speed up the stabilization time though!
HierarchicalDirection String optionalposition: 10pipeline: Falsevalues: 4
The direction of the hierarchical layout. The available options are: UD, DU, LR, RL. To simplify: up-down, down-up, left-right, right-left.
Possible values: FromUpToDown, FromDownToUp, FromLeftToRight, FromRigthToLeft
HierarchicalEdgeMinimization Nullable`1 optionalposition: 8pipeline: False
Method for reducing whitespace. Can be used alone or together with block shifting. Enabling block shifting will usually speed up the layout process. Each node will try to move along its free axis to reduce the total length of it's edges. This is mainly for the initial layout. If you enable physics, the layout will be determined by the physics. This will greatly speed up the stabilization time though!
HierarchicalEnabled Nullable`1 optionalposition: 3pipeline: False
When true, the layout engine positions the nodes in a hierarchical fashion using default settings. Toggle the usage of the hierarchical layout system. If this option is not defined, it is set to true if any of the properties in this object are defined.
HierarchicalLevelSeparation Nullable`1 optionalposition: 4pipeline: False
The distance between the different levels.
HierarchicalNodeSpacing Nullable`1 optionalposition: 5pipeline: False
Minimum distance between nodes on the free axis. This is only for the initial layout. If you enable physics, the node distance there will be the effective node distance.
HierarchicalParentCentralization Nullable`1 optionalposition: 9pipeline: False
When true, the parents nodes will be centered again after the layout algorithm has been finished.
HierarchicalShakeTowards String optionalposition: 12pipeline: Falsevalues: 2
Controls whether in directed layout should all the roots be lined up at the top and their child nodes as close to their roots as possible (roots) or all the leaves lined up at the bottom and their parents as close to their children as possible (leaves, default).
Possible values: roots, leaves
HierarchicalSortMethod String optionalposition: 11pipeline: Falsevalues: 2
The algorithm used to ascertain the levels of the nodes based on the data. The possible options are: hubsize, directed. Hubsize takes the nodes with the most edges and puts them at the top. From that the rest of the hierarchy is evaluated. Directed adheres to the to and from data of the edges. A --> B so B is a level lower than A.
Possible values: hubsize, directed
HierarchicalTreeSpacing Nullable`1 optionalposition: 6pipeline: False
Distance between different trees (independent networks). This is only for the initial layout. If you enable physics, the repulsion model will denote the distance between the trees.
ImprovedLayout Nullable`1 optionalposition: 1pipeline: False
When enabled, the network will use the Kamada Kawai algorithm for initial layout. For networks larger than 100 nodes, clustering will be performed automatically to reduce the amount of nodes. This can greatly improve the stabilization times. If the network is very interconnected (no or few leaf nodes), this may not work and it will revert back to the old method. Performance will be improved in the future.
RandomSeed Nullable`1 optionalposition: 0pipeline: False
When NOT using the hierarchical layout, the nodes are randomly positioned initially. This means that the settled result is different every time. If you provide a random seed manually, the layout will be the same every time. Ideally you try with an undefined seed, reload until you are happy with the layout and use the getSeed() method to ascertain the seed.