DYNAMO BIM REVIT: Création d’un outil de vérification des réservations

Je suis un adepte de Dynamo et du BIM, ou je souhaite démarrer l’expérience BIM.

Je suis responsable des lots techniques, et je fais des demandes de réservations sur Revit.

Après plusieurs indices de plans, différentes demandes, et modifications, le flux d’informations a pu être rompu. 

Premièrement, j’ouvre la maquette contenant les demandes de réservations. La maquette Gros œuvre est chargée avec ses réservations.

Après cela, je veux vérifier si toutes mes nouvelles demandes ou modifications sont bien prises en compte.

Enfin, je lance mon outil Dynamo.

Ainsi donc, nous obtenons une liste de toutes les réservations avec :

  • La confirmation de la présence dans la maquette gros œuvre
  • La correspondance spatiale
  • La correspondance de la taille

Par conséquent, nous fiabilisons les échanges pour vos projets

Présentation vidéo

Fonctionnement du Dynamo

Tout d’abord, voici les packages utilisés :

  • BimorphNodes
  • Clockwork
  • Archilab_Bumblebee

1.1 – Premièrement, nous récupérons les maquettes liées dans un script :

LinkDoc=[]
linkid=[]
reference=uidoc.Selection.PickObjects(ObjectType.Element,"Sélectionner un ou plusieurs lien(s)")
for i in reference:
    linkid .append(doc.GetElement(i))
OUT = linkid

1.2 – Deuxièmement, nous récupérons les modèles génériques de ces maquettes liées et leur transformation

linkinstance=UnwrapElement(IN[0])
linkcollector=[]
linkcollector2=[]
trf=[]
for j in linkinstance:
    linkcollector=[]
    linkcollector=FilteredElementCollector(j.GetLinkDocument()).OfCategory(BuiltInCategory.OST_GenericModel).WhereElementIsNotElementType().ToElements()
    linkcollector2.append(linkcollector)
    for i in linkcollector:
        trf.append(j.GetTotalTransform())
OUT = List.Flatten(linkcollector2,1),trf
DYNAMO REVIT BIM réservations

1.3 En troisième lieu, nous récupérons ensuite les réservations via une condition sur le paramètre identifiant.

name1=IN[0]
name2=IN[1]
elementlist = []
collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_GenericModel).WhereElementIsNotElementType().ToElements()
for i in collector:
    if doc.GetElement(i.GetTypeId()).Family.Name ==name1 or doc.GetElement(i.GetTypeId()).Family.Name ==name2 :
        elementlist.append(i)
OUT = elementlist
DYNAMO REVIT BIM réservations

3 – Puis, nous récupérons le niveau des réservations du projet en cours

DYNAMO REVIT BIM réservations

4 –  Ensuite, nous établissons une liste des identifiants présents à la fois dans le projet en cours et dans les maquettes liées. Nul si ça n’est pas le cas.

DYNAMO REVIT BIM réservations

5 – Afin de couvrir les problèmes de géoréférencement, nous récupérons les transformations des réservations des maquettes liées

DYNAMO REVIT BIM réservations

6 – Ensuite, nous identifions les intersection des réservations du projet en cours avec celles des maquettes liées. Puis, nous comparons le volume d’intersection par rapport au volume de la réservation du projet en cours.

DYNAMO REVIT BIM réservations
DYNAMO REVIT BIM réservations

7 –  Etant donné que la méthode ci-dessus peut conduire à des faux négatifs, il faudra récupérer les tailles des réservations afin de fiabiliser la comparaison.

DYNAMO REVIT BIM réservations

8 – Par la suite, nous récupérons des valeurs finales en vue de les mettre dans un fichier Excel préalablement mis en forme

DYNAMO REVIT BIM réservations
DYNAMO REVIT BIM réservations

9 – Enfin, nous modifions le fichier Excel

DYNAMO REVIT BIM réservations

10 – Pour terminer, voici le résultat

DYNAMO REVIT BIM réservations

Pour terminer, vous pouvez donc télécharger le fichier dynamo et le fichier Excel ici.

En dernier lieu, si vous souhaitez débutez sur Dynamo et en BIM voici un LIEN proposant plusieurs sources.