Dynamo : Dictionary

Un dictionnaire est un type de données composé d’un ensemble de paires clé-valeur, où chaque clé est unique dans chaque ensemble. Un dictionnaire n’a pas d’ordre et vous pouvez, en fait, rechercher des éléments à l’aide d’une clé au lieu d’une valeur d’index, comme dans une liste. Dans Dynamo 2.0, les clés peuvent uniquement être des chaînes.

Une très bonne introduction aux dictionnaires dans Dynamo est disponible dans cette vidéo Youtube du UK Dynamo User Group North.

Dynamo – Custom Node, Simplifiez vos workflows !

Article LinkedIn : https://tinyurl.com/25v2z8g4

Objectif

Découvrez comment passer au niveau supérieur avec Dynamo en créant vos propres nœuds, les ‘Custom Node’.
Fini les scripts surchargés et répétitifs !

Qu’est-ce qu’un Custom Node ?

Même si Dynamo propose maintenant une multitude de noeuds, la possibilité de créer et d’utiliser des nœuds personnalisés apporte de nombreux avantages, à savoir :

  • Un « Super Node » parfaitement adapté à nos besoins,
  • Regroupe plusieurs Nodes en une seule unité,
  • Possède ses propres entrées/sorties,
  • Réutilisable dans tous vos scripts,
  • Partageable avec votre équipe.

Pourquoi créer des Customs Nodes

  • Simplifiez vos scripts
  • Évitez la répétition de code
  • Standardisez vos méthodes
  • Gagnez en productivité
  • Créez votre bibliothèque d’outils

Ci-dessous, je vous propose un exemple de ‘Custom Node‘, basé sur mon premier post, l’accès et la récupération des données d’un fichier Excel.

Ci-dessous, je vous propose un exemple de ‘Custom Node‘, , basé sur mon premier post, l’accès et la récupération des données d’un fichier Excel.

1️⃣ Script complet : en haut normal, en bas, remplacé par un ‘Custom Node‘,
2️⃣ Custom Node : 2 Input (Nom du fichier Excel et le nom de l’onglet), 2 Output (Message d’erreur et les données)
3️⃣ Custom Node : Détail, quasiment identique au graphe normal
4️⃣ Input 1 : Nom du fichier excel, le paramétrage dans le ‘Code Block’ configure le noeud à son utilisation
5️⃣ Input 2/Output 1 : Nom de l’onglet et le message d’erreur éventuel
6️⃣ Custom Node Library : Disponible dans la librairie, comme les autres noeuds
7️⃣ Custom Node Help : Fichier d’aide configurable.

🚀 𝗖𝗼𝗻𝗰𝗹𝘂𝘀𝗶𝗼𝗻

L’utilisation de ‘𝘊𝘶𝘴𝘵𝘰𝘮 𝘕𝘰𝘥𝘦’ permet de simplifier les graphes Dynamo et la compréhension du script, de venir compléter les nœuds standard. Ils sont également réutilisable et peuvent être partager via une bibliothèque, ce qui permet de réduire les coûts de développement.

𝘾𝙪𝙨𝙩𝙤𝙢 𝙉𝙤𝙙𝙚𝙨: 𝘾𝙤𝙙𝙚 𝙇𝙚𝙨𝙨, 𝘽𝙪𝙞𝙡𝙙 𝙈𝙤𝙧𝙚, 𝘾𝙪𝙩 𝘾𝙤𝙨𝙩𝙨 !

🤝Besoin d’un accompagnement pour réaliser vos scripts Dynamo qui répondent à vos besoins ou créer une ‘Custom Nodes Library’ pour diminuer vos coûts ? N’hésitez pas, contactez-moi dès aujourd’hui !

Dynamo – Code Block et fonction

Cet article fait suite à l’article sur l’utilisation du Node ‘PressurePart.PartData’ ou comment exploiter efficacement les données du catalogue

🎯Objectif 1 : Récupérer les données du dictionnaire ‘PressurePart.PartData’

🎯Objectif 2 : Créer une fonction et l’utiliser dans des ‘Code Block’

Avec les fonctions dans les Codes Block, on montent un peu de niveau 😉

1️⃣ Exploitation du dictionnaire de données

Le Node ‘PressurePart.PartData’ nous renvoie un dictionnaire contenant les propriétés du composant. Ces propriétés sont stockées sous la forme de clés/valeurs.

Pour en extraire les valeurs :

  • Utilisez ‘Dictionary.ValueAtKey’ pour accéder à une propriété spécifique (valeur d’une clé).

Astuce

  • Vérifiez d’abord les clés disponibles avec ‘Dictionary.Keys’ pour connaître toutes les propriétés accessibles ou visualisez les avec un Node ‘Watch’

2️⃣Fonction dans le Code Block

Les Code Blocks dans Dynamo, sont le graal, pour tout développeur ou non. Outre leur fonctions basiques de saisie ou de traitement de données, ils permettent aussi d’écrire des fonctions personnalisées.

Voici comment définir et utiliser une fonction de conversion :

Principe de définition de fonction (dans un Code Block indépendant) :

𝘥𝘦𝘧 𝘯𝘰𝘮𝘋𝘦𝘓𝘢𝘍𝘰𝘯𝘤𝘵𝘪𝘰𝘯(𝘱𝘢𝘳𝘢𝘮𝘦̀𝘵𝘳𝘦𝘴):
{
 𝘳𝘦𝘴𝘶𝘭𝘵 = ...;
 𝘳𝘦𝘵𝘶𝘳𝘯 𝘳𝘦𝘴𝘶𝘭𝘵;
};

Notre fonction de conversion :

 𝘥𝘦𝘧 𝘗𝘕_𝘪𝘯_𝘣𝘢𝘳(𝘪𝘯1):
{
 𝘗𝘕_𝘣𝘢𝘳 = 𝘪𝘯1*1000;
 𝘳𝘦𝘵𝘶𝘳𝘯 𝘗𝘕_𝘣𝘢𝘳;
};

Astuces pour la définition de fonctions dans les Code Blocks :

  • Utilisez des noms explicites pour vos fonctions
  • Un seul « return » par fonction
  • Possibilité d’ajouter plusieurs paramètres : def maFonction(param1, param2)
  • Les commentaires commencent par // ou /* */

Envie d’aller plus loin avec Dynamo ?

Abonnez-vous, likez et partagez ce post ou contactez-moi pour toutes questions ou prestations sur mesure, adaptées à vos besoins en scripts Dynamo !