Goal
Export structured model data from a Speckle version to a CSV file you can open in Excel — door schedules, room lists, or custom property reports.What you will build
A script that loads a model, finds doors (or rooms), extracts name, level, type, and fire rating fromDataObject.properties, and writes door-schedule.csv.
When to use this
Use this when a BIM manager, architect, or engineer needs a spreadsheet report from published model data — schedules, QA lists, or quantity exports. This extends the pattern from Build your first model analysis tool.Recommended approach
- Load the latest version with
Receive2(see Automate with scripts) Flatten()the object graph once- Filter
DataObjectinstances byproperties["category"]or similar - Read BIM fields from
properties— not from typed C# classes - Write CSV with
StreamWriter, escaping commas in cell values
Complete example
Complete example
Room schedule variant
Filter oncategory containing Room and export name, area, and level:
Example
Property names vary by connector and host app. Inspect a sample object in the Speckle viewer or
use Find objects by property to
discover the keys your model uses.
How it works
Connector-published BIM data is stored asDataObject with semantics in properties. There are no typed Door or Room classes in Speckle Object Model v3 — you filter and read dictionaries.
Flatten() gives you every object in one pass. Build your CSV from that list rather than walking the hierarchy manually unless you need parent context.
Common mistakes
Next steps
Find objects by property
Filter, index, and QA checks
BIM data patterns
How connector data is structured
Send analysis results back
Publish QA results to Speckle