Как получить свойство оси с помощью Revit API? - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь использовать 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 градусов.Единственная проблема, с которой я сейчас сталкиваюсь, - это выбор источника, в котором вращается элемент.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Ваш скрипт на Python выглядит прекрасно для меня, как только 90 градусов были заменены 0.5 * pi радианами.Вы можете сравнить его с этим похожим фрагментом рабочего примера кода, используемого для творческого обходного пути для поворота маркера высоты в кусках .

0 голосов
/ 10 декабря 2018

Я думаю, что вы делаете неправильно, это угол.Это должно быть в радианах.В вашем примере это будет π / 2.Смотри здесь

...