Dans le cours : L'essentiel de Dynamo
Assimiler la logique conditionnelle - Tutoriel Dynamo
Dans le cours : L'essentiel de Dynamo
Assimiler la logique conditionnelle
La logique conditionnelle nous permet de spécifier une action ou un ensemble d'actions en fonction d'un test. Après évaluation du test, nous aurons une valeur booléenne représentant Vrai ou Faux, que nous pourrons utiliser pour contrôler le déroulement de notre script ou de notre programme visuel. Dans cette vidéo, on va explorer la logique booléenne et les expressions conditionnelles, et on va finir par faire un exercice illustrant la transcription d'une logique à une géométrie. Pour démarrer l'exercice, vous pouvez télécharger le fichier qui accompagne cet exercice, ou vous pouvez le reproduire par vous-même. L'instruction If, Si, est un concept-clé de programmation. Donc si cela est vrai, cela se produit, sinon quelque chose d'autre se produira. On va reprendre un bref exemple de chacun de ces trois noeuds, le noeud If, le noeud Formule et le Code Block en action, pour voir comment on utilise l'instruction conditionnelle If, ou le Si. Si on regarde les trois noeuds, on va remarquer qu'ils fonctionnent absolument de la même manière. Pour chaque noeud, à chaque fois on a trois entrées, une entrée pour faire le test, dans ce cas-là ça va être un booléen, une deuxième entrée pour retourner le résultat "vrai" et une troisième entrée pour retourner les résultats "faux". Idem pour le noeud Formule et le Code Block. Donc si je clique sur False, Faux, on va remarquer que le résultat de l'entrée false va apparaître, et vice versa. Donc je clique sur True, Vrai et c'est plutôt la chaîne "Résultat Vrai" qui ressort. Maintenant qu'on a compris comment faire une expression conditionnelle en Dynamo, on va démarrer avec notre exercice. Notre exercice consistera à utiliser une logique pour séparer une liste de nombres pairs d'une autre liste de nombres impairs. Pour cela, on va créer une séquence de nombres allant de 0.000 à 10.000, avec un pas de 1.000. Le résultat, c'est dix nombres allant de 0 à 9. Ensuite on va utiliser ce noeud, qui est l'opérateur modulo et qui détermine le reste de la division de x/y. La sortie de cette liste nous donne une liste de valeurs alternant entre 0 et 1. On rajoute après un test d'égalité et on va comparer notre résultat précédent à 0. Ce sont les valeurs utilisées pour séparer les éléments de la liste, donc 0 ou vrai représente le nombre pair et 1 (faux) représente les nombres impairs. Pour finir, on va rajouter un noeud ListFilterByBoolMask. En effet, ce noeud filtrera les valeurs en deux listes différentes, en fonction du booléen en entrée. Le booléen en entrée, c'était notre liste true ou false, vrai ou faux, la liste qu'on veut séparer étant la toute première liste représentée par notre séquence. Comme vous pouvez le voir, le résultat en sortie : dans In on a les nombres pairs et dans Out les nombres impairs. Pour finir avec notre exercice, on va transformer la logique qu'on a mise en place en géométrie. Pour cela, j'ai créé deux noeuds Point.ByCoordinates et j'ai permuté entre les coordonnées x et y avec les valeurs paires et impaires des listes résultantes de notre logique. Je vais ensuite créer des lignes en connectant les points résultants, que je vais extruder derrière. On va pouvoir jouer un peu sur nos données d'entrée. On peut changer, soit mettre des curseurs, soit changer carrément nos nombres pour avoir une multitude de résultats. Voilà, nous avons transformé notre logique en une modélisation.
Entraînez-vous tout en suivant la formation avec les fichiers d’exercice.
Téléchargez les fichiers utilisés par l’instructeur pour enseigner le cours. Suivez attentivement et apprenez en regardant, en écoutant et en vous entraînant.