Les extensions Dynamo peuvent être déployées dans le gestionnaire de package tout comme les bibliothèques de nœuds Dynamo. Lorsqu’un package installé contient une extension de vue, l’extension est chargée à l’exécution lors du chargement de Dynamo. Vous pouvez vérifier dans la console Dynamo que l’extension a été correctement chargée.
La structure d’un package d’extension est la même que celle d’un package normal contenant...
En supposant que vous ayez déjà créé votre extension, vous disposerez (au minimum) d’un assemblage .NET et d’un fichier manifest. L’assemblage doit contenir une classe qui implémente IViewExtension
ou IExtension
. Le fichier manifest .XML indique à Dynamo la classe à instancier pour lancer votre extension. Pour que le gestionnaire de package puisse localiser correctement l’extension, le fichier manifest doit correspondre exactement à l’emplacement et au nom de l’assemblage.
Placez les fichiers d’assemblage dans le dossier bin
et le fichier manifest dans le dossier extra
. Toutes les ressources supplémentaires peuvent également être placées dans ce dossier.
Exemple de fichier manifest .XML :
Une fois que vous avez un dossier contenant les sous-répertoires décrits ci-dessus, vous êtes prêt à envoyer (télécharger) vers le gestionnaire de package. Notez que vous ne pouvez pas publier de packages à partir de Dynamo Sandbox. Cela signifie que vous devez utiliser Dynamo Revit. Une fois dans Dynamo Revit, accédez à Packages => Publier le nouveau package. Cette opération invite l’utilisateur à se connecter à son compte Autodesk auquel il souhaite associer le package.
À ce stade, vous devriez vous trouver dans la fenêtre normale de publication de package où vous saisirez tous les champs requis concernant votre package/extension. Il existe une étape supplémentaire très importante qui nécessite de s’assurer qu’aucun de vos fichiers d’assemblage n’est marqué comme bibliothèque de nœuds. Pour ce faire, cliquez avec le bouton droit de la souris sur les fichiers que vous avez importés (dossier de package créé ci-dessus). Un menu contextuel apparaît et vous permet de cocher (ou décocher) cette option. Tous les assemblages d’extension doivent être décochés.
Avant de publier publiquement, vous devez toujours publier localement pour vous assurer que tout fonctionne comme prévu. Une fois la vérification terminée, vous pouvez démarrer en ligne en sélectionnant Publier.
Pour vérifier que votre package a été correctement téléchargé, vous devez être en mesure de le rechercher en fonction du nom et des mots clés spécifiés lors de l’étape de publication. Enfin, il est important de noter que ces extensions nécessitent un redémarrage de Dynamo avant de fonctionner. En général, ces extensions requièrent des paramètres spécifiés lors du démarrage de Dynamo.
Si vous développez des assemblages destinés à être publiés sous forme de package pour Dynamo, le projet peut être configuré pour regrouper toutes les ressources nécessaires et les placer dans une structure de répertoire compatible avec le package. Cela permettra de tester rapidement le projet en tant que package et de simuler l’expérience d’un utilisateur.
Il existe deux méthodes pour générer un package dans Visual Studio :
ajouter des événements après la génération via la boîte de dialogue Paramètres du projet qui utilisent xcopy ou des scripts Python pour copier les fichiers nécessaires ;
utiliser la cible de génération « AfterBuild » dans le fichier .csproj
pour créer des tâches de copie de fichiers et de répertoires.
« AfterBuild » est la méthode préférée pour ces types d’opérations (et celle couverte par ce guide) car elle ne repose pas sur la copie de fichiers qui peuvent ne pas être disponibles sur la machine de génération.
Configurez la structure de répertoires dans le dépôt de sorte que les fichiers source soient séparés des fichiers de package. En travaillant avec l’étude de cas CustomNodeModel, placez le projet Visual Studio et tous les fichiers associés dans un nouveau dossier src
. C’est dans ce dossier que seront stockés tous les packages générés par le projet. La structure du dossier devrait maintenant être la suivante :
Déplacez les fichiers de projet vers le nouveau dossier
src
.
Maintenant que les fichiers source se trouvent dans un dossier distinct, ajoutez une cible AfterBuild
au fichier CustomNodeModel.csproj
dans Visual Studio. Cela devrait permettre de copier les fichiers nécessaires dans un nouveau dossier de package. Ouvrez le fichier CustomNodeModel.csproj
dans un éditeur de texte (nous avons utilisé Atom) et placez la cible de génération avant la balise de fermeture </Project>
. Cette cible AfterBuild copie tous les fichiers .dll, .pbd, .xml et .config dans un nouveau dossier bin et crée un fichier dyf et des dossiers supplémentaires.
Nous devons nous assurer que la cible a été ajoutée au fichier
CustomNodeModel.csproj
(et non à un autre fichier de projet) et que le projet ne possède aucun paramètre postérieur à la génération.
Placez la cible AfterBuild avant la balise de fin
</Project>
.
Dans la section <ItemGroup>
, un certain nombre de variables sont définies pour représenter des types de fichiers spécifiques. Par exemple, la variable Dll
représente tous les fichiers du répertoire de sortie dont l’extension est .dll
.
La tâche Copy
consiste à copier tous les fichiers .dll
dans un répertoire, en particulier le dossier de package vers lequel se fait la génération.
Les packages Dynamo possèdent généralement un dossier dyf
et extra
pour les nœuds personnalisés Dynamo et d’autres ressources telles que des images. Pour créer ces dossiers, nous devons utiliser une tâche MakeDir
. Cette tâche crée un dossier s’il n’existe pas. Vous pouvez ajouter des fichiers manuellement à ce dossier.
Si vous générez le projet, le dossier de projet doit désormais comporter un dossier packages
en plus du dossier src
créé précédemment. Le répertoire packages
contient un dossier contenant tous les éléments nécessaires au package. Vous devez également copier le fichier pkg.json
dans le dossier du package afin que Dynamo sache comment charger le package.
Le nouveau dossier de packages créé par la cible AfterBuild
Le dossier src existant avec le projet
Les dossiers
dyf
etextra
créés à partir de la cible AfterBuildCopiez manuellement le fichier
pkg.json
Vous pouvez désormais publier le package à l’aide du gestionnaire de package de Dynamo ou le copier directement dans le répertoire de package de Dynamo : <user>\AppData\Roaming\Dynamo\1.3\packages
.
Les packages sont un moyen pratique de stocker et de partager des nœuds avec la communauté Dynamo. Un package peut contenir tout ce qui est nécessaire, des nœuds personnalisés créés dans l’espace de travail Dynamo aux nœuds dérivés de NodeModel. Les packages sont publiés et installés à l’aide du gestionnaire de package. En plus de cette page, le guide contient un guide général sur les packages.
Le gestionnaire de package Dynamo est un registre de logiciels (similaire à npm) accessible à partir de Dynamo ou d’un navigateur web. Le gestionnaire de package comprend l’installation, la publication, la mise à jour et la visualisation des packages. Comme npm, il conserve différentes versions des packages. Il permet également de gérer les dépendances de votre projet.
Dans le navigateur, recherchez des packages et consultez les statistiques : https://dynamopackages.com/
Dans Dynamo, le gestionnaire de package inclut les packages d’installation, de publication et de mise à jour.
Rechercher des packages en ligne :
Packages > Search for a Package...
Afficher/modifier les packages installés :
Packages > Manage Packages...
Publier un nouveau package :
Packages > Publish New Package...
Les packages sont publiés à partir du gestionnaire de package dans Dynamo. Le processus recommandé consiste à publier localement, tester le package, puis publier en ligne pour le partager avec la communauté. En utilisant l’étude de cas NodeModel, nous allons suivre les étapes nécessaires pour publier le nœud RectangularGrid en tant que package localement et ensuite en ligne.
Lancez Dynamo et sélectionnez Packages > Publish New Package...
pour ouvrir la fenêtre Publish a Package
.
Sélectionnez
Add file...
pour rechercher les fichiers à ajouter au packageSélectionnez les deux fichiers
.dll
dans l’étude de cas NodeModelSélectionnez
Ok
Une fois les fichiers ajoutés au contenu du package, donnez-lui un nom, une description et une version. Publier un package avec Dynamo crée automatiquement un fichier pkg.json
.
Un package prêt à être publié.
Renseignez les informations requises pour le nom, la description et la version.
Publiez en cliquant sur « Publier localement » et sélectionnez le dossier de package de Dynamo :
AppData\Roaming\Dynamo\Dynamo Core\1.3\packages
pour que le nœud soit disponible dans Core. Publiez toujours localement jusqu’à ce que le package soit prêt à être partagé.
Après avoir publié un package, les nœuds seront disponibles dans la bibliothèque Dynamo sous la catégorie CustomNodeModel
.
Le package que nous venons de créer dans la bibliothèque Dynamo
Une fois que le package est prêt à être publié en ligne, ouvrez le gestionnaire de package et choisissez Publish
puis Publish Online
.
Pour voir comment Dynamo a formaté le package, cliquez sur les trois points verticaux à droite de « CustomNodeModel » et choisissez « Afficher le répertoire racine ».
Sélectionnez
Publish
, puisPublish Online
dans la fenêtre « Publier un package Dynamo ».Pour supprimer un package, sélectionnez
Delete
.
La mise à jour d’un package est un processus similaire à la publication. Ouvrez le gestionnaire de package et sélectionnez Publish Version...
sur le package à mettre à jour, puis entrez une version supérieure.
Sélectionnez
Publish Version
pour mettre à jour un package existant avec de nouveaux fichiers dans le répertoire racine, puis choisissez s’il doit être publié localement ou en ligne.
Le client Web du gestionnaire de package est utilisé exclusivement pour rechercher et afficher des données de package, telles que le contrôle des versions et les statistiques de téléchargement.
Le client Web du gestionnaire de package est accessible à l’adresse suivante : https://dynamopackages.com/