{"id":16623034,"url":"https://github.com/alvpickmans/dynamo-dev-starter-kit","last_synced_at":"2025-03-21T14:31:55.006Z","repository":{"id":93303437,"uuid":"141764767","full_name":"alvpickmans/Dynamo-Dev-Starter-Kit","owner":"alvpickmans","description":"Visual Studio Extension (VSIX) providing some basic template set up for developing Dynamo ZeroTouch and Explicit Nodes packages","archived":false,"fork":false,"pushed_at":"2020-05-28T06:23:30.000Z","size":5691,"stargazers_count":37,"open_issues_count":1,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-01T07:22:11.062Z","etag":null,"topics":["csharp","dynamods"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alvpickmans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-20T22:57:59.000Z","updated_at":"2024-02-10T18:59:25.000Z","dependencies_parsed_at":"2023-03-30T13:32:41.722Z","dependency_job_id":null,"html_url":"https://github.com/alvpickmans/Dynamo-Dev-Starter-Kit","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvpickmans%2FDynamo-Dev-Starter-Kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvpickmans%2FDynamo-Dev-Starter-Kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvpickmans%2FDynamo-Dev-Starter-Kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvpickmans%2FDynamo-Dev-Starter-Kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alvpickmans","download_url":"https://codeload.github.com/alvpickmans/Dynamo-Dev-Starter-Kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141485,"owners_count":20404837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dynamods"],"created_at":"2024-10-12T03:22:11.064Z","updated_at":"2025-03-21T14:31:55.000Z","avatar_url":"https://github.com/alvpickmans.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dynamo Development Starter Kit\n\nThe 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.\n\n## Getting Started\n\nThese instructions will get you started on how to install the VSIX and start developing your own Dynamo packages. \n*Bear in mind these templates are just one of many ways of setting up Visual Studio to seamlessly create a base project scaffolding.*\n\n### Prerequisites\n\n- [Visual Studio 2017 or 2019](https://visualstudio.microsoft.com/downloads/)\n- [Dynamo Visual Programming](http://dynamobim.org/download/)\n\n### Installation\n\nHaving 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.\n\n![Installing](assets/images/installation.gif)\n\n### Usage\n\n*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)*\n\n![Usage](assets/images/usage.gif)\n\n- Within Visual Studio, create a new project. Under Visual C#, you should have three new templates: \n  - `Dynamo Template - ZeroTouch`\n  - `Dynamo Template - Explicit Nodes`\n  - `Dynamo Template - ViewExtension`\n- Fill in the parameters of your projects. The panel on the rigth displays a preview of the `pkg.json` file that will get generated.\n- Once accepted, it will generate a project scaffolding on the selected location.\n- 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.\n![Restoring NuGet](assets/images/vs-restore-nuget.png)\n- 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:\n\n```xml\n\u003cPropertyGroup\u003e\n    \u003cPackageName\u003eSample Project\u003c/PackageName\u003e\n    \u003cVersionFolder\u003e2.0\u003c/VersionFolder\u003e \n    \u003cPackageFolder\u003e$(SolutionDir)dist\\$(PackageName)\\\u003c/PackageFolder\u003e\n    \u003cBinFolder\u003e$(PackageFolder)bin\\\u003c/BinFolder\u003e\n    \u003cExtraFolder\u003e$(PackageFolder)extra\\\u003c/ExtraFolder\u003e\n    \u003cDyfFolder\u003e$(PackageFolder)dyf\\\u003c/DyfFolder\u003e\n  \u003c/PropertyGroup\u003e\n  \u003cTarget Name=\"AfterBuild\"\u003e\n    \u003cItemGroup\u003e\n      \u003cDlls Include=\"$(OutDir)*.dll\" /\u003e\n      \u003cPdbs Include=\"$(OutDir)*.pdb\" /\u003e\n      \u003cXmls Include=\"$(OutDir)*.xml\" /\u003e\n      \u003cXmls Include=\"$(ProjectDir)manifests\\*.xml\" /\u003e\n      \u003cPackageJson Include=\"$(ProjectDir)manifests\\pkg.json\" /\u003e\n    \u003c/ItemGroup\u003e\n    \u003cCopy SourceFiles=\"@(Dlls)\" DestinationFolder=\"$(BinFolder)\" /\u003e\n    \u003cCopy SourceFiles=\"@(Pdbs)\" DestinationFolder=\"$(BinFolder)\" /\u003e\n    \u003cCopy SourceFiles=\"@(Xmls)\" DestinationFolder=\"$(BinFolder)\" /\u003e\n    \u003cCopy SourceFiles=\"@(PackageJson)\" DestinationFolder=\"$(PackageFolder)\" /\u003e\n    \u003cMakeDir Directories=\"$(ExtraFolder)\" Condition=\"!Exists($(ExtraFolder))\" /\u003e\n    \u003cMakeDir Directories=\"$(DyfFolder)\" Condition=\"!Exists($(DyfFolder))\"  /\u003e\n    \u003cCallTarget Condition=\"'$(Configuration)' == 'Debug'\" Targets=\"PackageDeploy\" /\u003e\n  \u003c/Target\u003e\n  \u003cTarget Name=\"PackageDeploy\"\u003e\n    \u003cItemGroup\u003e\n      \u003cSourcePackage Include=\"$(PackageFolder)**\\*\" /\u003e\n    \u003c/ItemGroup\u003e\n    \u003cPropertyGroup\u003e\n      \u003cDynamoCore\u003e$(AppData)\\Dynamo\\Dynamo Core\\$(VersionFolder)\\packages\u003c/DynamoCore\u003e\n      \u003cDynamoRevit\u003e$(AppData)\\Dynamo\\Dynamo Revit\\$(VersionFolder)\\packages\u003c/DynamoRevit\u003e\n    \u003c/PropertyGroup\u003e\n    \u003c!--Copying to Package Folder--\u003e\n    \u003cCopy SourceFiles=\"@(SourcePackage)\" Condition=\"Exists($(DynamoCore))\" DestinationFolder=\"$(DynamoCore)\\$(PackageName)\\%(RecursiveDir)\" /\u003e\n    \u003cCopy SourceFiles=\"@(SourcePackage)\" Condition=\"Exists($(DynamoRevit))\" DestinationFolder=\"$(DynamoRevit)\\$(PackageName)\\%(RecursiveDir)\" /\u003e\n  \u003c/Target\u003e\n```\n\n\n## Building from Source\n\nIn order to build the project from source, Visual Studio SDK must be [installed](https://msdn.microsoft.com/en-us/library/mt683786.aspx?f=255\u0026MSPPError=-2147217396).\nThe solution has 4 projects:\n- **DynamoDev.StarterKitExtension**: Handling the VSIX extension and contains the Package Definition window.\n- **DynamoDev.ZeroTouch**: Contains the template to deploy a ZeroTouch package (not requiring custom UI).\n- **DynamoDev.ExplicitNodes**: Contains the template to deploy a Dynamo package with nodes requiring UI customization.\n- **DynamoDev.ViewExtension**: Contains the template to deploy a Dynamo ViewExtension.\n\nOn debugging, another instance of Visual Studio will open and the extension can be used.\nOn Release configuration mode, after being built the corresponding files will be copied to the `/dist` folder.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvpickmans%2Fdynamo-dev-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falvpickmans%2Fdynamo-dev-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvpickmans%2Fdynamo-dev-starter-kit/lists"}