L’outil rotation de Revit permet de faire une rotation sur l’axe z uniquement. Pour une rotation sur l’axe X, il faut aller en coupe et je n’aime pas devoir changer de vue pour une opération aussi simple. Voici un script pour effectuer une rotation sur l’axe X, on peut utiliser la même méthode sur l’axe Y :
t = Transaction(doc, "Rotation axe x") t.Start() point2 = XYZ(0,0,1) for e in getselection(): o = doc.GetElement(e).Location.Point z = XYZ(o.X + 1, o.Y, o.Z) axis = Line.CreateBound(o, z) ElementTransformUtils.RotateElement(doc,e,axis,pi/2) t.Commit()
Voici une vidéo démo d’un application simple et utile :
Bonjour,
J’ai testé le script « Rotation axe x » sur une étiquette d’annotation, mais cela ne fonctionne pas.
Syntax Error: invalid syntax (line 1)
Syntax Error: unexpected indent (line 2)
Syntax Error: unexpected token ‘Start’ (line 2)
Syntax Error: unexpected token » (line 9)
Je précise que je n’ai aucune compétence en python. Peut-être que le script ne fonctionne pas sur des étiquettes d’annotation. Il y a certainement aussi la possibilité de paramétrer la famille pour qu’il se retourne sur les axes X et Y mais je suis aussi débutant avec les familles et je trouvais l’utilisation de scripts bien pratique.
Voilà, si vous pouviez me faire un retour ce serait sympa.
Cordialemnt
Bonjour,
Une étiquette d’annotation est un élément 2D, il ne peut pas tourner sur l’axe X (rotation «3D»), seulement sur l’axe Z.
Cependant le message d’erreur que vous obtenez n’a rien à voir. Il s’agit d’un problème d’indentation et de syntaxe (mise en forme du code). Le code dans l’article est un extrait de code. Si vous souhaitez en apprendre plus sur le sujet, je vous invite à consulter la section FAQ : http://pythoncvc.net/?page_id=302
Si vous souhaitez simplement utiliser la fonction ou voir le code d’une fonction qui fonctionnera directement, je vous invite à installer pyRevitMEP : http://pythoncvc.net/?page_id=123