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 : 

Utilisation de valeurs de paramètres dans Dynamo

13 RÉPONSES 13
RÉSOLU
Répondre
Message 1 sur 14
Lionel_RD
3257 Visites, 13 Réponses

Utilisation de valeurs de paramètres dans Dynamo

Bonjour !

 

Je réalise un script de ratio sur Dynamo. Mon but est d'effectuer un ratio en fonction de l'espace d'occupation :

ratio.PNG

La branche du bas est fonctionelle et permet de récupérer les surfaces et de les diviser par 8 en considérant que l'on attribue 8 m² par personne. Le ratio est calculé puis renvoyé dans Revit. Plus haut j'ai effectué un test afin d'aller plus loin car j'ai la necessité de réaliser un ratio différencié entre des pièces qui sont définies avec un ratio de 12 m² par personnes, d'autres à 8 m², certaines à 6 m² et les restantes n'interviennent pas dans ces calculs.

 

J'ai essayé avec une liste, en la triant, mais je n'arrive pas à exporter et réunir les valeurs en fonction de ce qui peut être écrit dedans comme open space, single office etc..

 

C'est vraiment un cas particulier. Existe t-il une façon de faire qui permettrai d'éviter d'avoir recours à un python script? Je ne connais malheureusement pas ce langage.

 

En tout cas je vous remercie de vous pencher sur ce problème.

Balises (3)
13 RÉPONSES 13
Message 2 sur 14
Anonymous
en réponse à: Lionel_RD

C'est un problème de programmation. Personnellement j'envisage deux solutions différentes. Soit tu crées une chaine de test sur le modèle :  If room_name = "Open space"

                                             then ratio = room_surface / 12

                                             elif room_name ="Phone call"

                                             then ratio = room_surface/8

Et ainsi de suite en listant l'ensemble des noms de tes pièces. Ou alors tu peux réduire un peu la partie programmation mais te donner un peu de travail dans revit en créant un nouveau paramètre de pièce qui viendra décrire le type de pièce "Type 1" , "Type 2"...Avec ce paramètre tu pourras décider du ratio à appliquer à la pièce sur le même modèle que plus haut mais en testant seulement les paramètres de type de pièce(mais c'est pertinent uniquement si tes noms de pièces n'agissent pas déjà comme cet hypothétique paramètre). Juste une question le ratio calculé est stocké dans un autre paramètre de pièce dans revit?

 

 

Message 3 sur 14
Lionel_RD
en réponse à: Anonymous

Merci de votre réponse rapide.

 

Je ne connais pas du tout la fonction If de Dynamo, il me faudra regarder ça de plus près sachant qu'il semble devoir le relier à des booléen d'après mes premières observations. Mais c'est vers cette solution que je pense me diriger.

 

Pour vous répondre le ratio serait envoyé sur un paramètre distinct dans l'espace pièce. Par la suite ce paramètre sera transmit dans un logiciel de gestion de patrimoine.

Message 4 sur 14
Anonymous
en réponse à: Lionel_RD

En terme de script python pure ce n'est pas très difficile à faire mais sur Dynamo ça semble plus dure mais au final c'est la même chose. Testez un peu différentes choses la programmation visuel à cet avantage là. Sinon je vous conseille l'excellent site CodeAcademy, le module d'apprentissage du python (version gratuite) n'est pas trop mal ça permet d'avoir quelques bases et c'est très interactif. Je vous encourage à chercher par vous même la solution appliquée à ce que vous voulez faire vous progresserez bien plus !

Message 5 sur 14
Lionel_RD
en réponse à: Anonymous

Je classe votre message en solution immédiatement pour ces pistes très prometteuses, bien que le sujet ne soit pas résolut pour l'instant. Je vais explorer tout ceci. J'espère également que ces axes de recherche puissent aider d'autres personnes dans la même situation.

 

Je vous remercie.

 

Message 6 sur 14
Remy_MAURCOT
en réponse à: Lionel_RD

Je n'ai pas compris ce que python venait faire là ! Tu peux arriver à tes fins sans utiliser python...

 


Rémy MAURCOT
BIM Manager

Mon C.V.
Profil LinkedIn
Message 7 sur 14
Lionel_RD
en réponse à: Remy_MAURCOT

Bonjour,

 

Je ne connais pas bien Dynamo, je l'ai découvert un peu par hasard et je le regarde de temps en temps à ma façon, même si j'ai pleine conscience des tutoriels de bonne qualité que j'ai d'ailleurs visionné pour certains (notamment sur Dynamobim). Il est évident que j'ai de grosses lacunes sur le sujet ! Je ne peux donc qu'humblement et honteusement vous demander de me laisser un peu plus de temps à l'exploration de Dynamo ! Ce n'est pas véritablement urgent comme problème mais de nature tenace je finirai par le résoudre (ou par avoir un ulcère, au choix).

 

