Se connecter   Inscription

Rejoignez +24 000 professionnels du BIM !

Adhésion GRATUITE >
  mercredi 18 mai 2022
  8 Replies
  174 Visits
  Subscribe
Bonjour à tous et à toutes

je souhaite effectuer une sélection de plusieurs niveaux pour ensuite les ajouter à des feuilles via dynamo. pour se faire j'ai d'abord créé une liste de toutes les vues et je souhaite filtrer cette liste de manière à ce que uniquement les vue dont le nom contient le suffixe "STR" soit affichée dans la liste malheureusement le filtre ne s'applique pas et j'ai du mal à comprendre pourquoi. merci de bien vouloir éclairer ma lanterne
il y a environ 1 mois
·
#17568
0
Votes
Annuler
je n'arrive pas malheureusement à joindre la capture d'écran du dynamo que j'ai réalisé mais qui ne fonctionne pas.
il y a environ 1 mois
·
#17569
0
Votes
Annuler
voilà, je l'ai rajouté.
il y a environ 1 mois
·
#17570
0
Votes
Annuler
Bonjour,

Actuellement vous ne demandez pas si le nom de la vue contient "STR" ou non, vous demandez si l'id de chacune de vos vue a une chaine de caractère qui contient "STR".
Il faudrait que vous reliez un noeud "element.name" à l'entré (entrée str, pour string) de votre "string.contains".
En faisant cela, dynamo comprendra que vous cherchez la présence de "STR" dans le nom de vos vue et non dans leur id.
il y a environ 1 mois
·
#17574
0
Votes
Annuler
Bonjour,

Je suis d'accord avec Raphaël Blaiteau.

Par contre, je n'utilises pas trop le noeud list.filter mais de ce que j'en vois, ça ne récupèrerai que les noms des vues contenant "STR" et non pas les vues dont le nom contient "STR".

Je ne sais pas si c'est clair. Alors voici un exemple :
filter.jpg

Dans ce premier cas (avec list.filter) on récupère tous les noms contenant STR.

bool.jpg

Dans ce second cas (filterbyboolmask), on récupère bien la view (ici une vue de coupe ayant comme nom "str ...")

Il existe peut-être une méthode pour avoir la même chose avec list.filter...

En espérant avoir pu t'aider.
il y a environ 1 mois
·
#17579
0
Votes
Annuler
Jérôme,

C'est tout a fait normal que dans ton premier exemple le list.filter te sorte uniquement le nom de la vue car c'est ce que tu lui a donné en entré (element.name)

mais j'ai fait un test sous dynamo 1.3.4 et dynamo 2.10.1, et le probleme avec le list.filter viendrait du fait que le string.contain ne semble pas apprécier d'avoir le element.name en mode fonction juste devant lui.
il y a environ 1 mois
·
#17580
0
Votes
Annuler
Salut,

En effet j'avais tenté de mettre element.name dans l'input "str" du string.contains.
Mais du coup comme toutes les entrées ont un noeud, le string.contains n'est plus considéré comme une fonction.
Enfin c'est ce que j'en ai compris.
Je n'utilise pas trop cette méthode de fonction (à tord peut-être).
C'est possible que ce soit faisable avec le list.filter en cherchant un peu plus mais pour le moment je n'ai pas trouvé.

Du coup je proposais une méthode que j'utilise partout, le filterbyboolmask qui me permet de filter une liste de n'importe quoi en fonction d'une autre donnée. Ici une liste de vues en fonction de leurs noms.

Il faudrait que je me penche un peu plus dessus pour retester.
il y a environ 1 mois
·
#17581
0
Votes
Annuler
Le filterbyboolmask est très bien. Cependant il commence à montrer ses limites quand on veux garder les hiérarchies de liste imbriqué.
Personnellement, je me tourne de plus en plus vers le python me permettant de m'adapter à chaque cas.
il y a environ 1 mois
·
#17582
0
Votes
Annuler
Oui en effet, le python est souvent plus pratique et adapté. Et ça évite de passer par 10 nœuds pour extraire une donnée. Donc plus optimisé.
Cette discussion ne contient encore aucune réponse.
Soyez le premier à y répondre !

Découvrez nos services

recrutement

Recrutement

En savoir plus

communication

Communication

En savoir plus

Publicité

Formation

En savoir plus

Hexabim

Se connecter

Le Cron démarre