Connexion   Inscription

Questions & Réponses

  Mercredi 21 Février 2018
  4 réponses
  4.6K vues
  Suivre cette discussion
Bonjour,

Mon problème est assez difficile à expliquer je vais donc d’abord vous expliquer le contexte.
J’ai réalisé un script dynamo qui vise à extruder un profil de pont selon un axe défini par des points de passage. L’insertion des profils se fait au niveau des points de passage et le script doit pouvoir accepter plusieurs profils différents. Les profils ne doivent pas être placés à la main mais directement placé par dynamo, en appelant en donnée d’entrée les profils à placer. Ceux-ci ont au préalable été chargé dans Revit. Mon script fonctionne et comprend l’utilisation de deux profils différents sur des intervalles donnés. Par exemple : utiliser le profil « A » du point 0 au point 3 puis du point 8 au point 20, et utiliser le profil « B » du point 4 au point 7.

Mon problème est le suivant : cette instruction définissant à quels points poser mes profils, ne traite pour l’instant que deux types de profils différents. Or je souhaite que l’on puisse ajouter facilement le nombre de profil que l’on souhaite, aux différents intervalles définis par l’utilisateur du script. Pour faire simple je veux que l’on puisse appuyer sur un bouton « + » comme pour la node « list.Create », que l’intérieur de ma node personnalisée se multiplie, et que de nouvelles nodes « input » soient créées afin de pouvoir entrer de nouveaux profils et de nouveaux intervalles.

Je vais surement devoir utiliser/créer un script dans une node python pour faire cela, mais je n’ai absolument aucune idée de comment démarrer.

Excusez-moi si vous avez du mal à comprendre mon problème, il m’a été très difficile de l’exprimer. Merci pour vos réponses.
6 years ago
·
#8410
1
Votes
Undo
Il faut gérer ça dans tes deux listes (profil et intervalles) en gestion d'arbre (produit vectoriel).
En gros c'est la manière dont tu créer ta liste qui va conditionner la manière dont ton script fonctionne !

Si ton script à un fonctionnement A il faut surement l'adapter pour un fonctionnement B, il faut à mon avis modifier certaines entrées pour que tu puisse gérer tes profils et tes intervalles de manières à correspondre à tes besoins !
0
Votes
Undo
Bonjour,

Le noeud List.map pourrait faire l'affaire pour appliquer la fonction sur une liste.
Sinon, si tu crées un noeud personnalisé, il est souvent utile de régler la combinaison sur "le plus long" pour recommencer la fonction sur chaque élément de la liste.
6 years ago
·
#8413
0
Votes
Undo
Bonjour,

N'est ce pas plus un problème de structure de code que de node ?

"L’insertion des profils se fait au niveau des points de passage et le script doit pouvoir accepter plusieurs profils différents. Les profils ne doivent pas être placés à la main mais directement placé par dynamo, en appelant en donnée d’entrée les profils à placer."

Avec deux structures de code différentes : Une boucle de choix de fers de type X (avec X faisant parti d'un catalogue de profil définit en paramétrage de ton script : une list variabilisée, etc),

Une boucle de placement de fer (définition des points selon un critère : chemin, contrainte, etc).

Une troisième qui gère l'arborescence et pilote les deux autres : Tu peux placer autant de fers que tu veux du type voulut en refaisant tes deux boucles par la troisième.

C'est le fonctionnement souhaité ?
6 years ago
·
#8464
0
Votes
Undo
Merci pour vos réponses,

Je n’avais pas vu le problème sous le bon angle.

La solution de Rémy Maurcot marche parfaitement, je vous mets plus bas une capture d’écran de la partie de mon script qui nous intéresse, pour les prochains qui se poseraient la même question.

Je n’ai pas compris comment je pouvais me servir de la node list.map pour mon cas.

Pour ce qui est de la solution proposée par Loic Pennamen, elle me semble très intéressante pour d’autres applications mais je ne suis pas sûre de comprendre comment créer les trois boucles que tu proposes de créer. Je ne comprends pas non plus le terme « boucle de choix de fers ». Aurais-tu un exemple de script qui me permettrait de me faire une idée plus précise de ce que tu proposais ?
There are no replies made for this post yet.

Connexion