Automatiser la création d'élévation de voiles
SA
steven ABOUDIWAN
19 novembre 2018
6046 0 16 0
Bonjour,
j'essaye de faire un programme sur dynamo pour réaliser des élévations de voile sauf que je suis confronté à plusieurs problèmes :
1- le programme bug toujours systématiquement (il y a beaucoup de voile dans le projet sur lequel je travaille mais ça n'empeche que je comprends pas pourquoi Revit ne répond plus du tout et ne fini pas l'exécution)
2- Presque tous mes voiles sont indiqués par la node Element.LocalCoordinateSystem comme étant invalides et je ne comprends pas pourquoi. J'essaye de récupérer les coordonnées des voiles pour en faire une coupe pour l'élévation.
J'ai fait le tour des forums pour trouver des sujets similaires mais je ne trouve rien à ce propos.
Si vous avez une idée de comment je peux régler ce probleme ou même si vous avez que de simples pistes à exploiter je suis preneur !
Merci d'avance !
PS : Je suis débutant sur Revit/dynamo
j'essaye de faire un programme sur dynamo pour réaliser des élévations de voile sauf que je suis confronté à plusieurs problèmes :
1- le programme bug toujours systématiquement (il y a beaucoup de voile dans le projet sur lequel je travaille mais ça n'empeche que je comprends pas pourquoi Revit ne répond plus du tout et ne fini pas l'exécution)
2- Presque tous mes voiles sont indiqués par la node Element.LocalCoordinateSystem comme étant invalides et je ne comprends pas pourquoi. J'essaye de récupérer les coordonnées des voiles pour en faire une coupe pour l'élévation.
J'ai fait le tour des forums pour trouver des sujets similaires mais je ne trouve rien à ce propos.
Si vous avez une idée de comment je peux régler ce probleme ou même si vous avez que de simples pistes à exploiter je suis preneur !
Merci d'avance !
PS : Je suis débutant sur Revit/dynamo
Réponses
Salut,
Difficile de t'aider beaucoup car ton script n'est pas détaillé.
Il faudrait que tu détailles ce que tu veux faire.
Dynamo c'est un enchainement de logique qu'il faut agencer.
En commençant par les données d'entrée et ce que tu veux en sortie.
Tu peux commencer à le faire sur le papier par exemple.
Si tu cherches à déterminer des coordonnées pour des éléments, tu peux essayer "Element.Location+" du package Clockwork ( cf. PJ).
Difficile de t'aider beaucoup car ton script n'est pas détaillé.
Il faudrait que tu détailles ce que tu veux faire.
Dynamo c'est un enchainement de logique qu'il faut agencer.
En commençant par les données d'entrée et ce que tu veux en sortie.
Tu peux commencer à le faire sur le papier par exemple.
Si tu cherches à déterminer des coordonnées pour des éléments, tu peux essayer "Element.Location+" du package Clockwork ( cf. PJ).
YS
Merci pour votre réponse,
voila mon script complet, alors l'idée générale est de récupérer l'ensemble des voiles "valides" et de proposer à l'utilisateur de sélectionner celui ou ceux dont il souhaite réaliser l'élévation avec d'autres paramètres comme la profondeur de la vue et le décalage pour la limite du cadre de vue, puis le programme prend leurs coordonnées et créé une vue d'élément


voila mon script complet, alors l'idée générale est de récupérer l'ensemble des voiles "valides" et de proposer à l'utilisateur de sélectionner celui ou ceux dont il souhaite réaliser l'élévation avec d'autres paramètres comme la profondeur de la vue et le décalage pour la limite du cadre de vue, puis le programme prend leurs coordonnées et créé une vue d'élément
SA
YS
Salut,
Le noeud Element.LocalCoordinateSystem attend des éléments qui se basent sur un point d'insertion (comme les poteaux par exemple).
Les murs se basent sur des lignes pour être placés et n'ont pas de point d'insertion à proprement parler.
Pour obtenir un point caractéristique du voile, je te suggère d'utiliser Element.GetLocation sur tes murs. Cela devrait te donner une Curve sur laquelle tu peux générer un point (le centre de la courbe par exemple).
Le noeud Element.LocalCoordinateSystem attend des éléments qui se basent sur un point d'insertion (comme les poteaux par exemple).
Les murs se basent sur des lignes pour être placés et n'ont pas de point d'insertion à proprement parler.
Pour obtenir un point caractéristique du voile, je te suggère d'utiliser Element.GetLocation sur tes murs. Cela devrait te donner une Curve sur laquelle tu peux générer un point (le centre de la courbe par exemple).
KL
je l'ai vue cette node mais le probleme c'est que pour utiliser la node create element view il me faut un vecteur X et un vecteur Y et en décomposant ce vecteur en un vecteur X et un Y il ne créé pas la vue
SA
Si la difficulté est de récupérer les vecteurs des murs, Clockwork a un nœud dédié.
Cela ne résout pas ton souci ?
YS
pas vraiment à vrai dire, wall.orientation me renvoit la normale au mur qui est un vecteur unique là où ma node à besoin de 2 vecteurs.
En faite le principal probleme reste de créer l'élévation du voile
En faite le principal probleme reste de créer l'élévation du voile
SA
Je n'ai pas le dernier nœud donc je n'arrive pas à voir quel type d'entrée il demande mais un vecteur se décompose cf PJ.
YS
justement, en essayant de le faire j'ai une erreur sur ma node Create Element View qui me dit que les données en entrée doivent être des vecteurs et non des doubles car en sortie de Vector.X et Vector.Y on obtient non pas des vecteurs mais des double
SA
YS
SA
malgré de nombreux essais j'ai toujours ce "nul" renvoyé et la coupe ne se créée pas
SA
KL
j'ai essayé mais ça me met exactement la même chose : "nul".
Peut être dans ce cas le problème ne vient pas de la mais je vois pas ce qui peut causer ça si c'est pas les vecteurs
Peut être dans ce cas le problème ne vient pas de la mais je vois pas ce qui peut causer ça si c'est pas les vecteurs
SA
C'est en anglais comme toujours...
Le noeud personnalisé utilise un nom de paramètre qui n'existe pas en français !
Le noeud personnalisé utilise un nom de paramètre qui n'existe pas en français !
YS
oh purée merci ! c'est exactement ça !
pour le coup je m'y attendais pas !
merci infiniment !!
pour le coup je m'y attendais pas !
merci infiniment !!
SA


