Skip to content

Dynamo 2.0 Language Changes

Racel edited this page Apr 30, 2018 · 7 revisions
  1. Change list@level syntax from "@-1" to "@L1"
  • New syntax for list@level, to use list@L1 instead of list@-1
  • Motivation: Aligning Code Syntax with preview/UI, user testing shows this new Syntax is more comprehensible
  1. Implement Int and Double types in TS to align with Dynamo types

  2. Don't allow overloaded functions where arguments only differ by cardinality

  • Old graphs that use overloads that have been removed should default to the higher ranked overloads.
  • Motivation: Remove ambiguity about which specific function is being executed
  1. Disabling array promotion with replication guides

  2. Make variables in imperative blocks local to imperative block scope

  • Variable values defined inside of imperative code blocks will not be altered by changes inside of Imperative blocks that reference them.
  1. Make variables immutable to disable associative update in code block nodes

  2. Compile all UI nodes to static methods

  3. Support return statements without assignment

  • “=” not needed in either function definitions or imperative code.
  1. Migration of old method names in CBN’s
  • Many nodes have been renamed to increase legibility and placement in Library browser User Interface
  1. List as dictionary cleanup

Known issues:

  • Namespace conflicts in Imperative Blocks cause unexpected input ports to appear. See the Github issue for more info. To get around this, define the function outside of the Imperative Block like this:
pnt = Autodesk.Point.ByCoordinates;
lne = Autodesk.Line.ByStartPointEndPoint;

[Imperative]
{
    x = 1;
    start = pnt(0,0,0);
    end = pnt(x,x,x);
    line = lne(start,end);
    return = line;
};

Releases

Roadmap

How To

Dynamo Internals

Contributing

Python3 Upgrade Work

Libraries

FAQs

API and Dynamo Nodes

Clone this wiki locally