Skip to main content

Evaluate Flow

Evaluate a flow

Written by Holly Conrad Smith

Use this to call one flow from inside another and use its result — for example, a master site-planning flow that hands geometry off to a shared "apply zoning setbacks" flow used across every project, instead of duplicating that logic in each one.

Different from Get Flow, which only fetches a flow's definition without running it — Evaluate Flow actually runs the flow and returns its output.

Category: General

Kind: Operation

Description: evaluate a flow

Inputs

Name

Abbreviation

Type

Access

Description

id

I

String

Item

the id of the flow to call

args

A

Object

Item

the arguments to pass to the flow

Outputs

Name

Abbreviation

Type

Access

Description

feature

F

Feature

Item

the result of the flow

A flow can't call itself — Evaluate Flow throws a "Recursion is not supported" error if the flow id resolves back to the flow the node itself lives in.

How do I know what to put in "args"?

"args" is matched to the flow you're calling by name, not automatically — there's no wizard that tells you the shape. Here's how to work it out:

  1. Open the flow you're calling and find every Input Parameter node in it. Each one has a configurable Name and type (String, Number, Vector, Color, Boolean, Feature, or Group) — that Name is exactly the key "args" needs to supply a value for.

  2. Build "args" with a Construct Object node, adding one key per Input Parameter name you want to control, with a value of the matching type.

  3. If the called flow reads the feature it's attached to (for example, via Read Feature), include a feature key in "args" too — Evaluate Flow clones args.feature and uses it as the geometry the called flow runs against.

  4. Anything you leave out of "args" just falls back to that Input Parameter node's own default value inside the called flow — you only need to supply the values you actually want to override.

If the flow you're calling doesn't expose the input you need yet, open it, right-click the node that has it, and choose "Publish Empty Inputs" — it auto-creates an Input Parameter node for every unconnected input, already named to match.

How to

  1. Add the Evaluate Flow node.

  2. Set "id" to the flow you want to run — get it from Get Flow Names or Get Flow ID.

  3. Wire in "args" with the input values that flow expects, using its Input Parameter names as the keys.

  4. The output is that flow's result, ready to use in the rest of your graph.

Did this answer your question?