Ever felt like you wanted Dynamo to do more? And, custom nodes, python, zero-touch, and nodeModel-derived UI nodes not enough? Maybe you want to create another window to track workspace utilization? Or you want to create a drawing tool inside of Dynamo? If you know the feeling, you may be interested in learning about extensions in Dynamo! On the Dynamo Team, we have recently rediscovered how powerful extensions can be by allowing developers to add new UI or interactions without redefining Dynamo at its core. Most recently, our team has been exploring new Dynamo workflows and have been really excited about the possibilities that using extensions presents. These workflows include things like creating a window to track nodes placed in the workspace to animating scenes containing Dynamo-generated geometry in a separate view.
A Dynamo View Extension that leverages Three.js to create a scene that includes lighting, material shaders, and animation capabilities.
What are Extensions?
Extensions are a powerful development tool in the Dynamo ecosystem. They allow for developers to drive custom functionality based on Dynamo interactions and logic. Extensions can be broken down into two main categories, extensions and view extensions. As the naming implies, the view extension framework allows you to extend the Dynamo UI by registering custom menu items. A few powerful examples of view extensions include the Dynamo package manager, Dynamo notifications, the new Dynamo 2.0 Library, and DynaShape from Long Nguyen.
DynaShapes View Extension that introduces physics simulation to the Dynamo Geometry View
Regular extensions operate in a very similar fashion minus the UI. For instance, we could build an extension that logs specific information to the Dynamo console. This scenario requires no custom UI and therefore could also be accomplished using an extension.
If you are interested in exploring a simple example check out the Dynamo Samples repo. Here you will find a view extension that instantiates a custom pop-out window from the main menu. This window displays all of the nodes that have been placed in the canvas in a separate window.
View Extension Example from Dynamo Samples repo
So, are you ready to get hands-on with Extensions?
The Dynamo team will be holding a free workshop in London on February 16th, 2018 in London. This workshop is open to everyone, and we would love for you to join us! We will be teaching you extension basics during the first part of the workshop, and then collaborating with you during the rest of the session to build your own!
Before you sign up, please note that this workshop will require a working knowledge of C# and prior development experience in Visual Studio! Please ensure that you have the following as we will hit the ground running from the minute we start the workshop:
- Bring your own laptop that has Visual Studio 2015 installed prior to the workshop
- On the laptop mentioned above, have Dynamo Studio and/or Dynamo Revit installed prior to the workshop
- Have prior Dynamo C# Zero-Touch node development experience
- Have built Dynamo Core from source
- Preferably have some basic knowledge of WPF
So, if you think you meet the criteria above and want to hang out with the Dynamo Team for a day, please reach out to email@example.com with the subject ‘London Extension Workshop’ and provide the following:
- Job Title
- Work Email
- What Extension you want to build!
We have a limited amount of seats and will contact you if you landed a slot. We will provide you with more details over the course of the next week or so (exact times, location, what to expect, etc.) as the workshop date nears.
See you there!