Communauté
BIM Revit, BIM et Autodesk Construction Cloud (ACC) - Français
Bienvenue sur le forum AEC francophone dédié aux solutions BIM de la société Autodesk. Cet espace est dédié aux professionnels et passionnés du secteur de l'Architecture, de l'Ingénierie et de la Construction (AEC) qui utilisent le logiciel Revit ainsi que les plateformes collaboratives d'Autodesk (ACC et Autodesk Forma). Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets, que vous soyez architecte, ingénieur, gestionnaire de projet ou tout autre acteur de l'AEC.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Récupérer une sous liste dans dynamo

21 RÉPONSES 21
RÉSOLU
Répondre
Message 1 sur 22
celine39XR6
1873 Visites, 21 Réponses

Récupérer une sous liste dans dynamo

Bonjour à tous,

Pas du tout formée dans dynamo mais bidouilleuse dans l'âme, j'essaie d'adapter un fichier de calcul de la surface totale d'un appartement pour lequel la liste de départ n'est pas adaptée à notre fonctionnement.

J'ai réussi à récupérer les infos  de base qui m'intéressent en filtrant les éléments mais je suis coincée  par un problème qui doit être basique 😅

Voilà, j'ai trié ma liste et maintenant j'ai besoin de récupérer uniquement les items de 0 List pour les entrer comme list dans mon noeud suivant. je crois que j'ai atteint ma limite de bidouillage parce que ça fait un bail que je cherche 😃

 

Merciiiiii 

celine39XR6_2-1616497093540.png

 

 

 

 

Étiquettes (1)
21 RÉPONSES 21
Message 2 sur 22
jfbrigaud
en réponse à: celine39XR6

Bonjour,

 

    Vous pouvez utiliser List.GetItemAtIndex:

 

Capture1.PNG


Jean-François Brigaud

EESignature

Message 3 sur 22
celine39XR6
en réponse à: jfbrigaud

Bonjour et merci pour votre réactivité ! 

J'ai bien vu cette possibilité mais ce n'est pas ce que je veux faire 😊

Dans votre solution, vous récupérer tous les items ayant une valeur 0 dans chaque liste. Ce que je souhaite, c'est récupérer tous les éléments de la liste 0 list, quelle que soit leur valeur et ne plus avoir les éléments de 1 list, 2 list...

Sur votre exemple, je souhaite donc récupérer 1 2 3 4 5 et ne plus avoir A B C ni Chien Chat... 😅

 

Message 4 sur 22
David_TESSON
en réponse à: celine39XR6

Bonjour,

Dans ce cas il faut utiliser le noeud "List.FirstItem"

Message 5 sur 22
celine39XR6
en réponse à: David_TESSON

Bonjour et merci
Désolée, mais je n'arrive pas à comprendre comment il fonctionne ?
Message 6 sur 22
celine39XR6
en réponse à: celine39XR6

En fait comme dit, je ne suis qu'une bidouilleuse et je ne connais malheureusement rien à dynamo.

J'ai récupéré ce script initial qui permet de faire le total des surfaces de pièces en fonction du N° du logement. Ca fonctionne super bien : 

 

celine39XR6_5-1616507102550.png

mais dans la pratique, on a aussi des pièces avec ce N° de logement qui doivent être sorties du total. J'ai donc besoin  d'appliquer un filtre supplémentaire. 

celine39XR6_10-1616508967062.png

 

 

 Dans REVIT, on a un créé un filtre  en fonction du type de surface qui fonctionne très bien avec les nomenclatures et je voudrais le réutiliser pour filtrer ma liste initiale en ne récupérant que les pièces  qui ont été renseignées comme SHAB. donc j'ai réussi à créer ceci :

 

celine39XR6_9-1616508680857.png

 

 

mais je ne sais pas comment récupérer la liste "épurée" avec juste les items du groupe 0 list pour l'introduire dans le  noeud. 

 

