Goal
Send derived analysis results — QA flags, health checks, computed metadata — back to Speckle Server as a new published version.What you will build
A script that loads a model, runs property checks on each element, builds aCollection of DataObject results with qaStatus and missingProperties, and publishes a new version with Send2.
When to use this
Use this when you want analysis output visible in Speckle for the team — model health dashboards, QA pass/fail flags, or computed fields from Grasshopper or a console tool. Avoid this when a local CSV is enough — see Export model data to CSV.Recommended approach
- Load source model with
Receive2 - Analyse with
Flatten()and your rules - Build results as
DataObject/Collectiongraphs (not custom typed classes) Send2the result graph, thenclient.Version.Create- Use
Send2/Receive2— notSendPipelineunless you are building a connector
Complete example
Complete example
How it works
Analysis stays local until you send.Flatten() and your rules produce in-memory DataObject instances. Send2 uploads the graph; Version.Create attaches it to the model’s history.
Results use the same DataObject / Collection shapes connectors expect, so the viewer and other tools can consume them.
Common mistakes
Next steps
Export model data to CSV
Local reports without publishing
Compare two model versions
Diff between publishes
Load and publish model data
Send2 vs SendPipeline