[Comprendre] Generative Design – un exemple

Olivier Bayle Olivier Bayle 16/10/2019

8 min de lecture

clip_image002

    Beaucoup de questions tournent autour du Generative Design Autodesk et plus particulièrement du « Project Refinery ». Je vous propose un exemple simple pas à pas, de l’installation jusqu’à son utilisation. Ça vous intéresse ?

1- Le principe du Générative Design – Project Refinery :

    C’est une technologie qui se sert de l'intelligence artificielle (algorithmes) et de la puissance de calcul du cloud pour exprimer des solutions répondant aux différentes contraintes du créateur. Dans ce cadre Autodesk met à la disposition des utilisateurs un outil appelé « Project Refinery ».

Pour plus de renseignements, je vous conseille mon article sur le sujet.

2 Installation de Refinery :

    Refinery est un projet en version béta qui nécessite de créer un compte, rendez-vous à cette page, cliquez sur le bouton « Sign in or Create a Account » et laissez-vous guider.

clip_image004

    Une fois enregistré, téléchargez la dernière version de Refinery dans la section « Downlaod Refinery »

clip_image006

    Une fois téléchargée et installée, vous trouverez dans l’interface :

clip_image008

clip_image009

Nota : Dynamo For Revit est lancé à partir de Revit dans l’onglet « Gérer » ;

3- Le principe de fonctionnement :

    A partir d’une modélisation issue du logiciel Revit (non obligatoire) et d’un script Dynamo for Revit, le « Project Refinery » permet de trouver la solution idéale par rapport aux contraintes initiales. Une fois la solution idéale choisie, elle peut être réintégrée en cascade dans Dynamo for Revit puis dans le logiciel Revit.

clip_image011

Nota important : la version Refinery 0.35.0 fonctionne uniquement en local sur votre ordinateur (pas de ressource cloud).

3- L’exemple :

    L’exemple que je vous propose est de trouver le prix optimum d’un bâtiment de forme parallélépipédique à partir des données géométriques et des prix des matériaux de façade / toiture.

clip_image013

Workflow utilisé :

4- Le script Dynamo For Revit :

    Le script sera composé de cinq parties :

4.1 Les données :

    Nous allons utiliser cinq « Integer Slider » pour définir cinq données d’entrée :

clip_image014

    Vous trouvez ci-dessous, les variables ainsi que leurs valeurs limites.

clip_image015

Important : pour signifier au projet Refinery que ces valeurs sont des données d’entrée, effectuez un clic droit sur chacun des sliders et activez « Est une entrée ».

clip_image016

Nota important : Le projet Refinery utilise uniquement comme donnée d’entrée des nœuds de type :

clip_image017

4.2 Création de la géométrie :

    Vous trouvez la partie du script décrivant la création de la géométrie dans l’interface Dynamo For Revit.

clip_image019

Explications du code block « Extraction des façades » :

4.3 Colorisation de la géométrie dans interface Dynamo For Revit (facultatif) :

    Afin d’affecter des couleurs aux faces verticales et horizontales, je vais utiliser le nœud « GeometryColor.ByGeometryColor » associé à une couleur (« Color Palette ») pour chacune des surfaces.

clip_image021

4.4 Résultats :

    Cette partie consiste à multiplier les prix unitaires par les surfaces et à les additionner pour obtenir le prix total (exprimé en k€).

clip_image023

Important : pour signifier au projet Refinery que ces valeurs sont des données de sortie, effectuez un clic droit sur chacun des nœuds de résultat et activez « Résultat effectif ».

clip_image024

4.5 Création du modèle dans Revit :

    Pour modéliser la forme dans l’interface Revit, je vais utiliser le nœud « DirectShape.ByGeometry » associé aux autres nœuds (« Categories », « Material.byName », un champ texte « Village BIM »).

clip_image025

5- Recherche de la solution optimale dans le projet Refinery:

    Comme mentionné plus haut, la version Refinery 0.35.0 fonctionne uniquement en local sur votre ordinateur et donc je vais utiliser les étapes décrites ci-dessous :

5.1 Export du script vers Refinery :

clip_image027

    Une fenêtre va valider votre export et le cas échant, vous avertir d’erreur ou de nœuds Dynamo non pris en charge.

clip_image028

Nota : dans mon cas, je l’avais déjà exporté. C’est pour cette raison qu’il me demande s’il peut écraser l’ancienne version.

5.2 Utilisation de Refinery :

