CIvil 3D & Dynamo : Code Block, Design Script

DesignScript : Quand la programmation visuelle évolue vers la puissance du code

Dans l’univers de la conception paramétrique, DesignScript représente une évolution majeure pour les professionnels qui souhaitent dépasser les limites de la programmation visuelle. Si vous utilisez déjà Dynamo, vous connaissez la simplicité des connexions entre nœuds qui permettent de créer des logiques de conception complexes. Mais que faire quand vos graphes deviennent trop denses, trop complexes à gérer ?

C’est là qu’intervient DesignScript, un langage de programmation textuel spécialement conçu pour faire le pont entre la simplicité de la programmation visuelle et la puissance du code. Contrairement aux apparences, il ne s’agit pas d’une rupture, mais d’une progression naturelle dans votre parcours de concepteur-programmeur.

Imaginez DesignScript comme une langue qui vous permet d’exprimer vos idées de conception avec plus de précision et d’efficacité. Au lieu de connecter visuellement des dizaines de nœuds, vous pouvez désormais écrire quelques lignes de code qui accomplissent la même tâche, tout en ouvrant la porte à des possibilités bien plus avancées.

Ce langage a été développé avec un objectif clair : permettre aux designers et architectes de franchir le pas vers la programmation textuelle tout en conservant la logique familière de Dynamo. Il intègre les conventions standard de la programmation, ce qui signifie que les compétences que vous développerez seront transférables à d’autres langages de programmation.

Dans cet article, nous explorerons comment DesignScript peut transformer votre approche de la conception paramétrique, en combinant le meilleur des deux mondes : l’intuitivité de la programmation visuelle et la puissance du code écrit.

… [Suite à venir]

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 !