Skip to content
This repository has been archived by the owner. It is now read-only.


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.

Speckle for Dynamo

Build status


Speckle v1 has reached EOL and is no longer mainatined. Check out our brand new 👉 Speckle v2! Read more about the announcemnt here and check out or new website.


Speckle for Dynamo is out!



The latest build is here. Be sure to check out the getting started guide to get up to speed with some basics.


Speckle for Dynamo is currently made up by 7 components:

  • I/O nodes:
    • The Sender lets you send data to Speckle receivers.
    • The Receiver lets you receive data from Speckle senders.
    • The Streams lets you select a Stream ID from all the available streams on your account.
  • UserData nodes:
    • The UserData.Set lets you set a dictionary as custom properties to any geometry element.
    • The UserData.Get returns a dictionary with previously custom properties set in a geometry, if any.

Speckle Accounts lets you manage your Speckle accounts and set the default account for new nodes, it can be accessed from: View > Speckle Accounts


Custom UserData

UserData is a way of adding extra information/properties to any Dynamo Geometry, making use of their internal Tag property. These custom properties are set using Dynamo dictionaries.

The SpeckleConverter accepts nested dictionaries to be sent, as well as any geometry that can be currently serialized.

Custom UserData

Bugs and feature requests

Please submit a new issue! The Receiver will often show a warning regarding Dictionary.ByKeysValues operation failed. We are aware of that and are working with the Dynamo team to fix it. Nothing to worry about for the moment!

Building Speckle for Dynamo


  • Visual Studio 2017
  • .NET Framework 2.0+ installed (it might be missing on Windows 8/10)

Dev Notes

The SpeckleDynamo repo is currently made up by the following projects:

  • SpeckleCore - submodule
  • SpeckleDynamo - main project with receiver and sender component
  • SpeckleDynamoConverter - the converter logic, compiles into a dll that is loaded by SpeckleCore using reflection see Converter.cs
  • SpeckleDynamoFunctions - custom Dynamo nodes implementing the NodeModels interface must be calling methods in a separate dll in order to return something (other than basic types). This project contains methods called by the Receiver AstFactory.BuildFunctionCall. It also hosts ZeroTouch nodes for Set and Get UserData.
  • SpecklePopup - login/registration popup, currently a clone of the one in the Rhino repo, to be added as a submodule
  • SpeckleDynamoExtension - a Dynamo extension to add a Speckle item to the Dynamo menu bar, the sole scope of this is to let users set and change their default Speckle account, in the future more advanced functionalities could be added via the extension

Building Process

  • Clone/fork the repo
  • Restore all Nuget package missing on the solution.
  • If SpeckleCore hasn't been cloned, running git submodule update --remote on the command line should clone the submodule along.
  • Set SpeckleDynamo as start project and rebuild all


  • Post build events have already been set up to copy all required files into the Dynamo Core 2.0 folder.
  • A start action has been set to launch Dynamo Sandbox 2.0.
  • These can be changed in the .csproj file, but please don't set them from Visual Studio.

SpeckleDynamo references all other projects, debugging it you can debug the other projects as well.

About Speckle

Speckle reimagines the design process from the Internet up: an open source (MIT) initiative for developing an extensible Design & AEC data communication protocol and platform. Contributions are welcome - we can't build this alone!


Dimitrie, Luis, Matteo, Alvaro