Dynamo
Primer for v2.0
Français
Français
  • À propos
  • Introduction
    • Qu’est-ce que Dynamo et comment fonctionne-t-il ?
    • Manuel d’utilisation du guide, communauté et plate-forme Dynamo
  • Configuration de Dynamo
  • Interface utilisateur
    • Espace de travail
    • Bibliothèque
  • Nœuds et fils
  • Nœuds et concepts essentiels
    • Index des nœuds
    • Géométrie pour la conception informatique
      • Présentation de la géométrie
      • Vecteur, plan et système de coordonnées
      • Points
      • Courbes
      • Surfaces
      • Solides
      • Maillages
    • Blocs de construction des programmes
      • Données
      • Math
      • Logique
      • Chaînes
      • Couleur
    • Conception avec des listes
      • Qu’est-ce qu’une liste
      • Utilisation des listes
      • Listes de listes
      • Listes à n dimensions
    • Dictionnaires dans Dynamo
      • Qu’est-ce qu’un dictionnaire ?
      • Nœuds de dictionnaire
      • Dictionnaires dans les blocs de code
      • Cas d’utilisation de Revit
  • Packages et nœuds personnalisés
    • Nœuds personnalisés
      • Présentation des nœuds personnalisés
      • Création d’un nœud personnalisé
      • Publication dans votre bibliothèque
    • Packages
      • Présentation des packages
      • Étude de cas de package – Mesh Toolkit
      • Développement d'un package
      • Publication d’un package
      • Importation Zero-Touch
  • Dynamo pour Revit
    • La connexion Revit
    • Sélection
    • Édition
    • Création
    • Personnalisation
    • Documentation
  • Dynamo for Civil 3D
    • La connexion de Civil 3D
    • Mise en route
    • Bibliothèque de nœuds
    • Exemples de workflows
      • Routes
        • Positionnement des lampadaires
      • Terrain
        • Positionnement des services
      • Réseaux techniques
        • Renommer des structures
      • Rail
        • Zone de dégagement
      • Topographie
        • Gestion des groupes de points
    • Concepts avancés
      • Liaison d’objet
      • Python et Civil 3D
    • Lecteur Dynamo
    • Packages utiles
    • Ressources
  • Version bêta de Dynamo dans Forma
    • Configurer Dynamo Player dans Forma
    • Ajouter et partager des graphes dans Dynamo Player
    • Exécuter des graphes dans Dynamo Player
    • Différences entre les services de calcul Dynamo et Dynamo Desktop
  • Codage dans Dynamo
    • Nœuds Code Block et DesignScript
      • Qu’est-ce qu’un bloc de code ?
      • Syntaxe DesignScript
      • Raccourci
      • Fonctions
    • Géométrie avec DesignScript
      • Concepts de base de la géométrie DesignScript
      • Primitives géométriques
      • Calcul vectoriel
      • Courbes : points de contrôle et interpolés
      • Conversion, rotation et autres transformations
      • Surfaces : interpolation, points de contrôle, lissage, révolution
      • Définition des paramètres géométriques
      • Intersection et ajustement
      • Opérations booléennes géométriques
      • Générateurs de points Python
    • Python
      • Nœuds Python
      • Python et Revit
      • Configuration de votre propre gabarit Python
    • Changements relatifs au langage
  • Conseils d’utilisation
    • Stratégies de graphiques
    • Stratégies de script
    • Références concernant la création et la gestion des scripts
    • Gestion de votre programme
    • Utilisation efficace de jeux de données volumineux dans Dynamo
  • Exemples de workflows
    • Workflows de mise en route
      • Vase paramétrique
      • Points d’attraction
    • Index de concept
  • Guide du développeur
    • Générer Dynamo à partir de la source
      • Générer DynamoRevit à partir de la source
      • Gestion et mise à jour des dépendances dans Dynamo
    • Développer pour Dynamo
      • Mise en route
      • Étude de cas Zero-Touch : nœud grille
      • Exécuter des scripts Python dans des nœuds Zero-Touch (C#)
      • Aller plus loin avec le Zero-Touch
      • Personnalisation avancée des nœuds Dynamo
      • Utilisation de types COM (interopérabilité) dans les packages Dynamo
      • Étude de cas de modèle de nœud : interface utilisateur personnalisée
      • Mise à jour des packages et des bibliothèques Dynamo pour Dynamo 2.x
      • Mise à jour des packages et des bibliothèques Dynamo pour Dynamo 3.x
      • Extensions
      • Définition de l’organisation des packages personnalisés pour Dynamo 2.0+
      • Interface en ligne de commande Dynamo
      • Intégration Dynamo
      • Développement pour Dynamo for Revit
      • Publier un package
      • Générer un package à partir de Visual Studio
      • Extensions en tant que packages
    • Demandes de tirage
    • Test des attentes
    • Exemples
  • Annexe
    • Questions fréquemment posées
    • Programmation visuelle et Dynamo
    • Ressources
    • Informations sur la nouvelle version
    • Packages utiles
    • Fichiers d’exemple
    • Carte d’intégration de l’hôte
    • Télécharger le PDF.
    • Raccourcis clavier de Dynamo
Powered by GitBook
On this page
  • Quelles sont les options proposées ?
  • Pour Dynamo
  • Dans Dynamo
  • Quels sont les avantages/inconvénients de chacun ?
  • Présentation du contrôle des versions de Dynamo et des modifications apportées à l’API (1.x → 2.x)
  • Autorisation de distribuer des binaires dans un package
  • Considérations relatives aux performances de l’interface utilisateur Dynamo
Edit on GitHub
Export as PDF
  1. Guide du développeur

Développer pour Dynamo

PreviousGestion et mise à jour des dépendances dans DynamoNextMise en route

Last updated 2 months ago

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

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

  • 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.

  • 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é.

  • 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.

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 :

  • é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.

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.

Considérations relatives aux performances de l’interface utilisateur Dynamo

À l’heure où nous écrivons ces lignes, Dynamo utilise principalement WPF (Windows Presentation Foundation) pour afficher son interface utilisateur. WPF est un système complexe et puissant basé sur xaml et les liaisons. Comme Dynamo a une interface utilisateur complexe, elle peut facilement se bloquer ou engendrer des fuites de mémoire. L’exécution du graphe et les mises à jour de l’interface utilisateur peuvent se mêler et entraîner une dégradation des performances.

Le guide contient des instructions sur l’.

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 .

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 .

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 .

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 .

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’ dans le guide ;

Les modifications de l’API sont répertoriées sur le . 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 , sinon ils ne s’ouvriront pas dans Dynamo 2.0.

La documentation de l’API Dynamo couvre actuellement les fonctionnalités de base :

Reportez-vous à la page Wiki qui vous aidera à éviter quelques pièges courants lors de la modification du code de Dynamo.

importation de bibliothèques Zero-Touch
Stratégies d’utilisation de scripts
guide
guide
guide
Wiki de Github sur Dynamo
constructeur JSON
http://dynamods.github.io/DynamoAPI
Considérations relatives aux performances Dynamo
exemple d’A-Forge
Trois environnements de développement
Interface Visual Studio
Développement dans l’espace de travail Dynamo avec le nœud Python
Bloc de code, script Python et nœud personnalisé
Nœuds Zero-Touch
Nœuds dérivés de NodeModel
Document des modifications de l’API Dynamo
Documentation de l’API