Je pensais à python car tout ceci me semblait trop spécifique. Mais j'ai pour idée maintenant d'essayer sur Dynamo de faire une liste à partir du paramètre surface et une autre à partir du paramètre contenant les informations sur les types de pièce (open space, single office etc..). Il est possible d'extraire des éléments d'une liste par clé, ou par un montant que l'on se fixe. Peut-être qu'il est également possible de le faire à partir d'une valeur à l'intérieur d'un paramètre, et cela fait, si les valeurs de surface suivent, la division pour le ratio et l'injection dans Revit ne sera pas un problème.

Message 8 sur 14
Anonymous
en réponse à: Remy_MAURCOT

Je pense que certain noeud sont plus facile à coder avec un petit script python qu'en utilisant la programmation visuel qui peut être parfois étrange dans le choix d'input/output voir un peu réductrice.

Message 9 sur 14
Remy_MAURCOT
en réponse à: Anonymous

Je suis d'accord ! Mais dans le cas présent je ne pense pas que python soit utile...


Rémy MAURCOT
BIM Manager

Mon C.V.
Profil LinkedIn
Message 10 sur 14
jfbrigaud
en réponse à: Lionel_RD

Bonjour,

Voici une approche en Design Script (= syntaxe saisie directement dans un code block).

JF

ds.PNG


Jean-François Brigaud

EESignature

Message 11 sur 14
Lionel_RD
en réponse à: jfbrigaud

Bonjour,

 

Je me souviens de votre aide, sur le tout début de cette construction. Si je décortique bien ce code block je comprends qu'il s'agit en fait d'un nœud qui divise les surfaces en fonction du ratio. C'est tout à fait intéressant d'autant plus que son analyse m'aide à comprendre l'interaction de python avec Revit mais je pense que mon véritable problème (qui me bloque pour l'instant, mais après tout je n'ai pas encore fait le tour de Dynamo, et de ses package) c'est d'extraire les valeurs des paramètres afin de pouvoir les manipuler.

 

Je m'explique. Le paramètre en place s'appelle classe disons (un faux nom mais admettons qu'il soit vrai), qui est dans la catégorie pièce. Dans ce paramètre classe nous avons les open space (dont les surfaces doivent être divisées par 8 pour le ratio), les single office (la division est par 12 ici), les transit area (par 6 ici) et bien d'autres, qui n'ont pas d'intérêt, pour le ratio du moins.

 

Mon idée était de faire une liste, peut-être avec plusieurs item pour associer les surfaces au paramètre classe. J'ai vu que l'on peut extraire d'une liste certaines valeurs en fonction de clés ou en fonction d'un nombre indiqué. Je m'étais également intéressé à la sélection par valeur de paramètres, mais cela reste des valeurs, mes données étant des chaines.

 

Je cherche donc toujours à isoler les surfaces correspondant à des open space, des single office, ou des transit area afin de les diviser de façon discriminative. Mais ce serait plus par curiosité, pour apprendre ce logiciel que je fais preuve d'autant d'opiniâtreté car il suffit d'exporter sur un fichier excel afin de traiter les données en masse et très rapidement.

 

Donc pour résumer, le nœud Element.GetParameterValueByName est superbe si l'on veut s'arrêter aux seuls paramètres. Si l'on veut réaliser une dichotomie à l'intérieur d'un paramètre il faudrait un nœud semblable finalement, ce qui serait fort utile. Ne l'ais-je pas trouvé? Je continuerai en tout cas à lire le dictionnaire de DynamoBIM.org quand j'aurais le temps, que je conseille fortement pour les débutants tels que moi.

Message 12 sur 14
jfbrigaud
en réponse à: Lionel_RD

Voici un exemple avec un script Python:

  1. Je renseigne le paramètre de projet "Classe" (open space, single office.....).
  2. Après exécution de la définition le paramètre de projet "Nb de personnes"  est renseigné pour chaque pièce.

définition.PNGPython.PNG


Jean-François Brigaud

EESignature

Message 13 sur 14
Lionel_RD
en réponse à: jfbrigaud

C'est le résultat attendu. Je ne sais pas trop quoi dire, peut-être merci pour le temps que vous avez bien voulu accorder à mon problème qui est aujourd'hui résolu. Je ne perds pas de vue cette variable i, et je vais continuer mon apprentissage, sur la base de tout ceci.

 

Message 14 sur 14
jfbrigaud
en réponse à: Lionel_RD

Avec plaisir, n’hésitez pas à nous faire part de vos remarques / interrogations.

C'est en partageant que l'on progresse. Smiley heureux

JF


Jean-François Brigaud

EESignature

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