Sequential Pipeline
Chain multiple operations in order within a single engineering tool session so that each step sees the previous step's changes.
When to use
Use a sequential pipeline when you need to run several functions on the same model in a defined order — for example, update parameters and then extract geometry from the modified state. Because all steps execute inside a single tool session, changes are carried forward automatically and the model file is transferred and opened only once.
How it works
The sequential pipeline is implemented as a module function (@istari:batch_execute) built into supported integrations. The agent opens the model once, runs each step in order within that session, and aggregates all outputs into the job result. This avoids the overhead of uploading, downloading, and re-opening the model between steps.
| Supported integration |
|---|
dassault_3dexperience |
ptc_creo_parametric |
siemens_nx |
Input structure
| Field | Type | Description |
|---|---|---|
func_list | Array of objects | Ordered list of steps to execute |
func_list[].name | String | Canonical function name (e.g. @istari:extract) |
func_list[].input | Object | Step-specific parameters. Use {} when the step requires no extra parameters |
Behaviour
- Steps run in order. Model state carries forward — modifications from step N are visible to step N+1.
- The model file is provided to the pipeline; individual steps do not need it in their
input. - Step input values are bare (e.g.
"output_format": "step"). No{"type": "parameter", "value": ...}wrapper is needed. - All step outputs are aggregated into a flat list returned by the job.
Examples
Update a wing length parameter and then extract from the modified 3DExperience model, all in one job:
job = client.add_job(
model_id=model.id,
function="@istari:batch_execute",
tool_name="dassault_3dexperience",
tool_version="2023x",
operating_system="Windows 11",
parameters={
"func_list": [
{"name": "@istari:update_parameters", "input": {"parameters": {"wing_length": "20m"}}},
{"name": "@istari:extract", "input": {}},
]
},
)
Run all extraction functions on a Siemens NX model in a single session:
job = client.add_job(
model_id=model.id,
function="@istari:batch_execute",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11",
parameters={
"func_list": [
{"name": "@istari:extract", "input": {}},
{"name": "@istari:extract_geometry", "input": {"output_format": "step"}},
{"name": "@istari:extract_parameters_full", "input": {}},
{"name": "@istari:update_parameters", "input": {
"parameters": {"CogsCount": "15", "HoleDiam": "200"},
}},
],
},
)
The parameters value can be stored in a separate JSON file for readability. Pass the file path via parameters_file instead of inline parameters.
Composing with other patterns
A sequential pipeline can be used as the operation inside a Parameter study, letting you run a multi-step workflow for each set of variable values. See Parameter study — Composing patterns for an example.