- Vous êtes-vous déjà senti frustré de ne pas pouvoir conformer une géométrie avec des attributs personnalisés ?
- Et qu’en est-il des matériaux d’affichage ? Avez-vous déjà souhaité pouvoir utiliser les matériaux natifs de Rhino dans le canal d’affichage de Grasshopper ?
- Que pensez-vous de l’importation de fichiers dans Grasshopper ? C’est franchement décourageant d’essayer d’importer un fichier CAO et de perdre toutes les métadonnées de base qui sont incluses dans la géométrie, n’est-ce pas ?
La dernière version de Rhino 8 propose de nouveaux types de données et de nouveaux composants qui vont changer votre façon de travailler.
Grasshopper 1 a toujours eu des types de données communs : certains d’entre eux sont d’ailleurs fréquemment utilisés (points, courbes, breps, opérations booléennes, nombres, texte, etc.) tandis que d’autres sont utilisés plus sporadiquement (date/heure, matrices, spécificateurs culturels, etc.).
Cependant, il existe de nombreux types de données disponibles dans Rhino qui n’étaient jusqu’ici pas accessibles dans Grasshopper. Les calques, les types de lignes, les hachures, les matériaux, les polices ou encore les styles d’annotation de Rhino sont désormais inclus dans Grasshopper 1 pour Rhino 8 en tant que types de données natifs. Et d’autres viendront bientôt rejoindre la liste !
Qu’est-ce qu’un attribut ?
Tous ces nouveaux composants vous permettent d’obtenir et/ou de définir les attributs d’un certain type de données. Mais au fait, qu’est-ce qu’un “attribut” ? Un attribut est tout simplement une propriété ou un élément qui aide à créer un type ou un objet.
Prenons par exemple les calques de Rhino. Un calque peut être défini par les propriétés suivantes :
- Nom
- État actif (Actuel)
- Visible/Caché
- Verrouillé/Déverrouillé
- Couleur d’affichage
- Matériau
- Type de ligne
- Couleur d’impression
- Largeur d’impression
- Plan de coupe
- Style de section
Vous pouvez voir et/ou modifier chacun de ces attributs dans la boîte de dialogue des calques de Rhino. Il est maintenant possible faire la même chose dans Grasshopper 1 !
Pour commencer
Grasshopper 1 dans Rhino 8 dispose d’une nouvelle barre d’outils intitulée Rhino qui est divisée en plusieurs sous-catégories (Layers (calques), Linetypes (types de lignes), Materials (matériaux), etc.). Chaque sous-catégorie comporte généralement deux types de composants différents.
-
Composants de requête - Ils vous permettent de rechercher différents types de données dans le document de Rhino actif. Ce composant-ci vous permet d’intégrer tous les calques de Rhino dans le document Grasshopper, mais vous pouvez également rechercher dans le document des types de lignes, des hachures, des styles d’annotation, etc. Les composants de requête sont généralement représentés par une loupe.
-
Composants de type de données - Ces composants servent à construire et/ou déconstruire un type de données avec ses différentes valeurs d’attributs. Ils vous permettent d’indiquer les attributs d’un nouveau calque de Rhino (nom du calque, couleur d’affichage, paramètres de visibilité, etc.) ou de visualiser les valeurs de ces attributs sur un calque déjà défini dans le modèle de Rhino.
Composants de construction/déconstruction vs. Composants de passage
Grasshopper 1 possède de nombreux types de données (points, vecteurs, plans, etc.) qui utilisent un modèle Constructeur/Déconstructeur. Cela signifie que chaque type de données possède deux composants différents : l’un qui gère la création du type de données (le constructeur), comme un point qui contient trois paramètres d’entrée numériques ; et l’autre qui renvoie les valeurs qui se combinent pour constituer ce type de données (le déconstructeur).
Nous avons envisagé d’utiliser ce modèle pour les nouveaux types de données figurant dans la barre d’outils de Rhino, mais nous avons préféré opter pour un modèle que nous appelons les composants “de passage”. Les composants de passage combinent les deux fonctions de construction et de déconstruction des attributs en une seule unité.
Voyons un peu comment cela fonctionne. Remarquez qu’il y a maintenant quatre entrées et sorties (au lieu de trois dans le modèle de construction/déconstruction). Le type de données principal (Point3d) est le tout premier paramètre du côté entrée comme du côté sortie.
Pour créer (construire) un nouveau point à l’aide d’un composant de passage, il suffit de passer des valeurs numériques dans les trois entrées de coordonnées. Un nouveau point sera créé et produit à partir de la sortie Point. De même, pour décomposer un point existant en ses valeurs composantes (ses coordonnées), il suffit de passer un point dans le premier paramètre d’entrée et les valeurs seront créées dans la sortie correspondante.
Voilà donc la configuration de base du fonctionnement d’un composant de passage. Prenons à présent un exemple plus concret. Supposons que nous voulions créer un nouveau calque de Rhino et lui assigner des attributs. Il nous suffira de passer quelques valeurs dans les paramètres d’entrée, et la sortie Layer (le type de données primaire est toujours le premier paramètre d’entrée/sortie) produira le calque de Rhino avec tous ses paramètres.
Remarquez que j’utilise le composant de requête de types de ligne Query Linetypes pour obtenir une référence à l’un des types de ligne existant dans mon modèle de Rhino. Si j’avais laissé le filtre vide (ou utilisé un caractère générique “*”), j’aurais obtenu tous les types de ligne disponibles. Cependant, comme j’utilise le filtre “Dashed” (Pointillés), je n’obtiens que le type de ligne qui correspond à ce nom.
De même, si nous voulions prendre un calque de Rhino existant et vérifier ses attributs, nous pourrions utiliser le même composant de passage. Cette fois-ci, cependant, nous voulons passer un calque de Rhino existant dans l’entrée Layer. Souvenez-vous que le type de données principal est toujours le premier paramètre des deux côtés du composant.
Ici, nous utilisons le composant de requête de calques Query Layers pour obtenir le calque existant (il n’y en a qu’un seul appelé “Default”) que nous pouvons ensuite passer dans l’entrée Layer. Les attributs du calque sont ensuite transmis par le paramètre de sortie correspondant.
Supposons maintenant que nous voulions utiliser un calque existant comme modèle, mais en faire une copie et modifier certains de ses attributs. C’est là qu’un composant de passage devient très utile. Si nous utilisions le modèle constructeur/déconstructeur, nous devrions connecter manuellement chacune des sorties du composant constructeur au paramètre d’entrée correspondant du composant déconstructeur.
Comme vous pouvez l’imaginer, cela pourrait devenir assez fastidieux pour les types de données comportant un grand nombre d’attributs. Au lieu de cela, nous pouvons utiliser un composant de passage pour cette opération.
Comme précédemment, nous passons un calque de Rhino existant dans l’entrée Layer et tous ses attributs seront transmis à la sortie correspondante. Mais si nous connectons une autre valeur à l’une des autres entrées, cette valeur remplacera l’attribut provenant du calque de Rhino existant.
Ici, nous insérons le texte “MyLayer” dans l’entrée “Full Path” pour qu’il remplace le nom du calque provenant de Rhino. En revanche, toutes les autres valeurs resteront inchangées.
En n’utilisant qu’un seul composant de passage, d’une part nous économisons de l’espace à l’écran dans notre définition et d’autre part nous évitons d’avoir à connecter tous les paramètres de sortie à leur entrée correspondante.
Attributs de construction
Dans l’exemple ci-dessus, nous avons montré comment construire un calque de Rhino en utilisant le composant de passage Model Layer. Cependant, le calque créé ne fait techniquement pas partie du document de Rhino tant que vous ne l’avez pas conformé au moyen de la fonction Bake. Nous travaillons encore sur un composant de conformation personnalisé, mais pour l’instant, vous devez cliquer avec le bouton droit de la souris sur le composant “Model Layer” et sélectionner Bake. Cliquez sur Ok dans la boîte de dialogue et votre calque sera alors ajouté dans le document de Rhino.
Maintenant, imaginons que nous voulions ajouter une géométrie dans le document de Rhino, mais en s’assurant qu’elle est assignée au calque que nous venons de créer. Nous pouvons simplement utiliser un composant Model Object pour assigner différents attributs aux objets géométriques.
Ici, nous avons créé une sphère que nous avons appelé “MySphere”. Nous avons également attribué le calque que nous venons de créer aux attributs de l’objet. À présent, si nous cliquons du bouton droit sur le composant “Model Object” et que nous sélectionnons Bake, la sphère sera ajoutée dans le document de Rhino avec ces attributs.
Sélectionnez la sphère qui a été conformée dans la scène et allez dans le panneau des propriétés de l’objet. Vérifiez que le nom et le calque attribués à la sphère sont corrects.
Vous pouvez assigner autant d’attributs que vous voulez à un objet géométrique. Il s’agit d’un exemple très simple, mais nous vous encourageons à parcourir les autres composants pour voir quels sont les paramètres disponibles.
Attributs de déconstruction
Comme vous pouvez vous y attendre, nous pouvons également décomposer les types de données pour obtenir leurs attributs constitutifs. Les composants de requête sont un bon point de départ car ils intègrent différents types de données de Rhino (géométrie, couches, types de lignes, etc.) dans votre définition de Grasshopper. Mais tout cela est relativement simple.
J’aimerais plutôt me pencher sur le nouveau composant Import Model qui se trouve dans l’onglet “Params” et dans la sous-catégorie “Input”. Avec ce nouveau composant, nous pouvons importer n’importe quel modèle 3D (pas uniquement des modèles de Rhino) et décomposer son contenu en ses différents attributs.
L’une des caractéristiques utiles de ce nouveau composant est qu’il permet également de transformer le modèle importé en unités de documents actifs de manière cohérente. Prenons un exemple pour expliquer comment cela fonctionne.
Supposons que vous ayez téléchargé des modèles CAO 3D de fixations que vous souhaitez utiliser dans votre projet. L’un des fichiers, le boulon hexagonal, est enregistré avec les unités définies en pouces. L’autre fichier, qui comprend un écrou papillon et une rondelle, a été défini en millimètres. Et pour compliquer le tout, le document actif sur lequel vous travaillez est en centimètres.
Si nous avions importé ce modèle de manière traditionnelle, nous aurions dû trouver nos propres facteurs de conversion pour que les modèles s’alignent correctement. Cependant, en utilisant l’un des attributs du modèle importé (“Transform”), nous pouvons facilement faire correspondre la géométrie importée à l’échelle du document actif.
En outre, nous pouvons vérifier d’autres attributs du modèle importé. Dans ce cas, plusieurs matériaux ont été enregistrés dans le fichier. Nous pouvons maintenant utiliser n’importe quel matériau de Rhino dans l’affichage de l’aperçu personnalisé de Grasshopper !
J’ai mis cette phrase en gras, parce que c’est une grande nouveauté. Vous n’êtes plus limité aux graphiques d’affichage simplifiés que Grasshopper a toujours utilisé. Vous pouvez maintenant importer (ou utiliser le composant de requête de matériaux Query Materials) des matériaux de Rhino natifs et les utiliser sur la géométrie de Grasshopper avec le composant Custom Preview standard.
Les exemples ci-dessous sont des captures d’écran de différents modes d’affichage utilisant des matériaux importés de Rhino.
D’autres nouveautés à venir !
Notez bien qu’il ne s’agit que de la première version de ces nouveaux outils. L’ensemble d’outils n’est pas complet (loin s’en faut) et il est possible que vous rencontriez des erreurs ici et là. Si vous trouvez quelque chose qui ne fonctionne pas tout à fait correctement, faites-le-nous savoir et n’hésitez pas à nous poser toutes vos questions. Nous sommes toujours là pour vous aider.
Nous attendons également vos commentaires sur les prochains types de données que nous devrions inclure. Quels sont les types les plus utiles pour vous ? Avez-vous besoin de blocs, de lumières, de dimensions, de plans de coupe, de vues nommées ? Nous avons une longue feuille de route de composants sur lesquels nous travaillerons dans les mois à venir, mais nous attendons le retour des utilisateurs pour savoir quelles fonctionnalités doivent être prioritaires.
Essayez-les !
Téléchargez et ouvrez la définition ConstructObjectAttributes.gh.
Plus d’informations
Regardez notre vidéo Découvrez les types de données de Grasshopper ou visitez notre page Nouveautés dans Rhino 8 pour un aperçu de ces fonctionnalités.
Apprenez à utiliser d’autres composants de types de données dans les guides suivants :

Grouper et filtrer des données
Apprenez à utiliser ces composants pour grouper, sélectionner et filtrer la géométrie à partir de données spécifiques avec un niveau de granularité supérieur.

Utiliser le composant Script
Apprenez à utiliser le composant Script dans Grasshopper. Conçu pour fonctionner avec tous les langages pris en charge, il regroupe le comportement des anciens composants GHPython et C#.