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
)
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
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 ?