Overview

The way Dynamo interacts with units will significantly change in 0.8 starting with any pre-release build after DynamoInstall0.8.0.20150312T1814.exe. We hope these changes will make using units more intuitive, both when interacting with Revit and modeling purely in Dynamo. The basic idea is that there are no more units in Dynamo! We think it makes the most sense to work with numerical (non-united) values in an abstract visual programming language like Dynamo. If your existing graphs use nodes that return united values (such as the SIUnit or Length nodes), they will continue to function, but will show a warning saying they are obsolete and suggesting an alternative. It is best if these nodes are removed from the graph.  Nodes that interact with Revit will use the project unit settings in Revit to return numerical values in Dynamo that match the values that you are using in Revit.

Changes

  1. Display unit settings have been removed from the Settings menu.  Existing unit nodes which will continued to function will fall back to display their underlying default which is SI units.  Because there is no longer a display setting, nodes that formerly showed feet and inches will now show meters.
  2. SIUnit nodes have been removed from the library. If they exist in an old graph, they will still show and will continue to function (returning SI unit values)  in upgraded graphs. On open, they will show a warning telling you that the node is obsolete and suggest an alternative.   SIUnitAddin080
  3. “Length.FromValue” nodes have been removed from the library . They will still show up and will continue to function (returning SI unit values)  in upgraded graphs. On open, they will show a warning telling you that the node is obsolete and suggest an alternative.
  4. The “Length.FromString” node has been renamed “Number from Feet and Inches” and  now can be used to return a number if you want to enter it in feet and inches. Area and Volume nodes from string have been retired as they are no longer needed.
  5. Revit nodes will no longer convert everything to meters and output SI Unit objects, rather they will output numbers based on the Revit project units setting.
  6. Nodes pushing values into Revit will push in the numbers into Revit in whatever the Revit project units settings are.
  7. A conversion node is being added as a convenience to take any value and change it to another value in a different unit.  For example 1 from meters to feet= .3.281.  Units are not attached to the input or output. Clicking on the “=” button will reverse the conversion. Note that this node is merely a convenience and is not necessary to interact with any united system. ConvertBetweenUnits
  8. Revit SetParameterByName and GetParameterByName will no longer take and return SIUnits respectively. They will take and return unitless numbers.  RevitNodesReturnUnitless

Examples

  1.  Starting a new Dynamo project with units. You can think of Dynamo as an extension of the Revit UI. Numbers used in Dynamo are just like the numbers you input into the parameter of an object’s property dialog. If your Revit project units are set to meters, and you create a Point at (1, 2, 3) and bring that into Revit, the ReferencePoint will be at (1m, 2m, 3m).  If your project units are set to feet, your Reference Point will be at (1’, 2’, 3’).  If you want to think in different units in some places of your script or if you think differently than the original author of the script, you can use the “Convert Between Units” node.  This node will take values  which interpret your number and convert it to the output you select. Ex. From Meters to Feet, From Inches To Centimeters, etc.
  2. Opening an old Dynamo project that references Revit objects. Your old nodes that get and set parameters should appear in Dynamo, however they will now work with unitless values.  Make sure your data makes sense—any manual conversions you employed in previous Dynamo versions should be adjusted or removed to reflect the new behavior. Note that any additional Revit nodes that get and set object types will not be affected by the change in units as they are working with object types.
  3. Opening up old Dynamo project that uses SIUnit nodes.  SI unit nodes are no longer needed to perform operations on united values. You can delete these obsoleted nodes and run your values directly into simple operator nodes.
  4. Opening up old Dynamo project that uses length nodes.  Legacy length nodes will continue to function (returning SI units)  in Dynamo but they will be marked with a warning that they are obsolete. You can delete these  nodes and run your values directly into operator nodes.

FAQs

Q:  Why can’t I place a point at (1m, 1m, 1m) in Dynamo?

A: Length nodes have been retired, Dynamo is unitless.

 

Q: Why can’t I add 1m + 1m in Dynamo?

A: Length nodes have been retired, Dynamo is unitless

 

Q: I am trying to extract the surface area of Adaptive Components I have placed in my model in Dynamo 0.7.6.  The components I have placed are roughly 11 square feet, but in Dynamo they are only around 1 square feet. My area units are set to display at SF, what am I doing wrong?

A: In 0.7.6 you were actually seeing 11 square feet as nearly 1 square meter in Dynamo due to units conversion.  Now that units settings have been removed from Dynamo, values come in without units with the same value they are displayed as in host application, so the value will now come in as 11.

 

Q: Why don’t area values of elements that I get from Revit match what I see in Revit?

A: In 0.8, values will  be unitless and match the host application.  MatchHost

 

Q: Why do I have to use special nodes to strip off units and perform operations?

A: You no longer have to!  Dynamo is now unitless.  stripunits

 

Q:  When I write “1” to a length parameter using Element.SetParameterValueByName why is the result 0.3048m in my Revit parameter (i.e, 1′ converted to meters)?

A:  Now Dynamo will account for the Revit API in decimal feet and push in values as they are – in this case “1”!