Filtrer un élément selon une liste de mots pouvant être contenus dans le nom du type

Bonjour, j’essaie de filtrer des éléments selon une liste de mots pouvant être contenus dans le nom du type afin de les classer automatiquement dans le sous projet dédié. J’utilise string.contains mais j’ai l’impression que le noeud vérifie la liste de mots clés en fonction des éléments alors que je souhaite l’inverse bien sûr. Mikael a tenté de m’aider sur le forum autodesk en réalisant le même script mais les résultats sont différents. Quelqu’un a t il une idée ?

1 J'aime

Bonjour Cyrille et bienvenue,
premier post c’est pas n’importe quoi :slight_smile:
Pour répondre à ta question, c’est un soucis de niveau de liste

Tu dois demander à Dynamo de vérifier chacun des éléments de ta liste initiale avec tout les éléments de la seconde liste

3 J'aime

Bonjour @Cyrille_snia13 et bienvenue sur le forum!
Une autre façon est de utiliser le nœud List.AllIndicesOf, qui vous permet de trouver les index d’un String dans une autre liste, puis d’utiliser le nœud List.GetItemAtIndex pour trouver les éléments correspondants de la liste d’origine.

3 J'aime

Bonjour,
avec une petite compréhension de liste

import sys

listTest = IN[0]
searchList = IN[1]
# search with "ignore case"
OUT = [any(y.lower() in x.lower() for y in searchList) for x in listTest ]
6 J'aime

Merci ça marche nickel !

Merci, j’avais testé comme ça mais après je n’arrive pas à récupérer les bonnes informations avec une list.flatten

Seul soucis avec ce noeud c’est qu’il ne prends pas en charge la casse et comme ce sont des strings ça me semble important