NEW Connectors Open Beta

Disclaimer: This post contains technical content and is primarily meant for the developers and hackers out there!

We’ve been hard at work revamping our connector internals, and we’re ready to do a self-serve demo! If you’ve followed the activity in the repos, you’ve probably noticed a flurry of “DUI3” related work. What does this stand for?

POLL: What does DUI stand for?

  • Driving Under the Influence :beers:
  • Desktop User Interface
  • Both

0 voters

This Desktop User Interface is used in almost all our connectors, and we’ve refreshed not just the UI, but the whole underlying patterns and foundations upon which connector development rests with two goals in mind:

  • Shipping faster: coupled with the UI, we’ll soon be able to make daily independent releases of connectors on a need by basis–we don’t want you waiting for a new release for a simple bug fix or new feature added.
  • Shipping better: we’re now shaping exciting new features that will make connectors more approachable to new specklers, and hopefully make the old speckler’s life easier, while also attuning to our new web app and the great rename.

[Spoiler] In full transparency, coupled with the changes to the web app, this is Speckle 3.0 in disguise.

Warning⚠️: this is a very early release - nothing more than an alpha and it is not intended for any sort of mass consumption - it’s just a very early preview! There is a lot missing from every direction - many yet unported conversions, many yet unsupported host applications, missing features and settings, etc. so treat it as an early sketch of the direction in which we’re going!

Limitations:

  • DUI3 connector builds currently exist for Rhino 7, Revit 2023, Autocad 2023, SketchUp 2021-24 (Win/Mac) and ArcGIS Pro 3.
  • :warning::warning:You will need to uninstall all existing connectors as currently we don’t support running them side by side.:warning::warning:

Ready to try it out? We want to hear what you think about the new features and user experience! Give it a spin and drop us a comment with your feedback, thoughts, questions, and grievances :wink:

Here are the zips for each of the applications mentioned above. If you’re with us so far, you probably already know where you need to unzip and unblock them for each host application. If you don’t, then maybe you should not install them at all - you can compromise your local setup and standard Speckle will potentially stop working!

For the curious, here’s an incomplete list of changes:

:man_technologist: .NET side of things:

  • Connector architecture is now standardizing on a DI pattern that should make the development of new connectors, by us or by you, easier with less boilerplate.
  • Converter architecture has been revamped - we’re moving away from kits as you knew them towards a DI pattern that will allow object versioning.
  • Based on the above, object models will be shipped together with the connector - massively simplifying third party development and distribution of connectors.
  • Improved serializer that can attach given ObjectReferences to tree, allowing for conversion caching on send.
  • The one traversal to rule them all has been slightly changed - with a big impact on how we think about things.

:paintbrush: UI/UX side of things:

  • We’re back to using a web-based UI (CefSharp in Revit, Webview2 everywhere else)
  • Overhauled the overall flow of sending and receiving data, following through from the great rename.
  • Introduced change tracking on send, so you are aware when changes you made to the model in the host app affect any sent data
  • Notifications are now bound to model cards, as per their relevance.
  • Account switching & co. has been rethought and gotten out of the way as much as possible.

There will be many more upcoming breaking changes, not just the ones listed below. We also reserve the right to “undo” or rollback many of the things listed above! Here’s an incomplete preview of what we expect to come next:

  • Blocks and instances will change the way they’re structured to be more meaningful
  • Hosted elements will most likely no longer be hosted in their parents
  • Data structuring will be more rigorous and centralized around collections

DOWNLOAD LINK📥: 3.0.0-alpha.1 – Google Drive

Installing Instructions

Rhino 7

Installing

  1. Download the latest release from XXXXX
  2. If you have our stable connector installed:
    • Open Manager for Speckle
    • Uninstall the Rhino/Grasshopper connector and any other connectors in your local machine. (This is to ensure your local setup is clean.)
  3. Load the new alpha plugin in Rhino:
    • Decompress the zip file in a folder of your choice. (When in doubt, a good place to put it is the default Rhino plugin folder, but any location would do.)
    • Locate the file called Speckle.Connectors.Rhino7.rhp
      dui3-alpha-rename-needed-announcement-draft-forum-post-google-docs (1)
    • Open Rhino 7
    • Drag the .rhp file into the Rhino viewport, this will cause Rhino to load the plugin. (You should see a message in the console confirming it was loaded.)
      dui3-alpha-rename-needed-announcement-draft-forum-post-google-docs (2)
  4. Type SpeckleNewUI in the command line. You should see the Speckle panel appear.
    dui3-alpha-rename-needed-announcement-draft-forum-post-google-docs (3)

Uninstalling the Rhino connector

To uninstall the new Rhino connector, just remove the folder you decompressed the Zip file upon installation.

When in doubt, the location of the plugin can always be inspected via Rhino’s PluginManager interface.

Known Issues/Limitations

There are some things we haven’t gotten around yet that are important to note:

  1. Sharing files between users that contain Speckle streams is not supported ATM. User will only see the streams they’ve added to the file based on their local accounts.
  2. Change tracking is excluding blocks at the moment, so files using many blocks may not see as much of a performance gain.
  3. Only Rhino 7 is supported at the moment
  4. Limited error reporting: Displays success/failure but lacks the ability to produce detailed reports.
  5. No side-by-side support with the “stable” Rhino connector.
  6. Selection button on receive only works on success.
