- Architects using Grasshopper C# nodes
- BIM managers automating QA checks
- Engineers extracting model data
- Computational designers building custom workflows
- AEC developers building plugins or integrations
- AI-assisted coders using Cursor, Claude, ChatGPT, or similar tools
New to Speckle SDKs? Start with the shared SDK introduction for platform concepts and how Python and .NET relate.
Compatible with Speckle Object Model v3
How most workflows run
Your code uses SpeckleSharp to talk to Speckle Server. Speckle Server stores projects, models, versions, and objects. In practice, most useful workflows follow this pattern:- Authenticate
- Choose a project and model
- Load a version
- Traverse objects
- Analyse or transform data
- Optionally send results back
The full mental model and diagram live in Core concepts.
Choose your path
Build your first model analysis tool
Load a model, count elements by category, export a CSV report — end to end
Use SpeckleSharp in Grasshopper C#
Custom analysis and computed metadata in a C# Script component
Automate with scripts
Copy-paste bootstrap and
Send2/Receive2 for console apps and notebooksAPI reference
Method lookup — use after guides
What you can do with SpeckleSharp
| Goal | What you use | Learn more |
|---|---|---|
| Load model data from Speckle Server | Receive2, client.Version | Build your first model analysis tool |
| Find objects by property | Flatten, filters on DataObject.properties | Find objects by property |
| Export model data to CSV | Traversal + StreamWriter | Export model data to CSV |
| Send analysis results back | Send2, Version.Create | Send analysis results back |
| Publish large host-app models | SendPipeline, client.Ingestion | Publish large models (connectors) — advanced |
IClient, IOperations, DataObject, Collection) — you meet them in the guides after you know the outcome you want.
API reference pages are for method lookup after you have a working script. Start with Build your first model analysis tool, not the API index.
Speckle.Sdk targets netstandard2.0, net8.0, and net10.0, so it runs in modern .NET apps and older host apps such as Revit on .NET Framework.
Common use cases
BIM QA checks
Verify required properties exist, find duplicate element IDs, flag missing fire ratings
Schedules and reports
Export room schedules, door lists, or quantity takeoffs by level or category to CSV
Grasshopper analysis
Derive metadata from geometry, combine Speckle model data with Grasshopper logic
Version comparison
Compare two model versions to see what was added, removed, or changed
One-time setup
Speckle.Sdk uses dependency injection internally so connectors can share a container with host apps. For scripts and notebooks: paste the bootstrap from Automate with scripts once — you do not need to study DI. Connectors and services: see Dependency injection (connectors).Installation
For target framework details and the geometry package, see Installation.
Next Steps
Build your first model analysis tool
End-to-end CSV report from a live model
Core concepts
Projects, models, versions, and the SpeckleSharp mental model
Installation
NuGet packages and bootstrap
FAQ
Where should I start?
Where should I start?
Build your first model analysis tool if you want a complete working script. Automate with scripts if you only need the bootstrap snippet. Full send/receive tour if you want to understand publishing from scratch.
Do I need to learn dependency injection?
Do I need to learn dependency injection?
No for scripts and notebooks — paste the bootstrap once and resolve
IOperations and IClientFactory. Read Dependency injection (connectors) only if you build a connector or share a DI container with a host app.Is the public API stable?
Is the public API stable?
Speckle.Sdk is reliable for production use, but the public API may change between releases. Pin an explicit NuGet version and review release notes before upgrading.
Getting Help
Community Forum
Ask questions and share knowledge
GitHub Issues
Report bugs and request features