clip_image029

    La fenêtre d’accueil Refinery s’ouvre en vous présentant les dernières simulations que vous avez déjà réalisé (vide si c’est la première fois).

clip_image031

              o Cliquez sur le bouton « New Study »

              o Parmi les différents scripts, choisissez le script de vous venez de sauvegarder (ici « VillageBIMHauteur »)

clip_image032

              o Les paramètres de la simulation sont disponibles, notamment le type de méthode de résolution :

clip_image033

    Refinery utilise l'algorithme d'optimisation NSGA-II (un type d'algorithme génétique), qui est un algorithme d'optimisation méta-heuristique pour l'optimisation multi-objectifs. Les algorithmes génétiques sont couramment utilisés pour générer des solutions de haute qualité aux problèmes d'optimisation et de recherche en s'appuyant sur des opérateurs bio-inspirés tels que la mutation, le croisement et la sélection.

    Un algorithme génétique est une optimisation basée sur la population. Les approches basées sur la population maintiennent et améliorent de multiples solutions, en utilisant souvent les caractéristiques de la population pour guider la recherche. Chaque incrément de l'optimisation s'appelle « une génération ». Ainsi, lorsque vous définissez la valeur de génération sur 40, le processus de sélection, de croisement et de mutation se répète 40 fois pour chaque population de 40 éléments (plus d’informations ici).

Il existe 4 méthodes :

              o Optimize : Cette méthode fait évoluer la conception en fonction des résultats des évaluateurs. Le processus d'optimisation fonctionne en exécutant plusieurs générations d'une conception, chaque génération utilisera la configuration d'entrée des générations précédentes et optimisera ainsi les nouvelles options de conception. La méthode est réalisée à partir des variables sélectionnées, des objectifs spécifiés (Maximisés ou minimisés), d’une population (voir plus haut) et d’un nombre de solutions, l’algorithme va essayer de trouver les solutions optimales.

 clip_image034

clip_image036

Nota : Vous pouvez contraindre certains objectifs.

              o Cross Product : cette méthode permet d'explorer tout l'espace de conception de votre design, en combinant à chaque étape chaque paramètre avec les autres paramètres. La simulation utilise uniquement les bornes limites des variables (inclinant des variations) en effectuant toutes les combinaisons possibles.

clip_image037

clip_image039

Exemple : si la variation est égale à 3 entre les bornes 20 et 100 , dans les simulations, seules les populations [20 ,60 et 100] seront pris en compte.

              o Randomize : cette méthode génère un nombre spécifié d'options de conception, en attribuant au hasard une valeur à chacun des paramètres d'entrée. La simulation se réalise à partir des variables sélectionnées, du nombre de solutions demandées et d’une variance de départ (« seed »).

 clip_image040

clip_image042

              o Like this : Basée sur la simulation précédente, vous avez la possibilité de jouer sur la variation des données en précisant les valeurs initiales

clip_image043

clip_image045

    Après quelques secondes (ou minutes) de calculs, vous obtenez les résultats ci-dessous :

clip_image047

Les graphes :

    La présentation du graphe « 4D » se réalise à partir de quatre variables disposées sur le côté gauche du graphe.

clip_image049

    Le graphe « parallel coordinates », vous permet de suivre la trajectoire des données empruntées par une solution.

clip_image051

Filtrer les données :

    Il est possible de filtrer les données graphiquement en activant la fonction « Filter » et en effectuant des sélections le long des différents axes du graphe.

clip_image053

Affichage des résultats :

    Lorsque le script Dynamo for Revit le permet, vous avez la liste des solutions sous forme de miniatures.

clip_image055

    Vous pouvez les afficher sous forme tableau :

clip_image057

Nota : lorsque vous sélectionnez une solution, elle est notifiée sur le graphe (vice versa).

6- Envoi des données optimales vers Dynamo For Revit :

    Une fois que vous jugez une solution optimale parmi les autres solutions, sélectionnez celle-ci et cliquez sur le bouton « Open in Dynamo ». Automatiquement toutes les données sont transférées vers Dynamo For Revit.

clip_image059

Nota : si votre Dynamo For Revit est fermé, il va l’ouvrir avec les données issues de Refinery.

Résultat :

clip_image061

7- Création du modèle dans Revit :

Voir le chapitre 4.5 de cet article.

Résultat :

clip_image063

    Pour ceux qui veulent tester mon script, vous pouvez le télécharger ici.

    J’espère que vous comprenez un peu mieux les bénéfices de ce workflow et je vous rappelle que Refinery est un projet béta (donc ne peut servir à la production).

Abonnement e-mail