Revit 2023

Installing

  1. Download the latest release from XXXXX
  2. If you have our stable connector installed:
    • Open Manager for Speckle
    • Uninstall the Revit connector and any other connectors in your local machine. (This is to ensure your local setup is clean.)
  3. Drop the files in the correct location for Revit:
    • Decompress the zip file, you will see two items inside
      • Speckle.Connectors.Revit2023.addin file
      • Speckle.Connectors.Revit2023 folder
    • Type the following address into your folder explorer %appdata%\Autodesk\Revit\Addins\2023
    • Move both of these items into that folder
  4. Load Plugin
    • When loading up Revit 2023, you should see this prompt. Push Always Load.
      dui3-alpha-rename-needed-announcement-draft-forum-post-google-docs (4)

Uninstalling the Revit connector

To uninstall the new Revit connector, just delete the folder and the .addin file that you moved into the %appdata%\Autodesk\Revit\Addins\2023 folder.

Known Issues/Limitations :pause_button:

There are some things we haven’t gotten around yet that are important to note:

  1. Change tracking is excluding model groups at the moment
  2. Only Revit 2023 is supported at the moment
  3. Limited error reporting: Displays success/failure but lacks the ability to produce detailed reports.
  4. No side-by-side support with the “stable” Rhino connector.
  5. The connector only sends data, it doesn’t receive yet
AutoCAD 2023

Installing

  1. Download the latest release from XXXXX
  2. If you have our stable connector installed:
    • Open Manager for Speckle
    • Uninstall the AutoCAD connector and any other connectors in your local machine. (This is to ensure your local setup is clean.)
  3. Load the new alpha plugin in AutoCAD:

Uninstalling the AutoCAD 2023 connector

To uninstall the new AutoCAD 2023 connector, just remove the folder you decompressed the Zip file upon installation.

Known Issues/Limitations

There are some things we haven’t gotten around yet that are important to note.

Installation and Accounts

  • Only AutoCAD 2023 is supported at the moment, and there is no side-by-side support with the “stable” AutoCAD connector.
  • Sharing files between users that contain Speckle streams is not currently supported. User will only see the streams they’ve added to the file based on their local accounts.

Object Support

Limited object support compared to the “stable” AutoCAD connector. Currently only the following types are supported on send and receive:

  • Point
  • Line
  • Arc
  • Circle
  • Ellipse
  • Polyline, 2D Polyline, 3D Polyline
  • Spline
  • Mesh

Publishing Models

  • Change tracking does not apply to blocks at the moment, so files with many blocks may not have the same performance gain compared to those without.
  • Publishing a model with a description is not currently supported
  • Error reporting is limited: displays success/failure status but does not include detailed item reports.

Loading Models

  • Selection button only works on success.
  • Error reporting is limited: displays success/failure status but does not include detailed item reports.
SketchUp 2021-2024

Installing

  1. Download the latest release from XXXXX
  2. If you have our stable connector installed:
    • Open Manager for Speckle
    • Uninstall the SketchUp connector. (This is to ensure your local setup is clean.)
  3. Load the new alpha plugin in SketchUp:

Uninstalling the SketchUp Connector

To uninstall the new SketchUp connector, just delete the speckle_connector folder and the speckle_connector.rb file.

ArcGIS Pro 3

Installation

  1. Place the attached file Speckle.Connectors.ArcGIS3.esriAddinX into the folder C:\Users\<your user name>\Documents\ArcGIS\AddIns\ArcGISPro. You will see a Speckle launch button in Add-In tab.

Uninstalling

Delete the file Speckle.Connectors.ArcGIS3.esriAddinX from the folder C:\Users\<your user name>\Documents\ArcGIS\AddIns\ArcGISPro.

Known Limitations

  • Saving Model cards in the ArcGIS Project is not supported yet.
  • Sending support:
    • Feature class (Point, Multipoint, Polyline, Polygon, Multipatch) without symbology
    • Raster
    • Pointcloud (.las dataset type)
    • Standalone tables
  • Receive support:
    • Native GIS Feature class (Point, Multipoint, Polyline, Polygon, Multipatch) without symbology
    • Native GIS Standalone tables
    • Non-native basic (Points, Line geometries (except Polycurves that contain Arcs), Meshes), at the moment without additional properties and without symbology
    • Interacting with the UI during “Adding to Map” might freeze the app for some time
13 Likes

Also worth noting that the downloaded .zip most likely needs unblocking.

  • right click on it before unzipping > properties
  • check Unblock at the bottom

1 Like

Hey there,

I’ve been playing around with the Grasshopper 7 DUI3 alpha branch and I’m super impressed so far - much snappier from a UI perspective, I like being able to manage multiple imported models easily, the debugging functionality is great , and looking at the structure of the repo it’s clear a lot of thought has gone into things.

