Extraction de familles Revit

Il faut beaucoup de mécanismes pour contrôler la qualité et maintenir la performance d'une maquette Revit. Pourquoi? Une maquette optimale sera plus rapide et facile à manipuler pour tous les intervenants, directement ou en lien Revit.

Une des façons de faire le ménage est de purger tout ce qui est inutilisé. Par contre, cette purge ne se fait pas automatiquement  en profondeur, car elle doit être aussi exécutée individuellement dans chaque éditeur de famille non-système. (Annotations, mobiliers, équipements spécialisés,  portes, etc..)

Vous avez donc deux choix :

1 - Ouvrir chaque famille individuellement, les purger et les réinsérer une par une.

OU

2- extraire toutes les familles avec Dynamo dans un dossier pour en évaluer la taille et faire une purge sélective.

Nous allons démontrer cette dernière approche, car non seulement elle est plus rapide, mais permet aussi, à la fin d'un projet, d'extraire toutes les familles utiles pour un usage futur.

Voici donc une vue d'ensemble du graph :

 

D'abord il faut sélectionner la ou les catégories à extraire

 L'exemple ici prend seulement les Élément de détail. Le noeud "All families Of Category" fait exactement cela.

L'exemple ici prend seulement les Élément de détail. Le noeud "All families Of Category" fait exactement cela.

Ensuite, il faut extraire les noms de chaque famille pour le sauvegarder sous ces noms.

 ici  le caractère "/ " est ajouté au début de chaque nom "Family Name". Remarquez qu'avec seulement les familles d'éléments de détail, il y en a 426 unique.

ici  le caractère "/ " est ajouté au début de chaque nom "Family Name". Remarquez qu'avec seulement les familles d'éléments de détail, il y en a 426 unique.

Pour pouvoir sauvegarder sans problème, il faut supprimer ou remplacer les caratères interdits tels que : accent, point, virgule, arobas, guillemets, apostrophe, etc...

 Pour éviter cette manœuvre, le mieux est de ne pas utiliser les caractères interdits dès le départ. Ici nous remplaçons les ". " et "/" par un "_"

Pour éviter cette manœuvre, le mieux est de ne pas utiliser les caractères interdits dès le départ. Ici nous remplaçons les ". " et "/" par un "_"

Il faut aussi spécifier l'endroit ou sauvegarder les familles.

 Un dossier "\extract" a été crée pour l'exercice.  le CodeBLock est seulement là pour combiner le chemin, les noms et l'ajout du suffixe .RFA à chaque famille.

Un dossier "\extract" a été crée pour l'exercice.

le CodeBLock est seulement là pour combiner le chemin, les noms et l'ajout du suffixe .RFA à chaque famille.

Ce code Python sert a communiquer avec l'API de Revit, dans ce cas-ci le document contenant les familles à extraire.

 Le plus important est la fin du code : Pour chaque famille de la liste IN[0], une chaine d'actions se produit: d'abord la famille s'ouvre dans son éditeur et est ensuite sauvegarder au chemin IN[1], puis la commande ferme l'éditeur.

Le plus important est la fin du code : Pour chaque famille de la liste IN[0], une chaine d'actions se produit: d'abord la famille s'ouvre dans son éditeur et est ensuite sauvegarder au chemin IN[1], puis la commande ferme l'éditeur.

Résultat 

 oui les 426 Élément de détail sont là. Imaginez le faire à la main.

oui les 426 Élément de détail sont là. Imaginez le faire à la main.

Est-ce vraiment utile? Disons que sur un projet de 500mo nous avons fait l'exercice en faisant l'extraction des portes et en purgeant ceux qui étaient trop volumineux. À la fin de l'exercice il y a avait près de 100mo de moins.

Classement des éléments par sous-projets

Classement des éléments par sous-projets

Pour une surface de topographie exacte.

Pour une surface de topographie exacte.