I love me a Parametric Bridge

I have a crap-ton of other stuff to do, and it's sunny outside, but I know that you, dear reader, really really need  a slightly impractical bridge to get you into the weekend.  So here is my triumphant (and somewhat muttering) return to screencasting: setting out geometry for a fancy pedestrian bridge, from scratch, in Dynamo.

Download the .dyn file from here.

I will follow this up with clothing this in Revit structural framing, and flexing.


Dynamo 0.6.3 Release and 0.7.0 Alpha

New Stuff!  New Website!  New Awesome!

It's been a while since the Dynamo team did a new official release, and there are plenty of new toys for everyone to use. The first bag of tricks is Dynamo 0.6.3, an incremental improvement to the 0.6.2 tools you know and love. There are, of course, a number of stability improvements, new nodes, access to more Revit functionalities and a richer computation environment. There's also a fresh, cutting edge release, 0.7.0, which takes a giant step into the future of Dynamo. This alpha release represents a significant refactor of the underlying code, a vast expansion of the geometric capabilities of Dynamo, and a rich new set of tools for scripting. 0.6 and 0.7 can each be installed side by side, so feel free to continue to use 0.6.3 in your more production oriented work, and install 0.7 to understand where Dynamo is headed.  Both releases also feature a stand alone application, allowing you to experience Dynamo without running Vasari or Revit.  0.6.3 Stand-alone has access to all the logic, list, and general computing aspects of Dynamo, and 0.7.0 Stand-Alone also features a powerful and versatile geometric engine.

And there is also a new website and home base!  This site is both a distribution point for free/open software as well as a hub for information and discussion around Design Computation, Architecture, Analysis, Fabrication, Construction, and Building Information Modeling.  The Dynamo team prides itself on being able to directly talk to designers about issues and interests that affect their work on a day to day level, and hopes that this site can nurture this kind of discussion.  The site itself is still new and relatively untested, so please be patient while the kinks get worked out of the system. There will be many more details and descriptions to follow. Please bookmark this page and visit frequently, as Dynamo is evolving rapidly.

Release notes:

0.6.3 Some noteworthy aspects, but please check the installer ReadMe for a more full rundown.
  • Dynamo Sandbox: Explore Dynamo without running Revit or Vasari (see your Start Menu)
  • Application level settings for Imperial and Metric Units:  We hear that most of the world does not use Imperial Units, and we'd like to accommodate this.  Please check out this post for a more in-depth look at our Units tools.  http://dynamobim.org/units-in-0-6-3/
  • Daylighting with cloud Rendering service sample files:  New analysis workflows available.  You will need an Autodesk ID to use these services, but you can get access to this when you sign up for membership on this website.
  • Set Parameters Node - set writable parameters for any Revit Element, (not restricted to loaded Families anymore)
  • Add name to reference plane node.
  • Convert to Unitized measures (Length, Area, Volume)
  • Explode Node (Solids to Faces, Faces to Edges)
  • Solids from Elements handles lists
  • Select All Elements of Type and Category Nodes
  • Wall Nodes element IDs persist after changes
  • Area Node
  • Volume Measure node
  • Length from Curve Node
  • Topography from Points and Points from Topography Nodes
  • Last of List Node
  • Filter by Boolean Mask
  • Group by Key Node
  • Is Null node (for filtering out null values)
  • Explode Node (replaces Explode Solid)
  • Python nodes now can take node inputs as functions
  • Shuffle List Node
  • Select All Elements of Category Nodes
  • Divided Path Node updates
  • XYZs from Divided path
  • Treat curves and edges the same for intersection operations
  • Preserve Wall Elements on change
  • Improvements to node Help descriptions
  • Toolbar shortcuts
  • Improvements to Preview bubble display (fades, compact error messages, etc)
