speckle-sharp
speckle-sharp copied to clipboard
Feature: Commit Bundle Object
Description & motivation
A PR to build off of #1010
The idea of the Bundle object is to replicate the Commit Overlay feature used in the web viewer as a Base type object for designers + devs to utilize within their commits. The bundle object is similar to the Model or Container but instead of grouping all the objects it holds a list of references that point to a stream and a reference object.
A couple of use cases that sparked this idea:
- Custom tools / apps that are built on top of Speckle rely heavily on the standard
Objectconverter but need to link different model objects together in order to compose a specialized model scenario. This would allow for developers to rely on a standard Speckle object rather than standing up their own kit and converter for grouping together sets of different objects. - Designers tend to utilize Branches as a way to separate different focuses of modeling work, but there is a bump in the process when they try to layer in all the necessary commits or objects they need to visualize the model (sometimes I've seen this info written down on slack messages or gh panels 😱 ). The bundle could act as a simple object for designers to rely on when passing around settings for model compositions.
Changes:
Bundleobject added toObjectsBundleItemobject added toCoreProgressReportsupports collecting bundle data withBundleReferenceArgs- This logic would mainly impact the receive calls. I implemented a basic version of this in the
ReceiveSyncComponentin GH, which shows that this would be a pretty big change for conversion logic across all connectors.
To-do before merge:
- [ ] Connectors would need to check the
ProgressReportand converters would need to be adapted to support the new object type. - [ ] Review if this object should sit in the
Objects.Organizationnamespace
Screenshots:

Validation of changes:
Here is a tested prototype, working in C# and the GH connector
Checklist:
- [x] My pull request follows the guidelines in the Contributing guide?
- [x] My pull request does not duplicate any other open Pull Requests for the same update/change?
- [x] My commits are related to the pull request and do not amend unrelated code or documentation.
- [x] My code follows a similar style to existing code.
- [x] I have added appropriate tests.
- [ ] I have updated or added relevant documentation.
Hey @haitheredavid, thanks for the PR! We've just returned from our retreat (some people are still traveling actually), but we'll get to this asap :)
In the meantime, if you could please remove any whitespace changes and fix indentation where needed (we use just 2 spaces), it'll make review easier.
Cc @clairekuang as she was involved with the organization classes
Hey @haitheredavid! Just bumping this up since we never heard back from you ;) Let's find a spot to have a quick video-call about this ;)
@teocomi all cleaned up now :) No longer passing commits with Hide white space now
@AlanRynne I'm down to chat! sometime next week?
I'm closing this for now @haitheredavid. Hopefully the alternatives using the reference object worked for you!
If the ref object didn't do the trick for you, feel free to continue this discussion on the issue you opened, which will remain open for now ;)