Speckle is the first AEC data hub that connects with your favorite AEC tools. Speckle exists to overcome the challenges of working in a fragmented industry where communication, creative workflows, and the exchange of data are often hindered by siloed software and processes. It is here to make the industry better.
This repo is the home of our next-generation Speckle .NET projects:
- Desktop UI
DUI3: our next generation Desktop User Interface for all connectors.
- Speckle Connectors
Autocad Connector: for Autodesk AutoCAD and Civil3D 2022+Rhino Connector: for McNeel Rhino 7+Revit Connector: for Autodesk Revit 2022+Tekla Connector: for Trimble Tekla 2024
- Speckle Converters
Autocad Converter: for Autodesk AutoCAD 2022+Civil3d Converter: for Autodesk Civil3D 2022+Rhino Converter: for McNeel Rhino 7+Revit Converter: for Autodesk Revit 2023+Tekla Converter: for Trimble Tekla 2024
- SDK
SDK: Autofac module, connector utilities, and dependency injection.
Make sure to also check and ⭐️ these other Speckle next generation repositories:
speckle-sharp-sdk: our csharp SDK for next gen connectors and developmentspeckle-sketchup: Sketchup connectorspeckle-powerbi: PowerBi connector- and more connectors & tooling!
To build solutions in this repo, 10.0.2xx of the .NET SDK is required.
It is recommended to use Jetbrains Rider (version 2025.3 or greater) or Visual Studio 2026 (version 18.4 or greater)
From there you can open the main Speckle.Connectors.slnx solution and build the project.
For good development experience and environment setup, you the commands are available needed.
We're using CSharpier to format our code. You can use Csharpier in a few ways:
- Install CSharpier and reformat from CLI
dotnet tool restore dotnet csharpier format ./ - Install the CSharpier extension for Rider or Visual Studio
For best DX, we recommend turning on CSharpier'sreformat on savesetting if you've installed it in your IDE.
We're using package locks to store exact and versioned dependency trees. Occasionally you will need to clean your local package-lock files, eg when switching between Speckle.Connectors.slnx and Local.slnx.
Run this command in CLI to delete all package.lock.json files before a restore:
.\build.ps1 clean-locks
To make sure your local environment is ready for a clean build, run this command to delete all bin and obj directories and restore all projects:
.\build.ps1 deep-clean
This is for users of the Local.slnx solution:
To make sure your local environment is ready for a clean build, run this command to delete all bin and obj directories and restore all projects:
.\build.ps1 deep-clean-local
If you'd like to make changes to the speckle-sharp-sdk side-by-side with changes to this repo's projects, use **Local.slnx**.
This solution includes the Core and Objects projects from the speckle-sharp-sdk repo, and uses a new Configuration to create a build directory alongside Debug and Release.
Warning
Using Local.slnx will modify all your package locks. Don't check these in! Revert with the clean-locks command or use the regular solution to revert once your changes are made.
For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems.
Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via email.