0.7.0 This is an alpha quality release which represents a significant refactoring of the underlying code. There are some notable (temporary) restrictions to the functionality that is available in 0.6.3, and major enhancements to others. To allow users to continue work with 0.6.3 while exploring 0.7.0, this release can be installed side by side with older releases. Please jump in and try it out.  Let us know what you like and what you hate.  The Dynamo team is counting on your feedback. New
  • Geometry tools: Dynamo now has a much more extensive collection of geometric operations that are available in stand alone mode as well as when running in Revit.  Stay tuned for more posts about these tools and how to enjoy them
  • Scripting interface: Dynamo now allows for direct input of DesignScript code into CodeBlock nodes. Please see this document for learning DesignScript syntax and capabilities: http://designscript.org/manual.pdf and watch for more blog posts and forum commentary on how to make the most to these tools.
Temporarily Unavailable Functionality from 0.6.3 (coming back soon!)
  • Upgrade: 0.6 Dynamo files cannot be opened in 0.7.0. We are actively working on the upgrade mechanism
  • Package Manager: currently disabled until migration is working
  • Recursion in custom nodes
  • Revit Element explosion to geometry. Currently users cannot generically extract geometric information from Revit elements. However, there are different tools that, on a per element basis, can extract geometric data. For instance, After selecting a curve from Revit, a user can look in Revit>Element>CurveElement>Query>Curve to extract the geometry. Similarly, a Family Instance can be queried for such items as faces, curves, location, etc.
  • Revit Elements created in a Dynamo session are not remembered in subsequent sessions. New elements will be created when files are re-opened.
Known Problem Areas
  • To have both 0.7.0 and 0.6.3 installed, you must install 0.7.0 AFTER 0.6.3
  • You can only load 0.7.0 OR 0.6.3 in a single Revit session. You must close Revit before changing from one to the other.
  • Visualization can be slow with lots of curvy stuff
  • Manually Deleting and recreating Revit elements created by Dynamo can cause element duplication or failure to be re-created when the graph is re-run,
  • Search tags are in progress. If you don't find what you are looking for via search, try browsing.


Happy Valentine's Day

Solid Geometry Valentines, now available on the Package Manager:

Now get out of the office!


Dynamo Stadium

We've done a few Dynamo demo's using a Stadium dataset that Nate Miller started back this past fall and we have been tinkering with it ever since.  It's a work in progress, and I'm sure we will keep refining it, but there are a number of nice things going on that folks can learn from now.  You can see the file in action during the first few minutes of this presentation.

Download the Datasets.

Riser layout:  there are some well tested methods for laying out stadium seating, a recursive method that starts with the person sitting in the front row, with each successive riser placed such that the next person can see over the head of the person in front. In this Dynamo file, it is handled with a tiny Python node.

Placing families:  There is a boolean toggle to turn Revit family creation on and off.  This is helpful if you are looking to experiment with the general structure of the Stadium while not having to commit to the performance hit of Revit family creation.

Visualization of downstream effects:  There are a number of input parameters that are nice to see the isolated effects of.  We placed a few watch 3d  nodes so that you can monkey with the basic layout parameters and see the effects further downstream on specific structures:  Risers, Trusses, Enclosure.

You can run the definition in either a mass.rfa, or in a regular .rvt environment, but you need to have the Truss, Riser, and Panel families loaded, as well as specify a sun setting for the file.  Color Overrides will only work in the rvt environment. There is also a "custom node" in this definition that you need to download from the Package Manager. Is the menu bar at the top of the application go to Packages>search for a package> and search for "Quads from Rectangular Grid", then re-open Stadium.dyn

There will surely be updates to this in the future, but this can get folks going.
Download the Datasets.


Dynamo: Writing data to text files

There's been some recent discussion about how to write geometric data out to external data sources.  Here is the most basic on both ends:  xyz coordinates written to a .txt file.

Of course, you may want to do some fine tuning of this kind of thing.  Here is a version that cleans up the data, reducing significant digits and other formating.

You might also add some information about these points to each line of data.  Adding a couple nodes tells how far each point in from the origin, and labels what this data is:

