Quand j'ai débuté mon apprentissage sur les composants dynamiques dans SketchUp, je suis rapidement tombée sur une figure de cas qui semble simple mais dont la mise en oeuvre n'est pas si évidente.
Je voulais pouvoir changer facilement les options de plusieurs sous-composants, par exemple le matériau du dessus de la table et le matériau des pattes, directement à partir du composant parent.

Le problème, c'est que si j'appliquais la technique de base pour changer le matériau à partir d'une liste déroulante, les options n'étaient pas disponibles directement à partir du composant parent. Il fallait sélectionner un sous-composant pour pouvoir changer ses options.
Voici donc la technique qui m'a permis d'arriver à mes fins.
Pour la démonstration, vous pouvez commencer à travailler à partir de ma table toute simple : DemoComposantDynamiqueTablePattes-Depart.skp.
Ajout d'attributs dans le composant parent
Pour chacun des sous-composants personnalisables, le composant parent aura un attribut spécifique.
- Commencez par regrouper toutes les parties de la table dans un composant qui s'appellera « TableDC » (sélectionner toutes les parties à partir de la fenêtre Outliner ou avec Cmd+A / clic droit / ). Ce composant est le composant parent.
- Clic droit sur le composant parent / / .
- Dans la fenêtre , cliquez sur la flèche à gauche du composant parent pour le développer puis cliquez sur le + à gauche de .

- Choisissez dans le bas de la liste.

- Entrez un nom qui indique que c’est le matériau pour un des sous-composants (ex : MatDessus, MatPattes).
- Cliquez sur l’icône (en forme de flèche) à droite de l’attribut.

- Choisissez .
- Dans la case , donnez un libellé approprié à l'attribut. Il s'agit du texte qui apparaîtra devant la liste déroulante lorsque l'usager choisira les options.
- Cliquez sur .
- Entrez un nom pour le premier matériau. Il s’agit du libellé qui apparaîtra dans la liste déroulante. Avec cette technique, la valeur de la première option doit absolument être 1.
- Répétez pour le deuxième matériau avec la valeur 2, etc.
- Quand tous les matériaux désirés sont entrés, cliquez sur .

- Répétez pour chacun des sous-composant qui pourront être personnalisés (ici : créez un autre attribut personnalisé pour le matériau des pattes de la table).
Préparation des matériaux
Pour que le composant dynamique offre un choix pré-sélectionné de matériaux, il importe d'effectuer une préparation adéquate. Les détails sont expliqués dans cette autre fiche, dans la section préparation des matériaux.
Ajout du comportement dans les sous-composants
- Dans la fenêtre , on voit le composant sélectionné et ses sous-composants. Vis-à-vis un sous-composant qui pourra se voir attribuer les matériaux (ex : le dessus de la table), cliquez sur le + à gauche de .
- Choisissez .
- La valeur doit être synchronisée avec celle qui a été choisie dans la liste déroulante du composant parent. La fonction CHOOSE() permet d’y arriver. Écrire =CHOOSE(
- Le premier paramètre est la variable qui déterminera la position de l'option choisie. Entrez le nom du composant parent suivi de ! puis du nom de l’attribut personnalisé (ex : TableDC!MatDessus).
- Le second paramètre correspond au nom du matériau qui sera choisi quand la première option de la liste déroulante est sélectionnée. Il s’agit du nom qui a été donné au matériau, entre guillemets (ex : "SwatchDCRouge"). Le premier matériau doit correspondre à la première option spécifiée dans la liste déroulante du parent.
- Poursuivez pour chacun des matériaux disponibles en séparant les paramètres par une virgule.
- Refermez la parenthèse puis appuyer sur la touche Entrée. Le résultat ressemblera à ceci : =CHOOSE(TableDC!MatDessus,"SwatchDCRouge","SwatchDCJaune","SwatchDCVert", "SwatchDCTurquoise")
Traduction libre : le matériau à utiliser sera SwatchDCRouge si, dans l'attribut MatDessus du composant TableDC, la valeur choisie est 1. Ce sera SwatchDCJaune si la valeur choisie est 2, etc.

- Répétez pour les autres sous-composants. Dans cet exemple, on aura exactement la même formule pour chacune des pattes et pour chacune des traverses. Bonne nouvelle : puisque les 4 pattes sont obtenues à partir d'un seul composant, les options entrées pour une patte sont automatiquement répliquées pour les autres.
Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.