I might have asked this before but just to confirm - is the plan this time around to totally lock down the converter dlls to each plugin? To be clear I think that’s a good move, as it would hugely simplify the administration (Revit releasing with locked versions of Dynamo is a great example).

4 Likes

Thanks for checking DUI3 out and for the nice feedback Chris!
We might have missed mentioning it in the announcement, but yes, you’re correct.
Kits as you know them are going away - Connectors will directly reference them and I believe we’ll provide alternative ways for 3rd party developers to extend/override the default conversion routines.

We’re also looking into adding versioning to our Objects kit, to enable faster release cycles on our end and fewer conversion conflicts.

2 Likes

Thanks for the reply - one of the implications of this change that is interesting is that Objects suddenly goes from “an object schema for Speckle” to “THE object schema for Speckle” which is exciting - might be something to take into account on the documentation side of things, have a proper schema breakdown

1 Like

@chris.welch we’re glad you’re excited by what we’re cooking. We have more to share here. But it’s still in the mixing bowl, hasn’t even made it to the oven but could end up as the cherry on the cake.

3 Likes

5-speckle-beta-connectors

Hey @Community - we’re making this a bit more proper. We’re now officially entering the “Open Beta” phase. Let’s see if I will remember to change the title of this post :sweat_smile:

You can read all about it here:

OR if you want a shortcut to the goods:

https://releases.speckle.systems/v3

Let rip - we’re all ears. First impressions, good or bad, share them with us!

18 Likes

Building on my last feedback, generally very positive, but a couple of issues that stood out this morning -

  • Revit uploader having just a publish button was confusing - a greyed out “load” button might more clearly indicate, we can push and pull, just not yet
  • Clicking on the dead area above and below the setup steps kicks you back to the first page, including when you’re pretty deep into picking a model etc
    image
  • converting, serialising, uploading, linking text is good and helps put the whole thing in context
  • conversion report gets a bit laggy on large reports after bringing multiple pages in (this also happens on the home screen of speckle when tabbing through projects) but clicking on objects centering them is great
  • there now seems to be metadata being added to the revit/rhino project - great for long running projects, can see how this would be good for populating a template at start of project, but probably needs a file path based fallback when a read-only file is being synced, as I will always open, push, and close without saving, and it would be useful for the speckle link to be maintained without saving
3 Likes

Just gave it a spin.

  • Sends are not visible on perkinswill.speckle.xyz. So its hard for me to test real cases. These revit samples are way too far from reality.

  • While changing the filter, sometimes I don’t want to Save & Publish, if my new selection is large and is gonna take too long.

image

  • Determinate loading indicator (32%) is super nice! Serializing and uploading are indeterminate still, which in my experience is the one taking longest.

image

  • Very slow upload? I think I have good connection. Actually, I noticed the upload state doesn’t get updated. After 981 bytes/sec it just jumped to “Done”.

image

1 Like

Thanks for the feedback!

There shouldn’t be a problem with any decently up-to-date server. I wonder what would be the cause! Let me know if you have more clues here.

Legit, i think there’s even a commented out button that does that. We can uncomment it/bring it back.

Treat those numbers with a pinch of salt. @adamhathcock might have more insights, but it’s a top of mind issue right now to make the whole process more determinate and improve reporting in that stage.

I’ll ask the web team - we’re using the default ui components - to see if we can toggle that behaviour off.

We’re planning an overhaul here, primary hitter right now will be stopping to report successful items. Ie, if all is ok, why bother?

This is a bit more complex, but we’ll keep it in mind. File paths are not ideal, as they can also change (i know rarely in the case of a real project, yep). It’s a legit usecase.

Keep hitting!

1 Like

I’ve actually tested with our service account on your server, and things seem fine! @vwb do you think you can gimme more intel on what happened?

It magically worked now. Earlier in the morning I could not see any geometry (even thought the data seemed to be loaded by the frontend). Now its there. Will send some big boys

2 Likes

Missed the fact that this is for rhino 7. Works in rhino 8. managed to get 24000 balls to load. took a minute but once online works well.

https://app.speckle.systems/projects/1a169c644c/models/72ddb8cee0@3a8f8c4629

4 Likes

You’ve got… a lotta balls man :sweat_smile: Here’s the following challenge: in the same session, send those balls out, then move one and update.

Let me know how fast the update is :sunglasses:

1 Like

I just want to add to Chris point, because an app I develop had a similar feature and very we soon we realized how expensive is to “save” the model. Sync to central, etc, all that good stuff…

We had to fallback to save metadata on disk using a hash based on lots of info from that file. Sketchy but we haven’t heard. From 2024 there is actually a “Created Guid” to uniquely identify a Revit file that you can leverage.

2 Likes

Hi. Moved 1 ball and reloaded. Now I get a blank screen.
https://app.speckle.systems/projects/1a169c644c/models/72ddb8cee0

loads fine here:

This is unrelated to anything connector related - it’s probably down to the interaction between viewer, available resources, and browser.

We’ve heard you guys. I raised a ticket to get to this!

Thank you. Great that it works for you. I can not see the 24000. the 8000 works fine. I tried it with vivaldi browser and chrome.


Might be time for a fresh install of windows.