Pass offert BW2024
  Connexion   Inscription

Questions & Réponses

  mardi 22 novembre 2022
  7 réponses
  1.2K vues
  Suivre cette discussion
Bonjour à tous,
Je débute sur Dynamo, et j'aurais besoin de conseils d'experts ;)
Je cherche à créer une routine Dynamo pour dupliquer des vues, et les filtres attachés.
A partir d'une vue de base "phasage", je veux créer X vues qui intègrent les filtres correspondants (phase 1 avec filtre=1, phase2 avec filtre=2, phase3 avec filtre=3,...).

J'arrive à dupliquer les vues, mais je ne trouve pas comment dupliquer les filtres qui sont liés ?
Auriez-vous des packages dynamo à me conseiller ou des idées de fonctionnalité ?
Bonne fin de journée,
Mélanie
Mohamed KHETTAB
updated the category from to Modélisation, simulation et visualisation — 7 months ago
0
Votes
Undo
Bonjour François,
Je te remercie pour ton retour comme toujours complet et détaillé !
Effectivement, passer par les phases ne me paraissaient pas complètement en adéquation avec mes besoins. Mais faire un petit remix, ca peut se tenter ;)
Je vais de ce fait m'orienter vers cette solution pour le développement de mon gabarit. Je reviendrais à la pêche aux infos dès que j'ai avancé dessus (entre 2 chantiers hyper urgents, c'est la course pour tout le monde, et pas qu'aux jouets :p )
Revit n'est pas le plus adapté aux méthodologies chantier mais c'est l'un des logiciel les plus utilisé. L'objectif est aussi d'utiliser les maquettes fournies, qui sont à 80% du temps faites sous Revit (enfin quand les BE partagent leurs sources).
Et puis passer quelques heures, jours ou semaines ne comptent pas, si on s'amuse ;) Dynamo a l'air de donner pas mal de possibilités, et il faut bien commencer quelque part...
Bonne semaine et à bientôt !
0
Votes
Undo
Salut Mélanie, qui fut Claire ! (je me permet quelques familiarités et blagues nulles, mais ce n'est pas comme si nous ne nous connaissions pas ^^)

Ta réponse et le gabarit transmis ont permis de clarifier le but recherché, que je préciserai ainsi :
Établir les plans et le modèle de phasage du projet, dans le respect des critères suivants :
Critères principaux
- Une vue 3D spécifique doit être créée pour chaque phase du projet
- Chacune de ces vues 3D doit afficher en gris les objets qui sont finis (donc démarrés) avant le démarrage de la phase affectée à la vue
- Chaque vue 3D doit afficher en rouge les objets dont la création débute avant ou pendant la phase affectée à la vue ET finit pendant ou après la phase affectée à la vue (2nd filtre)
Critères secondaires
- Faire en sorte que la création des phases et filtres soit automatisée au maximum possible, tout en restant simple d'utilisation

Ma réponse va être longue car comme d'habitude, la solution n'est pas simple, et je vais repartir du but premier, détailler divers fonctionnements de Revit et émettre des propositions pour être le plus complet possible.
Donc si tu n'as pas la patience/l'envie de lire mes messages interminables (ce qui se comprend ;)), rends-toi directement à la section E, à la fin, avant la conclusion, qui décrit la trame du script Dynamo. Si tu as besoin d'aide complémentaire sur la création du script, n'hésites pas à revenir ici. Je n'ai actuellement pas le temps de le réaliser, mais je me penche dessus dès que j'ai le temps.


A - ATTEINDRE LE BUT

Pour atteindre le but visé en respectant les critères énoncés, il faut effectuer une série d'étapes, dont le nombre et l'ordre peuvent varier en fonction de l'origine des données d'entrée (script Dynamo qui fait le café, utilisation complémentaire de nomenclatures de vues, etc.).

De plus, vu que tu peux avoir trouzemillions de phases et que les filtres (au sens commun des utilisateurs) ne peuvent pas être dupliqués (cf. le rappel ci-dessous), utiliser les filtres de phase et leurs remplacements de graphisme en plus des remplacements V/G via des règles de filtre simplifiera un peu à la fois le script et à la fois la mise en place des vues et règles de filtres.

Il est donc nécessaire d'apporter quelques précisions sur le fonctionnement de la fonction Phases (phases du projet, filtres des phases, Remplacement du graphisme via les filtres de phase) et les fonctions liées aux Filtres (Règles de filtres, Remplacement V/G par les filtres).


B - FONCTIONNEMENT GÉNÉRAL DES FILTRES

