我刚刚完成了here所写的内容,但我遇到了__window__.Topmost = True
的问题。
(所以,我直接从Shell运行)
这是我的完整代码:
def Test(self) :
__window__.Hide()
sel = __revit__.ActiveUIDocument.Selection
pickedRef = sel.PickObject(ObjectType.Element, "Please select a group");
__window__.Show()
__window__.Topmost = True
return pickedRef
的确,如果我这样做,我收到一条错误消息,说“返回”是在函数之外。如果我用其他东西改变'return'行,比如elem = Element.GetGeometryObjectFromReference(pickedRef)
,那么它会说有一个意外的缩进(当然我检查了缩进,通常应该没问题)。
最后,如果我评论__window__.Topmost
行,那么我没有收到任何错误消息。
您是否也遇到过问题?
然而我最大的问题是,最后,我选择了一个元素,但是我看不到弹出预期消息“请选择一个组”的对话窗口。它来自哪里?我猜“最顶层”的命令只是将shell带回顶部,所以它并非来自......
有任何线索吗?
非常感谢!
答案 0 :(得分:3)
我在网站上用法语回答了您的评论:here
PickObject方法不应该弹出任何窗口。它会在左下角显示一条帮助信息,请查看此图片: Revit extract with message
这是一个有效的代码:
def pickobject():
from Autodesk.Revit.UI.Selection import ObjectType
__window__.Hide()
picked = uidoc.Selection.PickObject(ObjectType.Element, "Select object")
__window__.Show()
__window__.Topmost = True
return picked
此外,你不应该在这种情况下添加“自我”。它将返回以下错误: Traceback(最近一次调用最后一次): 文件“”,第1行,in TypeError:pickobject()只取1个参数(给定0)