Développer pour Dynamo

Quel que soit le niveau d’expérience, la plateforme Dynamo est conçue pour que tous les utilisateurs soient des contributeurs. Il existe plusieurs options de développement qui ciblent des capacités et des niveaux de compétence différents, chacune avec ses forces et ses faiblesses selon l’objectif. Nous présentons ci-dessous les différentes options et comment les choisir.

Trois environnements de développement : Visual Studio, Python Editor et Code Block DesignScript

Quelles sont les options proposées ?

Les options de développement de Dynamo sont principalement réparties en deux catégories : pour Dynamo et dans Dynamo. Les deux catégories peuvent être considérées comme : « dans » Dynamo implique un contenu créé à l’aide de l’environnement de développement intégré (IDE) de Dynamo pour être utilisé dans Dynamo, et « pour » Dynamo implique l’utilisation d’outils externes pour créer du contenu qui sera importé dans Dynamo pour être utilisé. Bien que ce guide soit axé sur le développement pour Dynamo, les ressources pour tous les processus sont décrites ci-dessous.

Pour Dynamo

Ces nœuds permettent le plus haut degré de personnalisation. De nombreux packages sont créés avec cette méthode, et elle est nécessaire pour contribuer à la source de Dynamo. Le processus de génération sera abordé dans ce guide.

  • Nœuds Zero-Touch

  • Nœuds dérivés de NodeModel

  • Extensions

Le guide contient des instructions sur l’importation de bibliothèques Zero-Touch.

Visual Studio est utilisé comme environnement de développement pour les nœuds Zero Touch et NodeModel dans les explications ci-dessous.

L’interface Visual Studio avec un projet que nous allons développer

Dans Dynamo

Bien que ces processus existent dans l’espace de travail de programmation visuelle et soient relativement simples, ils constituent tous des options viables pour personnaliser Dynamo. Le guide couvre ces aspects de manière détaillée et fournit des conseils et des meilleures pratiques en matière d’utilisation de scripts dans le chapitre Stratégies d’utilisation de scripts.

  • Les blocs de code exposent DesignScript dans l’environnement de programmation visuel, ce qui permet des flux de travail de nœud et de script de texte flexibles. Une fonction dans un bloc de code peut être appelée par n’importe quel élément de l’espace de travail.

    Téléchargez un exemple de bloc de code (cliquez avec le bouton droit de la souris et choisissez Enregistrer sous) ou découvrez une présentation détaillée dans le guide.

  • Les nœuds personnalisés sont des conteneurs destinés à des ensembles de nœuds ou même à des graphiques entiers. Ils sont un moyen efficace de collecter les routines fréquemment utilisées et de les partager avec la communauté.

    Téléchargez un exemple de nœud personnalisé (cliquez avec le bouton droit de la souris et choisissez Enregistrer sous) ou découvrez une présentation détaillée dans le guide.

  • Les nœuds Python sont une interface de script dans l’espace de travail de programmation visuelle, similaire aux blocs de code. Les bibliothèques Autodesk.DesignScript utilisent une notation par points similaire à DesignScript.

    Téléchargez un exemple de nœud Python (cliquez avec le bouton droit de la souris et choisissez Enregistrer sous) ou découvrez une présentation détaillée dans le guide.

Le développement dans l’espace de travail de Dynamo est un outil puissant qui permet d’obtenir un retour immédiat.

Développement dans l’espace de travail Dynamo avec le nœud Python

Quels sont les avantages/inconvénients de chacun ?

Les options de développement de Dynamo ont été conçues pour répondre à la complexité d’un besoin de personnalisation. Que ce soit pour écrire un script récursif en Python ou pour générer une interface utilisateur de nœud entièrement personnalisée, il existe des options d’implémentation de code qui n’impliquent que ce qui est nécessaire pour être opérationnel.

Blocs de code, nœud Python et nœuds personnalisés dans Dynamo

Ces options sont simples pour écrire du code dans l’environnement de programmation visuelle Dynamo. L’espace de programmation visuelle Dynamo permet d’accéder à Python, DesignScript et de contenir plusieurs nœuds dans un nœud personnalisé.

Avec ces méthodes, vous pouvez :

  • commencer à écrire des scripts Python ou DesignScript avec peu ou pas de configuration ;

  • importer des bibliothèques Python dans Dynamo ;

  • partager des blocs de code, des nœuds Python et des nœuds personnalisés avec la communauté Dynamo dans un package.

Nœuds Zero-Touch

Zero Touch fait référence à une méthode pointer-cliquer simple permettant d’importer des bibliothèques C#. Dynamo lit les méthodes publiques d’un fichier .dll et les convertit en nœuds Dynamo. Vous pouvez utiliser le Zero-Touch pour développer vos propres nœuds et packages personnalisés.

Avec cette méthode, vous pouvez :

  • importer une bibliothèque qui n’a pas nécessairement été développée pour Dynamo et créer automatiquement une suite de nouveaux nœuds, comme l’exemple d’A-Forge dans le guide ;

  • écrire des méthodes C# et les utiliser facilement comme nœuds dans Dynamo ;

  • partager une bibliothèque C# en tant que nœuds avec la communauté Dynamo dans un package.

Nœuds dérivés de NodeModel

Ces nœuds permettent d’approfondir la structure de Dynamo. Ils sont basés sur la classe NodeModel et écrits en C#. Bien que cette méthode soit la plus souple et la plus puissante, la plupart des aspects du nœud doivent être définis de manière explicite et les fonctions doivent se trouver dans un ensemble séparé.

Avec cette méthode, vous pouvez :

  • créer une interface utilisateur de nœuds entièrement personnalisable avec des curseurs, des images, des couleurs, etc. (p. ex. un nœud ColorRange) ;

  • accéder et agir sur la zone de dessin Dynamo ;

  • personnaliser la combinaison ;

  • charger dans Dynamo comme un package.

Présentation du contrôle des versions de Dynamo et des modifications apportées à l’API (1.x → 2.x)

Comme Dynamo est régulièrement mis à jour, des modifications peuvent être apportées à une partie de l’API utilisée par un package. Il est important de suivre ces modifications pour s’assurer que les packages existants continuent à fonctionner correctement.

Les modifications de l’API sont répertoriées sur le Wiki de Github sur Dynamo. Cela couvre les modifications apportées à DynamoCore, aux bibliothèques et aux espaces de travail.

Le passage du format de fichier XML au format JSON dans la version 2.0 est un exemple de changement important à venir. Les nœuds dérivés de NodeModel auront désormais besoin d’un constructeur JSON, sinon ils ne s’ouvriront pas dans Dynamo 2.0.

La documentation de l’API Dynamo couvre actuellement les fonctionnalités de base : http://dynamods.github.io/DynamoAPI

Autorisation de distribuer des binaires dans un package

Faites attention aux fichiers .dll inclus dans un package qui sont téléchargés dans le gestionnaire de package. Si l’auteur du package n’a pas créé le fichier .dll, il doit disposer des droits nécessaires pour le partager.

Si un package comprend des binaires, les utilisateurs doivent être avertis lors du téléchargement que celui-ci en contient.

Last updated