Я пытаюсь использовать Revit Interactive Python Shell для вращения объекта в Revit.Я зациклен на том, как обозначить ось вращения.Я не знаю, как создать линию с помощью API, а затем назначить ось в ElementTransformUtils.RotateElement ()
Третий аргумент в RotateElement () - это ось.Я создаю линию, но я не уверен, обозначаю ли я ее ось в третьем аргументе .RotateElement ()
Когда я запускаю этот код, ничего не происходит.Это даже в том случае, если у меня выбрана стена.Пожалуйста, дайте мне знать, если что-то нужно уточнить.
Спасибо,
import clr
import math
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
def pickobject():
from Autodesk.Revit.UI.Selection import ObjectType
__window__.Hide()
picked = uidoc.Selection.PickObject(ObjectType.Element)
__window__.Show()
__window__.Topmost = True
return picked
#set the active Revit application and document
app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document
#define a transaction variable and describe the transaction
t = Transaction(doc, 'This is my new transaction')
#start a transaction in the Revit database
t.Start()
#perform some action here...
el = pickobject()
p1 = XYZ(0,0,0)
p2 = XYZ(0,0,1)
myLine = Line.CreateBound(p1, p2)
ElementTransformUtils.RotateElement(doc, el.ElementId, myLine, math.pi / 2)
#commit the transaction to the Revit database
t.Commit()
#close the script window
__window__.Close()
Оказывается, я неправильно выбирал элемент или преобразовывал градусы в радианы.После этого я смог повернуть выбранный элемент на 90 градусов.Единственная проблема, с которой я сейчас сталкиваюсь, - это выбор источника, в котором вращается элемент.