Dynamo
Primer for v2.0
English
English
  • About
  • Introduction
    • What is Dynamo & How Does It Work?
    • Primer User Guide, Dynamo Community & Platform
  • Setup for Dynamo
  • User Interface
    • Workspace
    • Library
  • Nodes and Wires
  • Essential Nodes & Concepts
    • Index of Nodes
    • Geometry for Computational Design
      • Geometry Overview
      • Vector, Plane & Coordinate System
      • Points
      • Curves
      • Surfaces
      • Solids
      • Meshes
    • The Building Blocks of Programs
      • Data
      • Math
      • Logic
      • Strings
      • Color
    • Designing with Lists
      • What's a List
      • Working with Lists
      • Lists of Lists
      • n-Dimensional Lists
    • Dictionaries in Dynamo
      • What is a Dictionary
      • Dictionary Nodes
      • Dictionaries in Code Blocks
      • Revit Use-Cases
  • Custom Nodes & Packages
    • Custom Nodes
      • Custom Node Introduction
      • Creating a Custom Node
      • Publishing to Your Library
    • Packages
      • Package Introduction
      • Package Case Study - Mesh Toolkit
      • Developing a Package
      • Publishing a Package
      • Zero-Touch Importing
  • Dynamo for Revit
    • The Revit Connection
    • Selecting
    • Editing
    • Creating
    • Customizing
    • Documenting
  • Dynamo for Civil 3D
    • The Civil 3D Connection
    • Getting Started
    • Node Library
    • Sample Workflows
      • Roads
        • Light Pole Placement
      • Land
        • Service Placement
      • Utilities
        • Rename Structures
      • Rail
        • Clearance Envelope
      • Surveying
        • Point Group Management
    • Advanced Topics
      • Object Binding
      • Python and Civil 3D
    • Dynamo Player
    • Useful Packages
    • Resources
  • Dynamo in Forma Beta
    • Set Up Dynamo Player in Forma
    • Add and Share Graphs in Dynamo Player
    • Run Graphs in Dynamo Player
    • Dynamo compute service differences with Desktop Dynamo
  • Coding in Dynamo
    • Code Blocks and DesignScript
      • What's a Code Block
      • DesignScript Syntax
      • Shorthand
      • Functions
    • Geometry with DesignScript
      • DesignScript Geometry Basics
      • Geometric Primitives
      • Vector Math
      • Curves: Interpolated and Control Points
      • Translation, Rotation, and Other Transformations
      • Surfaces: Interpolated, Control Points, Loft, Revolve
      • Geometric Parameterization
      • Intersection and Trim
      • Geometric Booleans
      • Python Point Generators
    • Python
      • Python Nodes
      • Python and Revit
      • Setup Your Own Python Template
    • Language Changes
  • Best Practices
    • Graph Strategies
    • Scripting Strategies
    • Scripting Reference
    • Managing Your Program
    • Efficiently Working With Large Data Sets In Dynamo
  • Sample Workflows
    • Getting Started Workflows
      • Parametric Vase
      • Attractor Points
    • Concept Index
  • Developer Primer
    • Build Dynamo from Source
      • Build DynamoRevit from Source
      • Managing and Updating Dependencies in Dynamo
    • Developing for Dynamo
      • Getting Started
      • Zero-Touch Case Study - Grid Node
      • Executing Python Scripts in Zero-Touch Nodes (C#)
      • Going Further with Zero-Touch
      • Advanced Dynamo Node Customization
      • Using COM (interop) types in Dynamo Packages
      • NodeModel Case Study - Custom UI
      • Updating your Packages and Dynamo Libraries for Dynamo 2.x
      • Updating your Packages and Dynamo Libraries for Dynamo 3.x
      • Extensions
      • Defining Custom Package Organization for Dynamo 2.0+
      • Dynamo Command Line Interface
      • Dynamo Integration
      • Developing For Dynamo For Revit
      • Publish a Package
      • Build a Package from Visual Studio
      • Extensions as Packages
    • Pull Requests
    • Testing Expectations
    • Examples
  • Appendix
    • Frequently Asked Questions
    • Visual Programming and Dynamo
    • Resources
    • Release Notes
    • Useful Packages
    • Example Files
    • Host Integration Map
    • Download PDF
    • Dynamo Keyboard Shortcuts
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. Developer Primer
  2. Developing for Dynamo

Publish a Package

PreviousDeveloping For Dynamo For RevitNextBuild a Package from Visual Studio

Last updated 3 months ago

Publish a Package

Packages are a convenient way to store and share nodes with the Dynamo community. A package can contain everything from Custom Nodes created in the Dynamo workspace to NodeModel derived nodes. Packages are published and installed using the Package Manager. In addition to this page the Primer has a general guide on packages.

What is a Package Manager?

The Dynamo Package Manager is a Software Registry (similar to npm) that can be accessed from Dynamo or in a web browser. The Package Manager includes installing, publishing, updating, and viewing packages. Like npm, it maintains different versions of packages. It also helps to manage the dependencies of your project.

In the browser, search for packages and view statistics: https://dynamopackages.com/

  • In Dynamo, the Package Manager includes install, publish, and update packages.

  1. Search for packages online: Packages > Search for a Package...

  2. View/edit installed packages: Packages > Manage Packages...

  3. Publish a new package: Packages > Publish New Package...

Publishing a package

Packages are published from Package Manager within Dynamo. The recommended process is to publish locally, test the package and then publish online to share with the community. Using the NodeModel Case Study, we will go through the necessary steps to publish the RectangularGrid node as a package locally and then on online.

Start Dynamo and select Packages > Publish New Package... to open the Publish a Package window.

  1. Select Add file... to browse for files to add to the package

  2. Select the two .dll files from the NodeModel Case Study

  3. Select Ok

With the files added to the package contents, give the package a name, description, and version. Publishing a package using Dynamo automatically creates a pkg.json file.

A package ready to be published.

  1. Supply the required information for name, description, and version.

  2. Publish by clicking "Publish Locally" and select Dynamo's package folder: AppData\Roaming\Dynamo\Dynamo Core\1.3\packages to have the node available in Core. Always publish locally until the package is ready to share.

After publishing a package, the nodes will be available in the Dynamo Library under the categoryCustomNodeModel.

  1. The package we just created in the Dynamo Library

Once the package is ready to publish online, open the Package Manager and choose Publish and then Publish Online.

  1. To see how Dynamo has formatted the package, click on the three vertical dots to the right of "CustomNodeModel" and choose "Show Root Directory"

  2. Select Publish then Publish Online in the "Publish a Dynamo Package" window.

  3. To delete a package, select Delete.

How do I update a package?

Updating a package is a similar process to publishing. Open the Package Manager and select Publish Version... on the package that needs to be updated and enter a higher version.

  1. Select Publish Version to update an existing package with new files in the root directory, then choose whether it should be published locally or online.

Package Manager web client

The Package Manager web client allows users to search for and view package data, including versioning, download statistics, and other relevant information. Additionally, package authors can log in to update their package details, such as compatibility information, directly through the web client.

For more information about these features, see the blog post here: https://dynamobim.org/discover-the-new-dynamo-package-management-experience/.

The Package Manager web client can be accessed at this link: https://dynamopackages.com/

Updating Package Details

Authors can edit their package description, website link, and repository link by following these steps:

  1. Under My Packages, select the package and click Edit package details.

  2. Add or modify the Website and Repository links using the respective fields.

  3. Update the Package Description as needed.

  4. Click Save changes to apply updates.

Note: Updates may take up to 15 minutes to refresh in the Package Manager within Dynamo, as server updates take some time. Efforts are underway to reduce this delay.

Edit Compatibility Information for Published Package Versions

Compatibility information can be updated retroactively for previously published package versions. Follow these steps:

Step 1:

  1. Click on the package version you want to update.

  2. The Depends on list will be auto-populated with the packages your package depends on.

  3. Click the pencil icon next to Compatibility to open the Edit Compatibility Information workflow.

Step 2:

Follow the below flow chart and refer to the table below to help you understand which option works best for your package.

Let's use some examples to walk through some scenarios:

Example Package # 1 - Civil Connection: This package has API dependencies with both Revit & Civil 3D and does not include a collection of core nodes (eg: geometry functions, math functions, and/or list management). So, in this case, the ideal option would be to go with Option 1. The package will be shown as Compatible in Revit and Civil 3D that matches the version range and/or individual version list.

Example Package # 2 - Rhythm: This package is a collection of Revit specific nodes along with a collection of Core nodes. In this case, the package has host dependencies. But also includes core nodes that will work in Dynamo Core. So, in this case, the ideal option would be Option 2. The package will be shown as Compatible in Revit and Dynamo Core (also called Dynamo Sandbox) environment that matches the version range and/or individual version list.

Example Package # 3 - Mesh Toolkit: This package is a Dynamo Core package which is a collection of geometry nodes that has no host dependencies. So, in this case, the ideal option would be Option 3. The package will be shown as Compatible in Dynamo and all host environments that matches the version range and/or individual version list.

Depending on the option selected, Dynamo and/or Host specific fields will pop-up as shown in the image below.

Searching for packages
Publishing a package
Package settings
Package in Dynamo Library
Publish a package in Package Manager
Publish a package version
Package manager web client
New UI to update Package Details for Published Packages
Edit Compatibility Info for Published Packages - Step 1
Which Option to Choose for "Edit Compatibility Info" workflow
Edit Compatibility Info Options
Edit Compatibility Info - Step 2