Availability: Docs Title: BuildGraph Script Anatomy Crumbs: %ROOT%, Programming, Programming/Development, Programming/Development/BuildGraphs Description:This page introduces you to our BuildGraph scripting system. version: 4.13 parent:Programming/Development/BuildGraphs type:Overview tags:BuildGraph [VAR:TopicCompact] [OBJECT:TopicCompact] [PARAM:image] ![%Programming/Development/BuildGraphs/BuildGraphScriptAnatomy%](anatomy_topic.png) [/PARAM] [PARAM:icon] ![](%ROOT%/reference_icon.png)(convert:false) [/PARAM] [PARAM:title] %Programming/Development/BuildGraphs/BuildGraphScriptAnatomy:title% [/PARAM] [PARAM:description] %Programming/Development/BuildGraphs/BuildGraphScriptAnatomy:description% [/PARAM] [PARAM:path] [RELATIVE:Programming/Development/BuildGraphs/BuildGraphScriptAnatomy] [/PARAM] [/OBJECT] [/VAR] [TOC(start:1 end:4)] If you want to learn how to write your own **BuildGraph** scripts, it helps to know the various parts that go into making a Graph. Graphs are created with the following elements: * Tasks: Actions that are executed as part of a build process (compiling, cooking, etc.). * Nodes: A named sequence of ordered tasks that are executed to produce outputs. Before they can be executed, nodes may depend on other nodes executing their tasks first. * Agents: A group of nodes that are executed on the same machine (if running as part of a build system). Agents have no effect when building locally. * Triggers: Container for groups that should only be executed after manual intervention. * Aggregates: Groups of nodes and named outputs that can be referred to with a single name. Scripts typically make frequent use of properties for reusable or conditionally defined values. Properties are declared with the `` element, and are scoped to the point of their first declaration. Properties referenced with the `$(Property Name)` notation are valid within all attribute strings, and will be expanded when the script is read. Properties that can be supplied by the user on the command-line can be declared with the `