Use this file to discover all available pages before exploring further.
This workflow shows how to use SpecklePy with Speckle Server model datasets for analytics use cases.
This notebook currently targets Revit-oriented analytics paths (for example category
and proxy.level examples in EAV queries).
It expects versions published from Speckle Connectors >3.20.
You will:
Resolve a model version with SpecklePy.
Check whether analytics datasets are available for that version.
The tutorial assumes credentials and IDs come from environment variables rather than hardcoded values.
If you need to create a token first, use Building with PATs.
Older published versions created before automatic dataset generation may return
availability or download errors. In that case, run this tutorial on a newer published
version.
download_file(eav_url, eav_path)con.execute(f"ATTACH '{eav_path.as_posix()}' AS eav_pf (READ_ONLY)")category_counts = con.execute( """ SELECT value_text AS category, COUNT(*) AS count FROM eav_pf.properties WHERE path = 'category' AND value_text IS NOT NULL GROUP BY value_text ORDER BY count DESC LIMIT 25 """).fetchdf()level_counts = con.execute( """ SELECT value_text AS level_name, COUNT(*) AS count FROM eav_pf.properties WHERE path = 'proxy.level' AND value_text IS NOT NULL GROUP BY value_text ORDER BY count DESC LIMIT 25 """).fetchdf()
Check projectId, modelId, and versionId first. Then confirm the version has
objectKey in GraphQL metadata.
Why does this fail on older published versions?
Some historical versions were published before dataset auto-generation was enabled.
Those versions can return availability or download errors for this workflow. Use a
newer published version where datasets are generated.
403 or 401 on download
Verify token scope and project access. Use a PAT with read access to that project.
EAV dataset missing but main dataset exists
The version may not have completed EAV extraction yet. Retry later, or use only the
main dataset until EAV is ready.