Objectif : Avec un script Dynamo, faciliter la renumérotation des pièces et autres places de parking
Avant tout je dois remercier Pascal Camliti / Architecte-Formateur Revit pour ses tutoriels sur Revit et le BIM
Dernièrement j'ai été intéressé par le fait qu'il soit possible de renommer des places de parking ou des pièces à partir d'une spline Revit et d'un script Dynamo
Pour le script Dynamo, j'ai voulu tester par moi-même et j'ai particulièrement retenu le script de Belinda Carr, c'est un script simple, sans package
Merci à eux.
Il y a d'autres sources instructives:
_Custom room rRenumbering by spline using Dynamo Player Inputs > Last Parametrics by Lucie Hanzlikova
_Dynamo || Practice 01 || Automation - Numbering Rooms by Line Direction > DynaMorphine
Le renommage des pièces est facilité par le Dynamo Player
Projet avec pièces étiquetées
Tracer une spline coupant les différentes pièces à renommer
_Ligne de modèle...
Tracer une spline coupant les différentes pièces à renommer
_Ligne de modèle
_Spline...
Tracer une spline coupant les différentes pièces à renommer
_Spline
Le début de la spline correspond à la pièce qui sera le début de la liste de pièces
(Pour commencer, j'ai volontairement exclu la pièce n°8, voir point 18)
Ouvrir Dynamo
_Gérer > Dynamo...
Script des pièces...
(il faut faire une liste des pièces)
(Dans son Script Belinda Carr utilise le nœud Geometry.BoundingBox, dans mon cas cela ne fonctionnait pas, mais cela fonctionne avec Element.BoundingBox)
Script des pièces
_Categories > Pièces (Toute les pièces sont listées) > Watch
_Element.BoundingBox > identifie les limites des pièces
Script de la spline
_Select Model Element > Sélectionner la spline dans Revit
Script de la spline
Script de la spline
_Number Slider > Ce nœud sert à paramétrer un nombre de point le long de la spline...
(Voir point 15 et suivants)
Script des points dans les pièces
(Identification des intersections entre les pièces et la spline, à l'aide des points)
Script des points dans les pièces
Ce script fait la synthèse entre les données des pièces et de la spline
(Dans ce cas il n'y a que 6 pièces référencées...)
Script renumérotation des pièces
_Number > Start: N° de départ de la liste
_Number > Step: Incrément de la numérotation
Aperçu global des 4 scripts
(Réponse au point 10)
La pièce n° 3 n'a pas été prise en compte par Dynamo pour la numérotation,
Cela est du à la valeur trop faible du Number Slider > ici 20
(Réponse au point 10)
La pièce n°3 n'a pas été prise en compte par Dynamo pour la numérotation,
Cela est du à la valeur trop faible du Number Slider > ici 20
(il n'y a pas assez de points dans la dernière pièce)
(Réponse au point 10)
L'ex pièce n°3 est bien prise en compte par Dynamo pour la numérotation,
La valeur du Number Slider est de 25
(La pièce n° 8 n'est pas prise en compte car elle n'est pas coupée par la spline)
En modifiant la spline l'ex pièce n° 8 est intégrée à la numérotation Dynamo
En modifiant la spline on peut également changer l'ordre des pièces
Script de renumérotation des pièces
_Number > Start : Permet de changer le premier n° de la liste
Préparation pour Dynamo Player
(Dynamo Player permet d'activer un script sans ouvrir Dynamo)
_Enregistrement du fichier Dynamo pour l'utiliser dans Dynamo Player
(Dynamo Player permet d'activer un script sans ouvrir Dynamo)
Lorsqu'on utilise Dynamo Player, Dynamo doit être fermé
Exécution du script depuis Dynamo Player
Paramétrage des données Dynamo pour l'utilisation dans Dynamo Player
_Sélectionner les données à inclure > Est une entrée
Paramétrage des données Dynamo pour utilisation dans Dynamo Player
_Sélectionner les données à inclure > Est une entrée
Exécution du script avec Dynamo Player
Exécution du script avec Dynamo Player
3 commentaires:
Bonjour,
L'utilisation d'une BoundingBox ne me semble pas judicieux. c'est rapide pour trouver les points d'interférence mais ça va donner des résultats faux dans beaucoup de cas.
En effet comme son nom l'indique BoundingBox est une boite qui englobe la totalité de la géométrie.
- Une pièce en "L" aura une BoundingBox qui comprendra également le vide du "L"
- Une pièce rectangulaire mais avec un angle (cas d'un batiment en "V" ou autre) aura une BoundingBox bien plus grande.
- Une pièce en "trapèze" (on a pas toujours des limites de propriétés droites !) aura une BoundingBox qui comprendra le vide du trapèze.
Du coup le chemin peut très bien ne pas couper la pièce mais couper la BoundingBox.
On voit très souvent cette méthode dans des tuto de numérotation d'objet mais toujours avec des exemples tracés au cordeau, avec des objets bien droit et bien alignés. C'est dommage.
David
Bonjour,
Si vous avez mieux et aussi simple / rapide d'utilisation, je suis preneur
Christian
J'ai écris un script pour la numérotation des places de parking qui est similaire sur le principe.
J'utilise une spline pour la sélection des places.
Mais pour savoir si il y intersection, je traite l'objet "place", ou "pièce" pour vous, de façons à obtenir les lignes qui la dessine. je teste ainsi l'intersection entre la spline et les lignes. Je suis ainsi sûr que si il y a intersection, l'objet "place" est coupé.
Le script est beaucoup plus long à cause du traitement pour obtenir les lignes, mais il est plus fiable.
J'ai également poussé le vis à décomposer la spline en X segments et je teste l'intersection de chaque segments avec toutes les lignes des "places". ca permet d'être sûr de l'ordre des places car j'ai eu des surprises !
Cordialement David
Enregistrer un commentaire