Connexion   Inscription

Questions & Réponses

  Lundi 29 Février 2016
  9 réponses
  8K vues
  Suivre cette discussion
Bonjour à tous,

Je cherche une solution pour finaliser mon script dynamo. Voici la problématique:

J'ai 158 occurrences de murs pour le niveau RDC de ma maquette. J'utilise un paramètre de type que j'ai nommé "MCO_Mode constructif" pour regrouper ces murs suivants 5 modes constructifs:

- Voile lasuré (43 occurrences)
- Voile intérieur (81 occurrences)
- Prémur (11 occurrences)
- Voile maçonné (14 occurrences)
- Acrotère (9 occurrences)

Mon script regroupe les hauteurs non contraintes en 5 listes (1 par mode constructif) avec la fonction "List.GroupByKey". Puis, il extrait la valeur maximale de chaque liste (5 valeurs)

Je me retrouve donc avec une liste de 5 valeurs d'un côté (5 hauteurs maximales) et une autre liste de 5 paramètres de type de l'autre (5 modes constructifs).

Mon problème: Je voudrais recopier dans un paramètre partagé les bonnes hauteurs maximales dans les bonnes occurrences. La 1ère hauteur max dans les 43 premières occurrences ("MCO_Mode constructif = Voile lasuré"), la seconde dans les 81 suivantes...etc.

Que dois-je renseigner comme entrées dans la fonction "Element.SetParameterByName" ? Dois-je utiliser une autre méthode?
Mohamed KHETTAB
updated the category from to Modélisation, simulation et visualisation — 1 year ago
8 years ago
·
#2984
0
Votes
Undo
Merci Mostafa pour ta réponse !

Effectivement, pouvoir filtrer des éléments à partir d'un paramètre est un nœud très utile. Je me suis créé des nœuds de ce type mais qui fonctionnent avec la version anglaise car je ne maitrise pas le Python ^^...Merci pour ton package BIMvf, je jetterais un œil.

Mon seul problème: J'ai besoin que mon paramètre soit un paramètre de type, sinon cela remettrait en cause le principe de mon gabarit de travail. Pour cela je suis obligé d'utiliser un "List.GroupByKey" pour sortir mes hauteurs non contrainte regroupées par le paramètre de type "MCO_Mode constructif".

J'ai trouvé un script qui fonctionne pour ma problématique. Le voici en pièce jointe. Pour l'instant il ne fonctionne qu'avec la version anglaise et pourrait être simplifié selon moi..
8 years ago
·
#2956
0
Votes
Undo
Mostafa EL AYOUBI EL IDRISSI a écrit:le custom node "Filtrer elements par valeur de parametre"

Alors ça c'est excellent !
Je cherchais justement comment faire ce filtre suite au message d'Antoine.
Aussi, j'ai cree un noeud qui pourrait t'interesser dans ta demarche. Si tu telecharges le package BIMvf tu y trouveras le custom node "Filtrer elements par valeur de parametre". Je pense qu'il fera l'affaire . Je joins un screenshot de workflow.
Salut

voici un workflow qui devrait resoudre ton probleme a condition que tu modifie ton parametre "MCO_Hauteur" pour en faire un parametre d'occurence.

J'espere que ca pourra t'aider!
8 years ago
·
#2933
0
Votes
Undo
Si je comprends bien tu veux entree une valeure precise en fonction de la valeure extraite?

Si c'est ca j'ai fait un exemple sur ce principe au dernier PRUG
8 years ago
·
#2930
0
Votes
Undo
Non effectivement ça ne fonctionnait pas correctement. Voici la rectification avec le résultat du "list.count" qui m'extrait le nombre d'occurrences de chaque liste. ;)
8 years ago
·
#2928
0
Votes
Undo
Non j'ai pas mieux, je n'aurais pas pensé à ça. ça fonctionne ?
Quel est le résultat du List.count ?
8 years ago
·
#2927
0
Votes
Undo
Bonjour Julien,

Merci pour ta réponse! ;) tu as effectivement bien compris mon problème.

Par contre ce que je n'avais pas précisé c'est que le nombre de modes constructifs n'est jamais le même selon les niveaux ou selon le projet. Je souhaite donc que ce script soit exploitable quelque soit le nombre de modes constructifs.

J'ai finalement trouvé une solution en comptant le nombre d'occurrences de chaque liste via "List.count" puis en répétant les hauteurs max autant de fois que d'occurrences via "List.OfRepeatedItem".

J'ai l'impression que je me complique la vie pour pas grand chose ^^ Si tu as une solution optimisée je suis preneur !
8 years ago
·
#2925
0
Votes
Undo
Bonjour,

Si j'ai bien compris la problématique, je pense qu'il faut rajouter des nœuds List.FilterByString (autant que de modes constructifs : 5), pour filtrer les éléments dans lesquels injecter les paramètres MCO (avant le nœud Element.SetParameterByName que tu multipliera par autant que de modes constructifs : 5)
There are no replies made for this post yet.

Connexion