1. Généralités sur la modélisation 3D pour la simulation
Pour alimenter la simulation, la première étape consiste à modéliser en 3D le bâtiment à analyser dans Rhino. Il est important de garder en tête les éléments suivants :
- Keep it simple : la modélisation ne doit pas chercher à entrer dans des détails précis - sa résolution est de l’ordre du 1/200ème au 1/100ème. Modéliser trop de détails n’amène pas plus de précisions sur la simulation, et a tendance à créer des problèmes d’interprétation de la géométrie.
- Eviter les arrondis, les filets, les courbes en tout genre : lors de la transformation du modèle pour la simulation, Ladybug transforme le modèle en mesh. Toutes les surfaces et polysurfaces arrondies génèreront des calculs plus long, et multiplient inutilement les erreurs lors des calculs. Préférer les courbes à 1 degré.
- Les unités du fichier Rhino doivent être paramétrées en mètres (l’unité par défaut utilisée par Ladybug Tools). Une tolérance absolue de 0,01 unité est largement suffisante, et peut même être réduite à 0,1 unité.
Il est courant d’oublier de vérifier les unités du fichier utilisé. Dans un grand nombre de cas, vérifier ce paramètre permet de résoudre les problèmes d’interprétation de la géométrie par Honeybee.
Honeybee a la capacité de hiérarchiser des géométries, comme nous le verrons par la suite, et si sa tolérance est trop haute (par exemple : en centimètres avec une tolérance absolue haute), sa lecture de la géométrie va interpréter des surfaces coplanaires comme n’étant pas coplanaires.
2. Modéliser un bâtiment
2.1. Hiérarchie de modélisation
Honeybee est organisé pour recevoir des géométries représentant les éléments suivants :
- Rooms : Volumes fermés (extrusions ou polysurfaces), représentant les pièces du bâtiment. Deux volumes contigus seront interprétés comme formant un même bâtiment, et leurs parois communes comme des cloisons et/ou planchers intérieurs. Les dimensions de ces volumes représentent le nu intérieur des pièces.
- Shades : Surfaces ou volumes représentant des masques pour le calcul de la radiation solaire et de la luminosité : contexte bâti, etc. Ces éléments sont extérieurs au bâtiment analysé.
- Openings : Surfaces représentant les parois vitrées. Ces surfaces doivent être coplanaires aux Rooms, et ne doivent pas toucher le bord de la face sur laquelle elles sont placées (cf. captures ci-dessous). Il n’est pas nécessaire de découper les parois des pièces : les surfaces vitrées s’y superposent.
- Doors : Surfaces représentant les ouvrants opaques. Comme pour les Openings, ces surfaces doivent être coplanaires aux Rooms, et ne doivent pas toucher le bord de la face sur laquelle elles sont placées. Dans la plupart des analyses menées jusqu’à présent, ces éléments n’ont pas montré d’impact flagrant sur les simulations.
Le fichier de template Rhino de Ressources Architectes contient des calques pour ranger ces différents éléments :
2.2. Implémentation de la géométrie Rhino dans Honeybee
Cette partie vise à expliciter le processus d’implémentation de la géométrie Rhino dans Honeybee. Pour accompagner cette méthode, un modèle de bâtiment générique sera utilisé pour servir d’exemple.
Ce modèle contient trois pièces (2 grandes pièces et une circulation), trois parois vitrées par pièce et deux parois vitrées pour la circulation. Une toiture non isolée est repréentée au-dessus des pièces, avec des légers débords sur les façades nord et sud.
L’orientation du modèle se fait selon le plan d’origine du fichier Rhino : l’axe Y représente le nord (axe dirigé vers le haut de l’écran lorsqu’on se situe en vue de dessus).
Une fois ce fichier ouvert, il suffit de taper Grasshopper
pour ouvrir la fenêtre d’édition de scripts Grasshopper.
Cette interface contient trois principales catégories :
- Les onglets de composants (Params, Maths, Sets, Vector, Curve, etc) ;
- Les composants de l’onglet sélectionné ;
- Le canevas qui correspond à l’espace de programmation où sont insérés des composants reliés par des connecteurs.
Pour plus de rapidité, il est possible de double-cliquer sur le canevas et d’y taper des mots qui correspondent au nom du composant que l’on souhaite ajouter.
2.2.1. Création de pièces à partir de solides
Le premier composant utile à la création de pièces est HB Room from Solid
et est représenté de la manière suivante une fois ajouté au canevas :
Lorsqu’il est ajouté seul, il apparaît orange puisqu’il n’est pas alimenté par les informations requises pour son bon fonctionnement (une bulle jaune en haut à droite affiche l’erreur complète, et permet généralement de comprendre où se situe le bug).
La convention établie par Ladybug Tools est la suivante :
- Un ”_” en début de mot indique une valeur indispensable pour le fonctionnement du composant.
- Un ”_” en fin de mot indique une valeur optionnelle.
- Un ”_” en début et en fin de mot indique une valeur indispensable pour le fonctionnement du composant, mais pour lequel une valeur par défaut est intégrée au composant.
Dans le cas présent, ce composant doit recevoir au minimum une définition de géométrie pour fonctionner. On ajoute donc un composant Geometry
au canevas, qu’on va relier à la géométrie Rhino. Pour lier une géométrie dessinée dans Rhino à un composant Grasshopper, il suffit de réaliser un clic droit sur le composant Grasshopper, et de choisir une des deux options suivantes : Set one Geometry
ou Set Multiple Geometries
.
Dans le cas présent, nous souhaitons ajouter les trois volumes jaunes représentant les pièces de notre bâtiment, on choisit donc Set Multiple Geometries
, la fenêtre Grasshopper disparaît et nous permet de sélectionner les objets à référencer. Sélectionner les trois volumes jaunes, et appuyer sur Entrée
. La fenêtre Grasshopper réapparaît, et le composant Geometry n’affiche désormais plus d’erreur. On peut maintenant le relier à l’entrée _geo
du composant HB Room from Solid
.
Une fois qu’une géométrie est référencée dans un composant Grasshopper, elle s’affiche en rouge transparent dans l’espace 3D de Rhino, et en vert lorsque le composant est sélectionné dans Grasshopper. Pour désactiver cet affichage, il faut clic-droit sur le composant et désactiver
Preview
.
2.2.2. Gérer les parois adjacentes
Dès à présent, il est possible d’afficher le modèle interprété par Honeybee, en utilisant le composant HB Visualize by Type
. Ce composant va afficher une version colorée des pièces interprétée par Honeybee, permettant de vérifier ce qu’il qualifie de mur, toiture, sol, cloison, etc.
Pour bien apprécier ce qui est affiché par ce composant, il est préférable de cacher le composant Geometry
, ainsi que toute la géométrie présente dans Rhino. On obtient donc les volumes référencés, colorés en rouge pour la toiture, en jaune pour les murs, et en gris pour les sols. Pour les visualiser séparément, il est possible d’ajouter un composant Mesh
sur lequel on va successivement connecter les sorties du composant HB Visualize by Type
, tout en désactivant la Preview
de ce dernier.
On note ici que tous les murs sont qualifiés de walls
, et qu’il n’y a pas de géométrie définie dans interior walls
. Cette interprétation ne correspond pas à notre modèle, qui contient des cloisons intérieures.
Pour palier à ce problème, différents composants existent : à priori il est toujours intéressant de suivre cette méthodologie, même pour des projets simples comme celui-ci, pour s’assurer de la bonne interprétation des parois adjacentes par Honeybee.
La stratégie consiste à d’abord utiliser le composant HB Intersect Solids
en amont de la création des pièces, pour vérifier la géométrie d’entrée. Ce composant nécessite l’ajout d’un Boolean Toggle
pour être activé, comme affiché sur le script suivant.
A ce stade, l’ajout de ce composant n’a pas résolu notre cas précis, mais il est important d’utiliser cette logique de manière générale puisqu’elle permet de résoudre en partie les potentiels problèmes d’adjacences entre faces. Le second composant à ajouter est HB Solve Adjacency
, à la suite du composant HB Room from Solid
.
Une fois ce script réalisé, on voit apparaître les cloisons intérieures en jaune clair : le modèle interprète maintenant correctement cette partie du bâtiment.
Ce cas de résolution d’adjacence peut également se présenter sur des planchers intermédiaires : réaliser son script de la manière décrite ci-dessus permet en général de résoudre toutes les questions d’adjacences, mais il est important de bien vérifier que son modèle est correctement interprété avant d’entamer toute analyse.
2.2.3. Ajout des parois vitrées aux pièces
L’ajout de parois vitrées se fait une fois les pièces correctement définies. On utilise alors un autre composant Geometry
, qui références les surfaces vitrées modélisées dans Rhino. Celui-ci sera connecté à un composant HB Aperture
pour créer des objets Honeybee.
Une fois ces parois vitrées définies, on peut les ajouter aux pièces existantes à l’aide du composant HB Add Subface
, de la manière suivante :
Lorsque le composant
HB Add Subface
renvoie des erreurs, il est important de vérifier dans le modèle Rhino la coplanéité des surfaces vitrées et des parois des pièces, ainsi que les unités du fichier (à paramétrer en mètres et non en centimètres, comme mentionné dans la première partie).
2.2.4. Ajout des masques
L’ajout des masques se fait selon une logique assez similaire aux parois vitrées. On utilise le composant HB Shade
pour créer des objets Honeybee.
Une fois les objets référencés dans un composant Geometry
et déclarés comme HB Shade
, il est possible de les coupler au script précédent en compilant tous ces éléments dans un composant HB Model
.
Pour le moment, nous avons modélisé les nus intérieurs des pièces (en jaune), et les fenêtres sont placés sur ce nu intérieur. Un composant existe pour ajouter des bordures extrudées autour des parois vitrées, et ainsi simuler l’épaisseur du mur : c’est le composant HB Extruded Border Shades
.
Il peut être placé après l’ajout des parois vitrées aux pièces, et avant la définition du HB Model
, comme sur le script suivant :
Dans cet exemple, on utilise un Panel
contenant la valeur 0.3
pour définir la profondeur de l’extrusion à créer. Il est également possible d’utiliser un Slider
pour modifier simplement cette valeur.
En double-cliquant sur le slider, il est possible d'entrer une valeur au clavier.
Les surfaces de Rhino possèdent une propriété d’orientation. Les extrusions générées par Honeybee sont relatives à cette propriété : si des extrusions générées par Honeybee sont mal orientées (par exemple vers l’intérieur), il suffit de sélectionner dans Rhino la surface vitrée initialement utilisée pour la définition, et d’utiliser la fonction Rhino
Flip
.
Une fois ces étapes réalisées, nous disposons d’un modèle Honeybee prêt à être analysé.
3. Modéliser un environnement
Dans certains cas, il est utile de modéliser des environnements extérieurs pour simuler par exemple le confort extérieur (UTCI), les îlots de chaleur/de fraîcheur, etc.
3.1. Contexte bâti
Les bâtiments doivent être modélisés avec des polysurfaces fermées, en évitant les arrondis et les surfaces non planaires.
Un outil d'analyse utile est la commande
ShowEdges
. En sélectionnant un ou plusieurs objets, la commande va dans un premier temps afficher son analyse, par exemple "Found 1335 edges total; no naked edges, no non-manifold edges.". Ensuite, en cochantNaked edges
ouNon-Manifold Edges
puis en cliquant surZoom
, on peut facilement détecter les détails problématiques d'une surface incorrectement construite.
3.2. Sols
Les sols doivent être représentés par des polysurfaces fermées, avec au minimum une différenciation entre sol végétal et sol goudronné.
Encore une fois, il est important d’éviter au maximum des arrondis et des surfaces non planaires. Les routes doivent être dessinées avec des courbes à 1 degré. Pour transformer des courbes déjà dessinées en polyligne à 1 degré, la commande Rebuild
est utile :
3.3. Arbres
La forme des arbres est tirée d’un modèle réalisé par Chris Mackey. Elle permet, avec une polysurface fermée, de représenter la masse de l’arbre et son ombre.
Le fichier d'exemple disponible au téléchargement ci-dessus est organisé en blocs pour chaque taille d'arbre. Cette logique est pratique pour éviter d'alourdir le fichier pendant la modélisation. Pour la simulation, il sera néanmoins nécessaire d'exploser les blocs et de référencer les géométries d'arbres en tant que polysurfaces (et pas en tant que blocs).
3.4. Implémentation dans Honeybee
La logique d’implémentation dans Honeybee suit globalement la même logique que pour un bâtiment. Néanmoins quelques éléments diffèrent. Le script Grasshopper ci-dessous explicite la mise en place d’un modèle d’environnement extérieur dans Honeybee :
Les principales bizarreries de cette définition résident dans la non-existence de composants dédiés aux éléments extérieurs : c’est pourquoi les sols sont décrits comme des Rooms
, et les bâtiments et arbres comme des Shades
.
Le fichier Grasshopper d'exemple contient les dépendances suivantes, il convient de les installer :
- Ladybug Tools 1.8.0 (Guide d’installation) ;
- Bifocals 0.5.0.0 (optionnel, pour l’affichage des noms de composants) ;
- Moonlight 1.0.0.0 (optionnel, pour l’affichage en mode sombre).