Transférer une valeur de paramètre depuis un lien

Bonjour à tous, je cherche à récupérer la valeur d’un paramètre partagé depuis un fichier lié (maquette architecte) pour le transférer dans ma maquette. Les éléments pour lesquels je veux récupérer la valeur du paramètre sont placés au même endroit dans les deux maquettes mais les familles sont différentes.
J’ai réussi à extraire les valeurs depuis le fichier en lien, je pense qu’il faut ensuite géolocaliser les éléments mais je sèche pour la suite.
D’avance, merci.

On parle de quel catégorie d’élément? Je demande parce que ça ca influencer la façon de les recollers.

Bonjour, les éléments concernés sont des murs, poteaux porteurs, ossatures et sol.

Bonjour,

Tu peux essayer de faire un tableau Excel de correspondance de famille entre les deux fichiers pour mettre les mêmes paramètres ensuite.
Tu peux également comme tu l’as proposé effectuer une détection de superposition mais ces opérations sont en générales plus longue à s’exécuter, après tout dépends de la taille de ta maquette.

Peux-tu faire une capture écran entre les deux maquettes et lister ce que tu veux transférer?

Bonne journée
AP

1 J'aime

Bonjour,
Peux-tu partager une capture d’écran de ton script ? cela nous aidera à comprendre et peut-être à aider

Bonjour,
Je n’ai pas commencé à l’écrire. Je ne suis pas certain des noeuds à utiliser.
Le paramètre à transférer est un paramètre d’occurrence de type « Texte »

Je pense exécuter les étapes dans l’ordre suivant:

Dans le fichier liè
Sélectionner les objets part type (mur, poteaux porteur, ossature, sol)
1-Filtrer ceux pour lesquels le paramètre est renseigné. Jusque là je sais comment faire.
2-Obtenir la position X-Y des éléments sélectionnés - Quel noeud?

Dans le fichier hôte
Sélectionner les objets part type (mur, poteaux porteur, ossature, sol)
3-Filtrer ceux qui ont un X-Y identique à ma liste précédente (2-)
4-Copier la valeur du paramètre de puis la liste 1-

Est ce que le déroulé vous semble pertinent et si oui quels noeuds successifs faut il utiliser?

d’avance merci pour votre aide

Bonjour Dom,

Des pistes et en gras ce que je fais déjà de mon côté.
J’utiliserais les noeuds contenant Location pour … localiser les objets. Leur nom peut varier selon ta version de dynamo et le package (Clockwork dans mon cas). Tu peux aussi utiliser Element.Geometry puis récupérer le centre de gravité via Solid.Centroid.

Tu parles de part, s’il s’agit bien d’éléments au sens Revit (objet divisé en sous-composants) alors attention car la géométrie du part peut varier par rapport à celle de l’objet d’origine, ainsi la pure comparaison d’un XYZ peut ne pas suffire (je n’ai jamais utilisé les noeuds Geometry.IsAlmostEqualTo, peut-être une solution).

J’utilise personnellement Geometry.DoesIntersect pour trouver dans quel solid se trouve chaque centre de gravité.

Dans les deux cas, ce genre de calculs peuvent être très long sur une maquette volumineuse. Je te conseille de tester sur des échantillons en ne prenant qu’un objet dans ta maquette (un qui matche de préférence) et 10/20 dans le lien pour éviter d’attendre 5/10 min à chaque lancement …

Un passage par le primer sur les géométrie peut être utile :slight_smile:

Bonjour,

Il s’agit d’éléments REVIT en non de PARTS.
Ci dessous le début de mon script.

C’est la bonne voie, il n’y a plus qu’à tester l’intersection du solide archi avec le centroid de votre maquette. Le centroid archi n’est par contre pas nécessaire.
Vérifiez bien que vous avez le même nombre d’élément en début et en fin de script (634 et 824) à comparer avec ce qui sort de all elements of category et collect linkelement pour éviter le syndrome « boutonner le lundi avec le dimanche ».