SendPipline (aka DuckDB changes) (#1277)
* Dim/quack lets go (#1275) * Add model ingestion to sharp connectors * correct ingestion message * Progress * grasshopper * GH exception messages * fix GH * file names * revit file name * grasshopper file names * etabs file names * delete tests * tekla maybe * ingestion scope * bad boolean logic * Longer TimeSpan * wip upload pipe * 10s * passthrough ingestion id * happy hack time: prevent ingestion completion this is handled server-side in the processing logic. * add packfile send endpoint detection and routing Route to SendViaPackfile when the server supports the upload-signing endpoint (POST probe, 404 = unsupported) and a continuous traversal builder is registered. * Adds Continuous Traversal Builder Introduces a Continuous Traversal Builder to manage the conversion and processing of Revit elements within a Send Pipeline. --------- Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> * feat(api): DI Refactor for Duck DB + Gergo's API endpoint changes (#1282) * Di * undo accidental change * Feat (duck): dui ingestion updates post upload (#1295) * Pass optional ingestion id to DUI * Make ingestion id null for the SendViaIngestion, see the note :) * feat!: Duckdev progress reporitng (#1296) * Di * throwaway from laptop * Progress reporting * Use matching logger * Revit and revert rhino unpacker progress * more revertion * make pr even cleaner * and this one * fix build issues with other connectors * SDK nuget (#1299) * Bump to 3.14.0-alpha.2 * Feat(duck): grasshopper (#1297) * Duck x Grasshopper - who would win? * Fix registration for new builder * missing imports * return version id grasshopper * Align sync resource to sync --------- Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> * Bump SDK * feat(importer): rhino file importer changes for packfile (#1301) * rhino importer changes * correct deps * Bump SDK * Fix build issues * ditto * Fix build issue * Lower standards * Fix build * feat: duck for acad, civil, navis, tekla, etabs (#1300) * duck: acad, civil, etabs, tekla, navis and bump channels to 10.0.0 * notes * fix conflicts * more conflicts * Ready for testing * fix(duck): Fix send caching (#1302) * potential fix * undo-rhino chnages * fix xml comment * amended comment * revit * Fix build * Aligned converting message * fix: reoccurring object references * Bump sdk and resolve merge conflict issues * Merge pull request #1317 from specklesystems/jrm/importer-tracing feat(otel): Tracing and OTEL changes for Rhino importer * Fix revit linked model progress (#1312) * Revert otel packages * bump SDK * Trace unpacking groups * Align trace context nullability with app * Disable send caching in Navisworks * comments * Update FileimportPayload.cs * fix using directive --------- Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> * Fix merge conflicts --------- Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com> Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com> Co-authored-by: Björn Steinhagen <88777268+bjoernsteinhagen@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sebastian Witt <sebastian.witt@rwth-aachen.de>

Speckle | Sharp | Connectors
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.
.NET Desktop UI, Connectors, and Converters
Repo structure
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.
Other repos
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!
Developing and Debugging
Developing
It is recommended that you use Jetbrains Rider (version 2024.3 or greater) or Visual Studio 2022 (version 17.13 or greater) The project requires version 8.0.4xx of the .NET SDK. You can download the latest version from https://dotnet.microsoft.com/en-us/download/dotnet/8.0
From there you can open the main Speckle.Connectors.sln solution and build the project
For good development experience and environment setup, you the commands are avaible needed.
Formatting
We're using CSharpier to format our code. You can install Csharpier in a few ways:
- Install CSharpier as a local tool and reformat from CLI
dotnet tool install csharpier dotnet csharpier - Install CSharpier as a global tool and reformat from CLI
dotnet tool install csharpier -g dotnet csharpier - Install the CSharpier extension for Visual Studio or Rider.
For best DX, we recommend turning on CSharpier'sreformat on savesetting if you've installed it in your IDE.
Clean Locks
We're using npm 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.sln and Local.sln.
Run this command in CLI to delete all package.lock.json files before a restore:
.\build.ps1 clean-locks
Deep Clean
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
Deep Clean Local
This is for users of the Local.sln 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
Local development with SDK changes
If you'd like to make changes to the speckle-sharp-sdk side-by-side with changes to this repo's projects, use **Local.sln**.
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.slnwill modify all your package locks. Don't check these in! Revert with theclean-lockscommand or use the regular solution to revert once your changes are made.
Switching to SLNX
SLNX was introduced with .NET 9 (in May 2024), Visual Studio 17.13 and Rider 2024.3. The older SLNs being used remain for now but will be removed when .NET 10 is introduced to the repo. SLNXs specific to certain host apps are being generated from the main SLN to allow for faster developmenet.
https://devblogs.microsoft.com/dotnet/introducing-slnx-support-dotnet-cli/
https://devblogs.microsoft.com/visualstudio/new-simpler-solution-file-format/
Security and Licensing
Security
For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems.
License
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.