Commençons par un bref rappel sur la gestion de l'affichage en général (remplacement du visuel graphique + gestion de la visibilité des objets) et sur les filtres en particulier. Bien que je me doute que tu maitrise cela, ce rappel servira à garantir que nous nous comprenions correctement en usant du même langage, et a expliquer pourquoi il est impossible de dupliquer stricto sensu un filtre.

Les fonctions de gestion de l'affichage qui exploitent les filtres s'articulent autour de deux fonctions, qui peuvent être couplées l'une à l'autre :
- La fonction Remplacement visibilité/graphismes, qui applique des propriétés graphiques aux objets ciblés par les règles de filtres ;
- La fonction Filtres à proprement parler, c'est-à-dire la fonction qui définit l'ensemble de règles qui précise à Revit quels objets pourront être concernés par un remplacement de leur affichage dans différentes vues (Onglet Vues -> Groupe de fonctions Graphismes -> Fonction Filtres).

En somme, un filtre n'est pas un remplacement d'affichage, mais seulement un moyen de "cibler" des objets. En cela, un même filtre peut engendrer des affichages différents des mêmes objets à travers deux vues distinctes (Merci Captain Obvious !).

Donc un filtre, dans le sens généralement employé par les utilisateurs de Revit, c’est-à-dire la combinaison des deux fonction ci-dessus, ne peut pas être dupliqué ET modifié en tant que tel. Il ne peut qu'être "copié" d'une vue à l'autre, notamment via un script Dynamo.


C - FONCTIONNEMENT GÉNÉRAL DE LA FONCTION PHASES

A présent que nous avons déterminé qu'il est impossible de dupliquer un filtre (au sens communément admis du terme dans Revit), voyons comment le fonctions liées aux phases peuvent nous aider en facilitant la gestion de l'affichage et en limitant à 1 le nombre de règle de filtre de remplacement V/G à créer pour chaque phase. C'est aussi l'occasion de répondre à Raphaël Blaiteau.

La création d'un filtre* de phase (déjà présent dans Revit 2022) me semble plus adapté.

(* : je ne doute pas que les vertus magiques d'un tel philtre pourrait bien nous aider, mais je pense que l'ordinateur supportera difficilement de boire quelque liquide que ce soit :D)

La propriété de vue Filtre de phase et ses fonctions liées ne couvrent pas l'entièreté des cas de figure si l'on respecte les critères établis par le gabarit de Mélanie, car Revit est incapable de considérer qu'un objet est construit sur plusieurs phases.
Il est capable de traiter de manière native et automatique cinq des six cas requis :
- L'objet est fini avant la phase associée à la vue (= Existant)
- L'objet est construit pendant la phase associée à la vue (= Nouveau)
- L'objet est construit puis démoli pendant la phase associée à la vue (= Temporaire)
- L'objet est construit avant la phase associée à la vue et démoli pendant la phase associée à la vue (= Démoli)
- L'objet n'est pas encore créé, au moment de la phase associée à la vue (= bah, rien du tout, puisqu'il n'est pas créé)

Le seul cas qui reste à traiter par le biais des remplacements V/G via les filtres est alors le suivant :
- La construction de l'objet débute avant la phase associée à la vue et se poursuit durant la phase associée à la vue ou après

Cette information dans le logiciel passe par des paramètres partagés et donc d'un point de vue de Revit, cet objet est donc considéré comme Existant, alors que d'un point de vue méthodologie de chantier en phase d’Exécution, il est considéré comme Nouveau (pour garder les termes Revit).


D - UTILISER LES REMPLACEMENTS V/G PAR ELEMENT

A ce stade, Il semble qu'il faille créer des phases, définir des filtres de phases, et créer un filtre d'affichage pour chaque phase, pour couvrir le cas que le logiciel ne parvient pas à gérer de manière automatique.

Mais, pour faciliter encore le travail, il est possible de se passer de ces règles de filtre d'affichage et d'opter pour un Remplacement V/G par élément. Ici, l'intérêt est de demander à Dynamo de comparer chaque phase de début et chaque phase de fin à la phase active de chaque vue. S'agissant d'une formule conditionnelle, cela évite de créer autant de filtres que de cas de figure réels.
Si la phase de début de l'objet est antérieure ou égale à la phase associée à une vue, ET que la phase de fin de l'objet est égale ou supérieure à cette même phase de vue, alors Dynamo effectuera un remplacement V/G par élément.


E - FEUILLE DE ROUTE DU SCRIPT DYNAMO

De tout ceci, nous déduisons que la procédure doit suivre les étapes suivantes. La logique est simple, la réalisation déjà nettement moins. En particulier le script Dynamo.

