Liaison d’objet

Dynamo for Civil 3D contient un mécanisme très puissant qui « se souvient » des objets créés par chaque nœud. Ce mécanisme est appelé Liaison d’objet et permet à un graphique Dynamo de produire des résultats cohérents chaque fois qu’il est exécuté dans le même document. Bien que cela soit souhaitable dans de nombreuses situations, il est possible que vous vouliez avoir plus de contrôle sur le comportement de Dynamo dans d’autres cas. Cette section vous aidera à comprendre le fonctionnement de la liaison d’objet et comment en tirer parti.

Exemple

Prenons l’exemple de ce graphique qui crée un cercle dans l’espace objet sur le calque courant.

Remarquez ce qui se passe lorsque le rayon est modifié.

Voilà une démonstration de la liaison d’objet. Par défaut, Dynamo modifie le rayon du cercle, plutôt que de créer un nouveau cercle à chaque fois que la valeur du rayon change. Ceci est dû au fait que le nœud Object.ByGeometry « se souvient » qu’il a créé ce cercle spécifique à chaque exécution du graphique. De plus, Dynamo stocke cette information de sorte que lors de la prochaine ouverture du document Civil 3D et de l’exécution du graphique, celui-ci aura exactement le même comportement.

Autre exemple

Voyons un exemple dans lequel vous voudriez changer le comportement par défaut des liaisons d’objet dans Dynamo. Supposons que vous souhaitiez créer un graphique qui place un texte au milieu d’un cercle. Vous souhaitez également que ce graphique puisse être exécuté à plusieurs reprises et qu’il place un nouveau texte à chaque fois, quel que soit le cercle sélectionné. Voici à quoi ce graphique pourrait ressembler.

Cependant, ceci se produit lorsque vous sélectionnez un autre cercle.

Il semble que le texte soit supprimé et recréé à chaque exécution du graphique. En réalité, la position du texte est modifiée en fonction du cercle sélectionné. Il s’agit donc du même texte, mais à un autre endroit ! Afin de créer un nouveau texte à chaque fois, vous devez modifier les paramètres de liaison d’objet de Dynamo pour qu’aucune donnée de liaison ne soit conservée (consultez la partie #binding-settings ci-dessous).

Après avoir effectué ce changement, vous obtenez le comportement que vous recherchez.

Paramètres de liaison

Dynamo for Civil 3D permet de modifier le comportement par défaut des liaison d’objet via les paramètres Stockage des données de liaison du menu de Dynamo.

Notez que les options de stockage des données de liaison sont disponibles dans Civil 3D 2022.1 et dans les versions ultérieures.

Toutes les options sont activées par défaut. Voici un résumé des effets de chaque option.

Option 1 : aucune donnée de liaison conservée

Lorsque cette option est activée, Dynamo « oublie » les objets qu’il a créés lors de la dernière exécution du graphique. Le graphique peut être exécuté dans n’importe quel dessin, dans n’importe quelle situation, et il créera des objets à chaque fois.

Quand l’utiliser

Utilisez cette option lorsque vous souhaitez que Dynamo « oublie » tout ce qu’il a fait lors des exécutions précédentes et crée de nouveaux objets à chaque fois.

Option 2 : stocker dans un graphique pour Dynamo

Cette option signifie que les métadonnées de liaison d’objet seront sérialisées dans le graphique (fichier .dyn) lors de son enregistrement. Si vous fermez/rouvrez le graphique et l’exécutez dans le même dessin, tout devrait fonctionner comme vous l’avez laissé. Si vous exécutez le graphique dans un autre dessin, les données de liaison seront supprimées du graphique et de nouveaux objets seront créés. Cela signifie que si vous ouvrez le dessin d’origine et exécutez à nouveau le graphique, de nouveaux objets seront créés en plus des anciens.

Quand l’utiliser

Utilisez cette option lorsque vous souhaitez que Dynamo « se souvienne » des objets qu’il a créés la dernière fois qu’il s’est exécuté dans un dessin spécifique.

Cette option convient mieux aux situations où il est possible de maintenir un rapport 1:1 entre un dessin spécifique et un graphique Dynamo. Les options 1 et 3 sont mieux adaptées aux graphiques conçus pour s’exécuter sur plusieurs dessins.

Option 3 : stocker dans un dessin pour Dynamo

Cette option est similaire à l’option 2, sauf que les données de liaison d’objet sont sérialisées dans le dessin au lieu du graphique (fichier .dyn). Si vous fermez/rouvrez le graphique et l’exécutez dans le même dessin, tout devrait fonctionner comme vous l’avez laissé. Si vous exécutez le graphique dans un autre dessin, les données de liaison sont conservées dans le dessin d’origine, car elles sont enregistrées dans le dessin et non dans le graphique.

Quand l’utiliser

Utilisez cette option lorsque vous souhaitez utiliser le même graphique sur plusieurs dessins et que Dynamo « se souvienne » de ce qu’il a fait dans chacun d’eux.

Option 4 : stocker dans un dessin pour le Lecteur Dynamo

La première chose à noter avec cette option est qu’elle n’a aucun effet sur la façon dont le graphique interagit avec le dessin lorsqu’il est exécuté via l’interface principale de Dynamo. Cette option s’applique uniquement lorsque le graphique est exécuté à l’aide du Lecteur Dynamo.

Si vous ne connaissez pas le Lecteur Dynamo, consultez la section Lecteur Dynamo.

Si vous exécutez le graphique en utilisant l’interface principale de Dynamo, puis fermez et exécutez le même graphique en utilisant le Lecteur Dynamo, il créera de nouveaux objets en plus de ceux qu’il a créés auparavant. Cependant, une fois que le Lecteur Dynamo a exécuté le graphique une fois, il sérialisera les données de liaison d’objet dans le dessin. Ainsi, si vous exécutez le graphique plusieurs fois via le Lecteur Dynamo, il mettra à jour les objets au lieu d’en créer de nouveaux. Si vous exécutez le graphique via le Lecteur Dynamo sur un autre dessin, les données de liaison sont toujours conservées dans le dessin d’origine, car elles sont enregistrées dans le dessin et non dans le graphique.

Quand l’utiliser

Utilisez cette option lorsque vous souhaitez exécuter un graphique à l’aide du Lecteur Dynamo sur plusieurs dessins et que vous souhaitez qu’il « se souvienne » de ce qu’il a fait dans chacun d’eux.

Last updated