samedi 31 décembre 2016

Dessiner des familles sur Revit

A la base je voulais juste dessiner un ensemble de familles appartenant à une catégorie pour pouvoir les contrôler visuellement et vérifier la cohérence des symboles.

Le programme Dynamo que j'ai créé m'a révélé des difficultés que je pense être intéressant de partager.

Liens de téléchargement :

Développé sur Revit 2016/17 - Dynamo 1.2


A partir d'un répertoire contenant des familles, je vais dessiner sur le plan chaque familles types.
Les familles doivent être préalablement chargées dans le plan.

liste des répertoires :
Initialiser l'application en donnant le chemin racine des familles et du fichier excel dans lequel on écrira la liste des familles.
Vue d'ensemble du WorkFlow :



Zone 1 -  On pointe sur le répertoire racine donné dans la zone d'initialisation, et on récupère la liste de tous les fichiers .rfa avec leur chemin d'accès.


Zone 2 -  La zone commence par un bout de programme en Python.
La première image concerne les initialisations....


Dans la deuxième image, je soustrait la chaîne contenant le nom de la famille de la chaîne complète.
Il y a une méthode plus directe en utilisant  l_chemin.split("\"),...


Il faut ensuite convertir la chaîne de caractères récupérée dans le programme Python en Famille type en utilisant le paramètre Nom.

Zone 3 - J'écris dans un fichier Excel les infos que j'ai pu récupérer. Ca peut toujours servir pour une vérification.

Zone 4 : 
C'est là que j'ai été confronté à un vrai problème !
Suivant la catégorie dans laquelle la famille a été créé, il faut (ou pas) un hôte pour pouvoir implanter la famille dans le plan.
Pour les familles qui ne sont pas accrochées à un mur, on peut utiliser le Node "FamilyInstance.Bypoint". 

Pour les familles accrochées à un mur, il faut utiliser le Node créé par Springs : "Springs.HostedInstance.Bypoints". 

J'applique donc le Node Springs.HostedInstance.Bypoints. en premier (zone 4) :



Zone 5 : 
Je filtre les éléments qui ne sont pas pris en compte par la méthode (renvoi nul) dans un bout de programme Python : 


J'applique la méthode FamilyInstance.Bypoint sur le reste des family types. 
Pour l'instant je n'ai pas trouvé de meilleure solution.... 


Zone 6 : Suppression des doublons éventuels



Résultats :
Le fichier excel sera utile pour pouvoir dessiner grace à Dynamo des familles. 


L'affichage de toutes les familles ensemble.






Aucun commentaire:

Enregistrer un commentaire