celine39XR6_8-1616508045374.png

 

Voilàààà 😋

Merciii

 

 

Message 7 sur 22
jfbrigaud
en réponse à: celine39XR6

Ok, alors ne sélectionnez pas les niveaux de sous-liste

 

Capture2.PNG

 

 


Jean-François Brigaud

EESignature

Message 8 sur 22
celine39XR6
en réponse à: jfbrigaud

Super !!! Merci 😁

Bon, j'ai bien ma liste mais en fait je ne suis pas sûre d'être sur la bonne voie 😋

Dans mon post précédent, j'explique ce que j'avais l'intention de faire mais je m'aperçoit que ça ne fonctionne pas....comme ça ! Ce n'est pas à ce niveau que je dois appliquer mon filtre, ni de cette manière...

Bon... utilisatrice de Revit, j'aimerai beaucoup avoir un minimum de formation sur dynamo paracerque ça m'intéresse, mais mon boss m'a fait comprendre que c'était pas d'actualité. En effet, je suis architecte, pas informaticienne. N'empêche que si vous avez un peu de temps à m'accorder, j'aimerai bien essayer de résoudre ce problème 🤗

 

Je ne sais pas où et comment insérer mon filtre 😅

Ci dessus un petit résumé de ce que je souhaite : 

En bleu, c'est ce qui fonctionne avec la mise en forme de la liste de départ des données pour la suite du calcul.

En Orange ça indique les éléments de la liste de départ que j'aimerais ne plus avoir dans cette liste

En rose, ce que j'ai fait pour filtrer ma liste mais que je ne sais pas où et comment insérer

 

celine39XR6_0-1616513072973.png

 

Merciiiiii 😁

Message 9 sur 22
jfbrigaud
en réponse à: celine39XR6

Et comme ça ?

 

celine39XR6_0-1616513072973.png


Jean-François Brigaud

EESignature

Message 10 sur 22
celine39XR6
en réponse à: celine39XR6

Ouiiii ! C'est génial !!!! :verres_que_l'on_trinque:

Merci beaucoup et bonne soirée 😉

Message 11 sur 22
celine39XR6
en réponse à: celine39XR6

Bonjour,

Bon alors finalement, après une bonne nuit de sommeil, il y a encore une chose qui ne fonctionne pas 😅

En effet, si je n'attribue pas SHAB à la première pièce que je crée dans mon modèle, il se trouve que l'index de la liste n'est pas 0. En fait, si je crée ma pièce SHAB en 2d, elle sera dans la liste 1 list, si je la crée en 3ème, dans la liste 2 list...

C'est logique ! mais du coup  je ne peux pas me servir du code block 0 pour épurer ma liste puisque ce ne sera pas toujours le 0 qui correspond à la SHAB, ni même  un index fixe

Y a-t-il un moyen de filtrer la liste par la chaine de caractère "SHAB" ?

Merci 😊

celine39XR6_0-1616580833179.png

 

Message 12 sur 22
David_TESSON
en réponse à: celine39XR6

C'est le noeud FilterByBoolMask

Je suis désolé, je n'ai pas de temps pour l'instant pour t'aider.

Message 13 sur 22
David_TESSON
en réponse à: David_TESSON

Voici comment cela marche

Capture d’écran 2021-03-24 133308.jpg

Message 14 sur 22
celine39XR6
en réponse à: David_TESSON

Super ! Merci beaucoup... 

Pas mal détaillé pour quelqu'un qui n'a pas le temps 😀

Bon, donc je suis bien arrivée là ou tu m'as emmenée mais je n'arrive pas à boucler le chemin toute seule (ouaip, un vrai boulet !!! 😋)

J'ai ma liste OK mais je ne sais pas comment la relier à mes pièces. Je ne sais pas quoi faire de ce IN qui ne veut rentrer dans aucun noeud et je ne sais pas quoi lui mettre en interface... 

