An open API service indexing awesome lists of open source software.

https://github.com/alvpickmans/dynamo-dev-starter-kit

Visual Studio Extension (VSIX) providing some basic template set up for developing Dynamo ZeroTouch and Explicit Nodes packages
https://github.com/alvpickmans/dynamo-dev-starter-kit

csharp dynamods

Last synced: about 1 year ago
JSON representation

Visual Studio Extension (VSIX) providing some basic template set up for developing Dynamo ZeroTouch and Explicit Nodes packages

Awesome Lists containing this project

README

          

# Dynamo Development Starter Kit

The set up of a project aiming the [Dynamo](http://dynamobim.org/) platform can be hard and frustrating if not use to it. This project is a Visual Studio Extension (VSIX) containing templates for the set up of Dynamo package projects, providing boilerplates so you can just start developing your stuff.

## Getting Started

These instructions will get you started on how to install the VSIX and start developing your own Dynamo packages.
*Bear in mind these templates are just one of many ways of setting up Visual Studio to seamlessly create a base project scaffolding.*

### Prerequisites

- [Visual Studio 2017 or 2019](https://visualstudio.microsoft.com/downloads/)
- [Dynamo Visual Programming](http://dynamobim.org/download/)

### Installation

Having the project downloaded and Visual Studio totally closed, execute the `.vsix` file within the `/dist` folder. This pops up a window that will install the extension along with templates. You can also install the latest stable version by downloading the `.zip` bundle from the [latest release](https://github.com/alvpickmans/Dynamo-Dev-Starter-Kit/releases/latest) section.

![Installing](assets/images/installation.gif)

### Usage

*Note: Bear in mind that the templates distributed on this extension are by no means mandatory and just represent my personal way of structuring projects. These templates can be modified when [building the extension from source](#building-from-source)*

![Usage](assets/images/usage.gif)

- Within Visual Studio, create a new project. Under Visual C#, you should have three new templates:
- `Dynamo Template - ZeroTouch`
- `Dynamo Template - Explicit Nodes`
- `Dynamo Template - ViewExtension`
- Fill in the parameters of your projects. The panel on the rigth displays a preview of the `pkg.json` file that will get generated.
- Once accepted, it will generate a project scaffolding on the selected location.
- Required Dynamo Libraries are already define. In order to restore them, press right-click on the solution's tab and select `Restore Nuget Packages`. This will download them from NuGet and you'll be ready to go! Otherwise, these references will be restored the first time you build the solution.
![Restoring NuGet](assets/images/vs-restore-nuget.png)
- Finally when compiling, a package folder will be created at `{YourSolutionName}/dist/{YourProjectName}`. If configuration mode is on `Debug`, this package folder will be copied to the Dynamo packages folder, following the below snippet for the `AfterBuild` target or similar:

```xml

Sample Project
2.0
$(SolutionDir)dist\$(PackageName)\
$(PackageFolder)bin\
$(PackageFolder)extra\
$(PackageFolder)dyf\






















$(AppData)\Dynamo\Dynamo Core\$(VersionFolder)\packages
$(AppData)\Dynamo\Dynamo Revit\$(VersionFolder)\packages





```

## Building from Source

In order to build the project from source, Visual Studio SDK must be [installed](https://msdn.microsoft.com/en-us/library/mt683786.aspx?f=255&MSPPError=-2147217396).
The solution has 4 projects:
- **DynamoDev.StarterKitExtension**: Handling the VSIX extension and contains the Package Definition window.
- **DynamoDev.ZeroTouch**: Contains the template to deploy a ZeroTouch package (not requiring custom UI).
- **DynamoDev.ExplicitNodes**: Contains the template to deploy a Dynamo package with nodes requiring UI customization.
- **DynamoDev.ViewExtension**: Contains the template to deploy a Dynamo ViewExtension.

On debugging, another instance of Visual Studio will open and the extension can be used.
On Release configuration mode, after being built the corresponding files will be copied to the `/dist` folder.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.