Fault trees are used to conduct deductive failure analysis in which an undesired state of a system is analyzed using Boolean logic to combine a series of lower-level events.
This diagram uses a basic TreeModel and TreeLayout to layout nodes in a tree structure. The Diagram.nodeTemplate definition allows for text describing the undesirable states and, when necessary, a figure indicating an event/gate.
The visible property on some of the node template's Shapes is set based on whether a figure is chosen for the node in the Model.nodeDataArray. The nodes also display a TreeExpanderButton allowing for expanding/collapsing of subtrees. See the Intro page on Buttons for more GoJS button information.
Related to deductive failure analysis is root cause analysis, or RCA. See the fishbone layout extension page for a diagram format typically used in root cause analysis.