为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Revit API 获取轴属性?

如何使用 Revit API 获取轴属性?

qq_花开花谢_0 2021-09-11 20:24:41
我正在尝试使用 Revit Interactive Python Shell 在 Revit 中旋转对象。我被挂在如何指定旋转轴上。我不知道如何使用 API 创建一条线,然后在 ElementTransformUtils.RotateElement() 中指定一个轴RotateElement() 中的第三个参数是轴。我正在创建一条线,但我不确定我是否在 .RotateElement() 的第三个参数中指定了它的轴当我运行此代码时,什么也没有发生。如果我选择了一堵墙,情况也是如此。如果有什么需要澄清的,请告诉我。谢谢,import clrimport mathclr.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 documentapp = __revit__.Applicationdoc = __revit__.ActiveUIDocument.Document#define a transaction variable and describe the transactiont = Transaction(doc, 'This is my new transaction')#start a transaction in the Revit databaset.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 databaset.Commit()#close the script window__window__.Close()事实证明我没有正确选择元素或将度数转换为弧度。做完这些事情后,我能够让我选择的元素旋转 90 度。我现在面临的唯一问题是选择元素旋转的原点。
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

我认为你做错的是角度。这需要以弧度为单位。在您的示例中,这将是 π/2。看这里


查看完整回答
反对 回复 2021-09-11
?
LEATH

TA贡献1936条经验 获得超6个赞

一旦90度数被0.5 * pi弧度取代,你的 Python 脚本在我看来完全没问题。您可以将它与此类似的工作示例代码片段进行比较,该示例代码用于在 Chunks 中旋转高程标记创意解决方法


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信