Travail "manuel"
Un moment donné, ça va bien de vouloir laisser la machine tout faire à notre place :p
1. Créer les paramètres textuels de phasage spécifiques :
- "Phase de démarrage", "Phase_Debut", etc.
- "Phase de fin", "Phase_Fin", etc.

2. Créer les phases de construction/démolition :
- Générer la table de phases dans Revit : Onglet Gérer -> Fonction Phases
- Créer ou modifier les filtres et remplacements de graphismes de phase, en fonction du résultat à obtenir

Script Dynamo
3. Créer un nombre de vues dans Revit égal au nombre de phases +2 et leur appliquer les phases et filtres de phase requis :
- Duppliquer des vues et les affecter aux vues

Vue n°1, "Etat existant". Lui appliquer :
-> la toute première phase
-> le filtre de phase qui n'affiche que les objets Nouveaux
-> aucun remplacement dans le filtre de phase

Vues n° 2 à N+1, "Phase 1" à "Phase N". Leur appliquer : -> associer à chacune de ces vues , ainsi que (remplacement d'affichage par filtres de vues et filtres de phases)
-> une des phases de construction
-> le filtre de phase qui affiche sans remplacer les graphismes des objets Existants
-> le filtre de phase qui affiche et remplace les graphismes des objets Nouveaux

Vue n°N+2, "Etat futur". lui appliquer :
-> la toute dernière phase
-> le filtre de phase qui affiche sans remplacer tous les objets Existants
-> aucun remplacement dans le filtre de phase

3. Remplacer l'affichage des objets par élément, en fonction de leur phase de début et de fin, par rapport à la phase associée à la vue
- Utiliser le noeud Dynamo Element.overrideColorInView, pour le remplacement de couleur
Exemple d'utilisation


F - CONCLUSION

On le voit, si Dynamo est indéniablement un complément très important de Revit, il n'en n'est pas moins sans faille ni galère à l'utilisation. Des actions qui nous semblent à nous utilisateurs, élémentaires, peuvent s'avérer être un enfer à créer, d'autant qu'il faut aussi composer avec les fluctuations de développement des packages et l'évolution du Python. L'interminable thread démarré il y a 5 ans et encore en cours sur le changement de couleur des étiquettes de gaines/cana (dernier lien ci-dessus) illustre parfaitement cette limite finalement vite atteinte de Dynamo.

Et au risque de me répéter, quoiqu'en dise Autodesk, Revit reste un logiciel de conception plutôt orienté Maitrise d'Œuvre. Il ne dispose que très difficilement de fonctions et propriétés destinées à la méthodologie de chantier et à la fabrication, disponibles nativement et plus accessibles dans d'autres logiciels orientés, eux, Exécution.

Donc, il est important de parfaitement comprendre le fonctionnement du logiciel, ici Revit, avant de se plonger dans les méandres des plugins, de la recherche de l'automatisation etc. Cela étant, il faut finalement accepter que tout ne peut pas être produit simplement et que la construction d'un automatisme peut requérir des heures, des jours, des semaines de travail, voire davantage.

Alors, parfois, le mieux ne serait-il pas l'ennemi du bien ?
0
Votes
Undo
Bonjour,

Dans votre cas, il n'y a pas spécialement besoin de créer des filtres avec dynamo.
La création d'un philtre de phase (déjà présent dans Revit 2022) me semble plus adapté.
Je vous transmet l'aide à la création de filtre de phase pour Revit 2019, mais cela fonctionne de la même façon pour Revit 2022
Aide création filtre de phase Revit 2019
0
Votes
Undo
Bonjour François,
Merci pour ton retour avec un questionnaire très complet ! Je ne sais pas si je vais réussir à répondre précisément à l'ensemble de tes questions, mais je vais essayer de t'expliquer mon raisonnement.
Mon objectif est de créer un gabarit Revit pour les phasages, et que celui-ci soit aussi simple à utiliser pour 3 phases que pour 50. Je joints le fichier Revit de base, ce sera plus simple à comprendre !

Donc, pour cela, j'ai créé une vue 3D (3d-Phasage) qui intègre mes 3 filtres :
- Avant_Phase : Si Phase_Fin < [Phase_en_cours], j'affiche en grisé
- Encours_Phase : Si Phase_Debut >= [Phase_en_cours] et Phase_Fin <= [Phase_en_cours], j'affiche en rouge
- Apres_Phase : Si Phase_Debut > [Phase_en_cours], je masque

Mon script dynamo me permet de dupliquer autant de vue "3D-Phasage" que je lui demande. Cependant, ces vues intègrent toutes les memes filtres de base, ce qui globalement, ne m'est pas très utile. Mon objectif, c'est que ma donnée de [Phase_en_cours] suive mon incrémentation Dynamo :
- 3D-Phasage 1 - [Phase_en_cours] = 1
- 3D-Phasage 2 - [Phase_en_cours] = 2
- 3D-Phasage 3 - [Phase_en_cours]=3...

Vu qu'il s'agit de mon 1e script Dynamo, je cherche déjà à régler ce soucis, avant d'essayer de voir plus loin !

J'ai pensé qu'il était plus simple de dupliquer un filtre existant. Mais je sèche, donc il vaut peut-être mieux le créer de toute pièce avec Dynamo ? Ou alors directement passer sur de la programmation Python, mais là c'est une autre paire de manches...

J'espère avoir été assez claire ! N'hésitez pas à me dire s'il reste de précisions à apporter.
0
Votes
Undo
Bonjour Mélanie,

Quelques petites questions, avant de partir dans tous les sens :


A - Les filtres

1. Est-ce qu'il existe un filtre d'origine, appliqué à la vue de base (3D-Phasage), ou bien la vue de base n'exploite-t-elle aucun filtre, tous les filtres devant être créés en même temps que les vues dupliquées ?

2. Si un filtre de base existe, quel est son nom ? (pour savoir qui il faut dupliquer)

3. Quels sont les paramètres graphiques affectés à ces filtres qu'il faut appliquer dans les propriétés Remplacement Visibilité/Graphisme des vues dupliquées (état d'activation, état de visibilité, motifs, couleurs et épaisseurs de lignes, motifs de remplissage, niveau de transparence, état de la demi-teinte) ?