celine39XR6_0-1616594419295.png

 

Message 15 sur 22
David_TESSON
en réponse à: celine39XR6

Je pense que ton script part dans tout les sens maintenant.

Qu'elle est la finalité de ton script et à partir de quoi ?

Si je comprend bien, tu as:

Des pièces qui ont un paramètre TXT pour les catégoriser (SHAB, Surf annex, Surf comm., ....)

Un paramètre N° pour les regrouper par appart.

Et tu veux calculer la surface total de chacun des apparts.

 

Que veux tu faire ensuite de cette valeur ?

Message 16 sur 22
celine39XR6
en réponse à: David_TESSON

Alors oui, j'ai pour le moment laissé les solutions intermédiaires donc il y en a un peu partout mais je sais quoi supprimer. 

Pour résumer le script de départ  que j'ai récupéré utilise  un paramètre texte pour le N° de logement et calcule le total de toutes les pièces affectée à ce logement. 

celine39XR6_0-1616596563498.png

 

A l'agence, on a en plus un  second paramètre texte qui permet de différencier SHAB, Surface <1.80m et Surface Annexe. Je veux donc filtrer les données reçues pour chaque logement avec mon second paramètre. Et d'après ce que j'ai compris,ça doit intervenir en amont de mon list.GroupByKey.

La solution proposée hier fonctionne très bien, à l'exception près que je me suis rendue compte que si la 1ère pièce créée dans le projet n'avait pas le paramètre SHAB, La liste obtenue en filtrant avec le Code Block 0 n'était pas la bonne. Perso, je peux gérer comme ça parce que j'essaie de mettre un peu mon nez dans dynamo donc aller remplacer mon codeBlock 0 par le chiffre correspondant à ma liste de SHAB, je vais y arriver, mais je pense à mes collègues qui vont laisser tomber si ça ne fonctionne pas directement quand ils appuient sur 'Play" 😋

Message 17 sur 22
celine39XR6
en réponse à: celine39XR6

intuitivement, j'aurais tendence à supprimer le lien entre "All Elements of Catégorie" Et "Element.getParameterValueByName" car je me dit que ces élements de départs doivent provenir de ma liste filtrée mais  un lien entre "In" et "Element" ne va pas de soit visiblement 

Message 18 sur 22
David_TESSON
en réponse à: celine39XR6

Ok.

Donc je pense que le plus simple est de partir sur ta liste brute de toutes les pièces regroupées par appart (liste A)

De cette liste, tu récupères avec GetValue...ByName le paramètre TXT pour le type de surface (liste B)

Ensuite tu utilises le test avec le noeud  == sur ta (liste B) pour tester "SHAB". tu obtient une liste de True/False (Liste C)

Sur le noeud FilterByBoolMask tu connectes ta (liste A) sur list et (Liste C) sur mask.

Resultat dans IN tu as les pièces "SHA" et dans OUT le reste.

 

Message 19 sur 22
celine39XR6
en réponse à: David_TESSON

Liste A, B, C... Tu m'as perdue !!! Je fonctionne beaucoup mieux aux "dessins" qu'aux "textes"...

Je regarde ce soir quand je serais rentrée à la maison si j'arrive à comprendre 😉

Message 20 sur 22
David_TESSON
en réponse à: celine39XR6

Voila la version graphique 😀

Capture d’écran 2021-03-24 180500.jpg

Pour mon test j'ai mis le type de surface dans "commentaires"

(Liste A) correspond à ton ListGroupByKey

(Liste B) correspond à GetValue... de "commentaires"

Je fait un test de cette liste (liste B) pour voir si c'est "SHAB"

Ca me donne la (liste C) qui contient les True / False du test.

C'est cette liste qui me sert de mask dans FilterByBoolMask sur la liste générale des pièces (Liste A)

Il en ressort une liste purgée qui ne contient que les "SHAB"

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report