2

我只是做了这里写的,但我遇到了问题__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”是外部函数。如果我用其他东西改变'return'行,比如elem = Element.GetGeometryObjectFromReference(pickedRef),那么它说有一个意外的缩进(当然我检查了缩进,正常应该没问题)。

最后,如果我评论该__window__.Topmost行,那么我没有收到错误消息。

您是否也遇到过问题?

但是我最大的问题是,最后,我选择了一个元素,但我没有看到弹出对话框窗口,并显示预期的消息“请选择一个组”)。那是从哪里来的?我猜“最顶层”命令只是将外壳带回顶部,所以它不是来自那个......

有什么线索吗?

非常感谢 !

4

1 回答 1

3

我在我的网站上用法语回答了你的评论:这里

PickObject 方法不应该让任何窗口弹出。它在左下角显示一条帮助消息,请检查此图像:!带有消息的 Revit 提取

这是一个工作代码:

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 (last recent call last): File "", line 1, in TypeError: pickobject() 需要 1 个参数(给定 0)

于 2014-11-13T21:47:39.610 回答