Skip to main content
This SDK is for people who want to automate AEC workflows with C# using Speckle. You do not need to be a professional software engineer to build useful tools with it. Likely readers include:
  • 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
Speckle.Sdk (SpeckleSharp) lets your C# code talk to Speckle Server — load published model versions, traverse walls and doors as structured objects, export CSV reports, and optionally send analysis results back. It works from console apps, Grasshopper scripts, notebooks, and desktop plugins.
New to Speckle SDKs? Start with the shared SDK introduction for platform concepts and how Python and .NET relate.
GitHub Repository
Compatible with Speckle Object Model v3
Speckle.Sdk and Speckle.Objects are reliable for production use, but the public API may not be wholly stable between releases. Pin a specific NuGet version and review release notes before upgrading.

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:
  1. Authenticate
  2. Choose a project and model
  3. Load a version
  4. Traverse objects
  5. Analyse or transform data
  6. Optionally send results back
The full mental model and diagram live in Core concepts.
The recommended approach for most AEC automation scripts: PAT via environment variable → Receive2 on the latest version → Flatten → analyse → optional Send2 + Version.Create.

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 notebooks

API reference

Method lookup — use after guides

What you can do with SpeckleSharp

GoalWhat you useLearn more
Load model data from Speckle ServerReceive2, client.VersionBuild your first model analysis tool
Find objects by propertyFlatten, filters on DataObject.propertiesFind objects by property
Export model data to CSVTraversal + StreamWriterExport model data to CSV
Send analysis results backSend2, Version.CreateSend analysis results back
Publish large host-app modelsSendPipeline, client.IngestionPublish large models (connectors) — advanced
Under the hood, SpeckleSharp exposes typed APIs (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

dotnet add package Speckle.Sdk
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

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.
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.
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
Last modified on July 10, 2026