Resulting in this .txt file.

There are surely a number of ways to do similar things.
A couple things to note here:
1. XYZ's are Containers, that is, they are a specific kind of chunk of computational stuff that is not automatically recognized as a series of numerical element or strings.  They need to be decomposed to something consumable by a text file if that is what you are writing to.  "To String" is the simplest way to do this, but there are other methods to create more fine tuned data.
2.  You need to format your data for your consuming file format.  Writing to a text file, you need to add commas, carriage returns, or other pertinent delimiters.  In the "Joing Strings" node, the "del" or delimeter that is being added is a carriage return, this basically says "return" after every line of x,y,z that comes across
3.  you can add all sorts of other data to this.  For String processessing, just enter "string" in the search bar and take a look at some of the tools that are available.

Don't forget to also take a look at a couple other examples in the Help>Samples>23 Data Import and Export, for tips on how to write to Excel.  There are also explanations in the pdf tutorial.

Thanks to the folks who participated in this discussion over on the Vasari Forum.


Dynamo Webinar, 2 parts, European time

Andrzej Samsonowicz, Autodesk Applications Engineer, is presenting a 2 part Dynamo webinar, free and open to the public.  Register now, as there are a limited number of seats (and PLEASE only register if you think you are really going to make it!)

Dynamo on Revit. The super addin. Part I. General overview.
Join us for a Webinar on January 28
Space is limited.
Reserve your Webinar seat now at:
1. What is Dynamo.
2. What can you do with Dynamo:
- Create new complex geometries in mass environment. Reuse existing one.
- Create new structural complex framings, walls, slabs, adaptive components, and any family instances.
- Manipulate BIM data.
- Solar analysis
- Export data to Excel or CSV file.

Tuesday, January 28, 2014
9:00 AM - 1:00 PM CET

Dynamo on Revit. The super addin. Part II. Hands-on.

Join us for a Webinar on January 29
Space is limited.
Reserve your Webinar seat now at:
During the second part of the webinar you'll learn some basic operations on Dynamo. This will be a good start for you to learn some more advanced stuff on your own.

Wednesday, January 29, 2014
9:00 AM - 1:00 PM CET


NCalc and Dynamo's Formula node

You WILL love the formula node in Dynamo.  Resistance is useless.

The Formula node is a beautiful thing.  Once you get the hang of how it works, it will replace a number of other nodes.  Lots of folks think that you use it for doing fancy calculations with fancy names like "logarithm" or "law curve", but it's got all sorts of other banal uses.  Driving the Formula node's excellent operations is NCalc, "a mathematical expressions evaluator in .NET. NCalc can parse any expression and evaluate the result, including static or dynamic parameters and custom functions".  The full description of the project can be found here.

As a non-text based programmer, the Formula node is my gateway drug to "real programming" (oooh, scary) because it's like dipping your toes in the deep and churning waters of traditional coding without having to plunge in up to your naughty bits.

For instance, let's say you were going to add 3 numbers, 1+2+3.  You COULD do this with the big friendly looking Add nodes:

But, my goodness that looks clumsy.  How about this instead?

Ah, much tidier, and the math syntax is recognizable to any 2nd grader.

OK, something a little more involved.

Or stuff that isn't necessarily an equation, like an IF/THEN statement that makes sure an output does not fall below a threshold:

Here the formula node is not only more legible, it actually becomes more powerful than the dedicated nodes, because it can handle lists of numbers much more easily.
(for more on how that sequence of numbers is made, go here)

Once you get into the logic and syntax (and visit the NCalc site to understand all the built in functions) you can go hog-wild.

(You know, "hog-wild" in the way that only someone sitting alone at a computer talking about math on a Sunday night with a shot of bourbon can . . .)

Examples of some other things you can do with the formula node can be found here:
- Page 28 of Dynamo Visual Programming for Design
and here
and most importantly, http://ncalc.codeplex.com/

You WILL love the formula node in Dynamo.  Resistance is useless.