Skip to content

Dynamo 2.0

Ian Keough edited this page Apr 27, 2016 · 19 revisions

It took nearly 3 years for Dynamo to get to 1.0. Getting from 1.0 to 2.0 should take far less time. This document will track the proposed changes to this repository and to the Dynamo API to achieve Dynamo 2.0.

Dynamo Repository

The Dynamo repository has grown to include DynamoCore, the WPF UI used in Dynamo Studio and Dynamo for Revit, and all of the node libraries shipped with those products. The focus in Dynamo 2.0 will be in making the repository slimmer, representing only Dynamo's core: the graph and the Design Script language, and not all the bits that are parts of Dynamo-based applications. The Dynamo NuGet packages will be the primary mechanism by which associated projects consume the Dynamo APIs.

  • Remove all node library projects from Dynamo.All.sln.
  • Move all node libraries to package-formatted repositories. Each node library currently residing in core should be moved, along with its testing libraries to individual repositories which are formatted as packages.
  • Enable automated build and testing of all node library repositories.
  • A Readme and Documentation for all node libraries should be provided in a consistent manner. For documentation, consider using the same framework in place to generate the documentation for the core API.
  • Move the DynamoManipulation extension to a separate repository.
  • Move the DynamoPackages extension to a separate repository.
  • Move DynamoSandbox and DynamoCoreWpf to a separate repository.
  • Move the UpdateManager to a separate assembly, UpdateManager.dll
  • Move DynamoApplications to a separate assembly.
  • Move all issues associated with specific node libraries or Dynamo for Revit to their respective repositories.
  • Transfer wiki pages as required.

Dynamo API

  • Create automatic builds of Dynamo NuGets during build.
  • Remove all build errors in Dynamo.All.sln
  • Remove all InternalsVisibleTo except for testing projects from DynamoCore.
  • Move EngineController into Workspace

Interfaces

There is a half-complete set of interfaces currently available for Dynamo. The goal for 2.0 is to complete these interfaces, and make all existing Dynamo code use these interfaces.

  • Rename DynamoCore to Dynamo
  • Create Dynamo.Interfaces assembly. Move interfaces for the model here. Reference Dynamo.Interfaces in Dynamo
    • IDynamo
    • INode
    • IWorkspace
    • IConnector
    • IGroup
    • INote
  • Replace all references to DynamoCore types with references to their interface.

Releases

Roadmap

How To

Dynamo Internals

Contributing

Python3 Upgrade Work

Libraries

FAQs

API and Dynamo Nodes

Clone this wiki locally