Adam Hathcock 83efebfed9 Introduce Event aggregator (#417)
* Remove Dataflow usage

* format and remove dep

* merge fixes

* Fix serializer

* Add MainThreadContext

* add some main context detection

* add RevitMainThreadContext

* remove revit async?

* formatting

* use mainThreadContext

* Use more MainThreadContext

* some rearranging

* renaming

* Revit needs new run async

* merge fixes

* gather on worker, convert on main

* operations know threading but not host apps

* rhino options

* revit can receive

* autocad in progress

* need to yield for UI thread async

* revamp yield

* Found APIContext and removed it

* ArcGIS runs all workers on MCT thread

* Refactor ThreadContext and ArcGIS saving is always on a worker

* Revit threading is simplier?

* ArcGIS can not always go to the queued task

* format

* fix tekla compile errors

* Use EventAggregator to decouple exception handler and UI

* it's ALIVE

* regenerate locks

* Add Prism Evening to DUI

* clean up

* always run on background thread

* Clean up to be specific

* update etabs

* thread context

* autocad threading?

* merge fixes

* remove more async

* clean up

* fix build issues

* Do top level handling in event aggregator

* add some rhino events

* add more Rhino events and do Idle as OneTime with Id

* fix up rhino idle usages

* fmt

* can build agian

* Use valuetask

* fmt

* fix up some bridge execution to be sync

* cleanup

* add some non async paths for progress

* format

* remove needless selection

* Fixes

* Convert tekla

* selection event is used without idle

* Build fixes from merge

* Fix tests and clean up

* Add new events

* Properly dispose one time events

* Minor tekla updates
2025-01-21 14:20:01 +00:00
2025-01-15 13:18:36 +00:00
2024-07-31 18:05:00 +03:00
2025-01-21 14:20:01 +00:00
2024-09-24 11:57:36 +00:00
2025-01-21 14:20:01 +00:00
2024-07-04 11:56:34 +01:00
2024-07-04 11:56:34 +01:00
2024-07-04 12:29:17 +01:00
2024-07-09 09:50:47 +01:00
2024-07-22 17:15:04 +01:00
2024-08-13 08:03:18 +00:00
2025-01-15 12:01:45 +00:00


Speckle | Sharp | Connectors

Twitter Follow Community forum users website docs

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

Codecov

Repo structure

This repo is the home of our next-generation Speckle .NET projects:

Other repos

Make sure to also check and these other Speckle next generation repositories:

Developing and Debugging

Clone this repo. Each section has its own readme, so follow each readme for specific build and debug instructions.

Issues or questions? We encourage everyone interested to debug / hack / contribute / give feedback to this project.

A note on Accounts: The connectors themselves don't have features to manage your Speckle accounts; this functionality is delegated to the Speckle Manager desktop app. You can install it from here.

Local Builds

For good development experience and environment setup, run the commands below as 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's reformat on save setting 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

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.sln 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.

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.

S
Description
Speckle Connectors V3
Readme 29 MiB
Languages
C# 100%