A flow definition is a saved set of instructions that turns a geometry into new geometry and data. Its flow graph lays out those instructions as nodes joined by wires.
Every flow graph needs an input, an output, and wires connecting them.
Flows are directed acyclic graphs (DAG). A DAG is a graph where nodes are connected by directed (directional) edges that do not form a closed loop. DAGs represent the flow of data through a processing pipeline.
Data Processing
Data in Giraffe Flows always processes from left to right, starting with an input and flowing to an output.
Almost all flows include at least one instructional node, which changes the input geometry in some way before writing the output.
Parts of Every Flow
Every complete flow graph has:
One
read featureAt least one
write featuresWires connecting the
read featureto thewrite features
Most flows have:
At least one instructional node
Data primitive inputs for the instructional node(s)
Some flows have:
Two or more branches, creating multiple data streams from a single input
Additional geometric inputs, like
get raw featuresAdditional formatted inputs, like
get usageSpecial transform inputs which display as form fields in the properties palette, like
input parameterorapartment transform
Input and Output Features
The inputs and outputs have a 1:1 relationship with geometries in your project.
Read Feature
Read Feature feeds in the data for the original geometry the flow is assigned to.
It has a 1:1 relationship with a single piece of geometry, like this rectangle.
Read Feature can never reference more than one geometry.
The same flow definition can be applied to many geometries, and editing its flow graph updates all of them. Each geometry runs the flow graph on its own, so a flow graph never starts with more than one geometry.
Write Features
Write Features tells Giraffe where the flow "ends": the final output of the logic you've created in the flow. The output geometry is the transformed geometry result from the instructional node(s) in the flow.
For instance, this rectangle has been offset by 5 meters. It renders on the map because the graph ends with a write features node.
Don't forget to connect your instructional nodes' outputs to a write features node. Your flow results will not render on the map without being connected to a write features node.
Instructional Nodes
Instructional nodes transform geometry and/or data objects in some way.
To make the flow do something interesting, we need to add instructional nodes.
This is where the big data and geometric transformations happen!
Every instructional node will require one or more input values and will output one or more result values.
Instructional nodes do not necessarily have a 1:1 relationship with geometries or project data. Rather, they are processing data within the flow of information through your graph.
Branches
Flows allow for branching logic. A single input can feed values to multiple outputs. Sometimes, key values can be re-used in multiple branches.
All output connectors can support multiple wires leading to other nodes. This allows you to create branching logic from one input.






