Revit Python拾取对象/选择对象
我对编码相当陌生,所以这可能是显而易见的 为什么在运行此代码时出现错误“name'ObjectType'not defined”:Revit Python拾取对象/选择对象,python,api,revit,revitpythonshell,Python,Api,Revit,Revitpythonshell,我对编码相当陌生,所以这可能是显而易见的 为什么在运行此代码时出现错误“name'ObjectType'not defined”: picked = uidoc.Selection.PickObject(ObjectType.Element) 我使用的是revit python shell(IronPython)这是因为ObjectType未在该语句的范围内定义: >>> ObjectType Traceback (most recent call last): File
picked = uidoc.Selection.PickObject(ObjectType.Element)
我使用的是revit python shell(IronPython)这是因为
ObjectType
未在该语句的范围内定义:
>>> ObjectType
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ObjectType' is not defined
>>> ObjectType = 12
>>> ObjectType
12
>>对象类型
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“ObjectType”
>>>ObjectType=12
>>>对象类型
12
可能您忘记了导入语句?这是因为
ObjectType
在该语句的作用域中没有定义:
>>> ObjectType
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ObjectType' is not defined
>>> ObjectType = 12
>>> ObjectType
12
>>对象类型
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“ObjectType”
>>>ObjectType=12
>>>对象类型
12
可能您忘记了导入语句?您应该将
ObjectType
导入当前范围:
>>> from Autodesk.Revit.UI.Selection import ObjectType
>>> picked = uidoc.Selection.PickObject(ObjectType.Element)
我刚刚在RevitPythonShell中尝试了这个方法,并注意到它不起作用,因为shell仍然在前景中。因此,这种技术适用于添加到功能区中的脚本,但不能直接从shell。。。我还不太确定如何解决这个问题。对不起
编辑:使用类似这样的函数完成以下操作:
def pickobject():
from Autodesk.Revit.UI.Selection import ObjectType
__window__.Hide()
picked = uidoc.Selection.PickObject(ObjectType.Element)
__window__.Show()
__window__.Topmost = True
return picked
您可以通过将其粘贴到底部的编辑器窗格中并点击F5或将其添加到Init脚本或其他方式来运行它。然后,当需要拾取元素时,只需调用
pickobject()
。您应该将ObjectType
导入当前范围:
>>> from Autodesk.Revit.UI.Selection import ObjectType
>>> picked = uidoc.Selection.PickObject(ObjectType.Element)
我刚刚在RevitPythonShell中尝试了这个方法,并注意到它不起作用,因为shell仍然在前景中。因此,这种技术适用于添加到功能区中的脚本,但不能直接从shell。。。我还不太确定如何解决这个问题。对不起
编辑:使用类似这样的函数完成以下操作:
def pickobject():
from Autodesk.Revit.UI.Selection import ObjectType
__window__.Hide()
picked = uidoc.Selection.PickObject(ObjectType.Element)
__window__.Show()
__window__.Topmost = True
return picked
您可以通过将其粘贴到底部的编辑器窗格中并点击F5或将其添加到Init脚本或其他方式来运行它。然后在需要拾取元素时调用
pickobject()
。Daren,谢谢!!我刚刚开始了解如何编程和使用revit的SDK。我一直在查看你和杰里米·塔米克的网站,但进展缓慢。@dciolino,嘿,不客气!坚持下去,很快一切都会有意义的;-)我收到StackOverflow的电子邮件,询问标记为revit和revitapi的问题,请随意提问!达伦,谢谢你!!我刚刚开始了解如何编程和使用revit的SDK。我一直在查看你和杰里米·塔米克的网站,但进展缓慢。@dciolino,嘿,不客气!坚持下去,很快一切都会有意义的;-)我收到StackOverflow的电子邮件,询问标记为revit和revitapi的问题,请随意提问!