4. Est-ce que le filtre d'affichage présenté en exemple est le seul à appliquer aux vues dupliquées ? Donc, est-ce que tous les filtres dupliqués doivent suivre la seule règle Phase_Début = Plus petit que X et Phase_Fin = Plus grand que X ?
(ou Plus petit ou égal à, et Plus grand que ou égal à, la capture d'écran ne montrant pas l'opérateur en entier).

Parce qu'en l'état actuel de la règle de filtre et de l'exemple donné, et bien que cela puisse sembler sortir du cadre de la demande et que je sois un peu fatigué, il parait que cette seule règle de filtre ainsi construite ne couvre pas tous les cas possibles pour une vue dupliquée. Par exemple, si le filtre sert à masquer les objets concernés par le filtre, un coulage de mur démarré en phase 1 (Phase_Début < 3) et achevé en phase 4 (Phase_Fin > 3) est visible, mais un coulage de mur démarré en phase 1 et achevé en phase 2 n'est pas visible.

Dès lors, est-ce que le système de phases et filtres de phases natif de Revit doit aussi intervenir dans les propriétés des vues ? Dans ce cas, le script doit aussi modifier la phase active du modèle et appliquer le filtre de phase idoine.


B - Les intentions réelles

1. Indépendamment de Dynamo, qu'est-ce que tu souhaite obtenir précisément comme résultat ?
- Qu'est-ce qui doit être visible ou masqué sur chaque vue ?
- Comment doivent-être affichés les différents éléments visibles ?
- En fonction de quelles propriétés ? De quelle valeur de ces propriétés ?
- etc.

Alors oui, je sais que nous n'avons pas besoin de ce dernier point pour répondre spécifiquement à la question, mais vu le point A.4, et Dynamo n'étant qu'un outil, et perfectible et incomplet en tant que tel, mieux connaitre le but réel du script, donc la description des vues/plans à obtenir, nous permettra de proposer des solutions plus pertinentes.
0
Votes
Undo
Bonjour,
Je travaille sur Revit 2022, avec la version Dynamo Revit 2.12.
J'ai les packages BIM4Struc, buildz, Core, Create Geometry, GenerativeDesign, Grimshaw, Logic, LunchBox et Modelical.
0
Votes
Undo
Bonjour Mélanie,

Pouvez vous nous indiquer les information suivante ?
1) la version de Revit que vous utilisez
2) la version de Dynamo que vous utilisez
3) Les package que vous utilisez (trouvable dans le menu package-> gérer les package ou dans la liste des noeuds)

Ces information nous seront utiles pour vous apporter la réponse la plus adapté à votre cas.
Cordialement,
Raphaël
Mélanie Van Meenen updated the category from to — 1 year ago
There are no replies made for this post yet.

Hexabim

La plateforme du BIM et de la Construction Numérique en France.

© HEXABIM 2014 - 2024

Connexion