Dynamo中TaskDialog提示对话框相关代码总结

Dynamo中用Python Script制作TaskDialog对话框,有两种方式,一种是直接调用Python库里的windows.Form,我们可以直接引入windows.Form库使用。另一种是调用Revit API中的TaskDialog方法,可以直接引入RevitAPIUI里的TaskDialog来使用。下面我附上两种方式得基本代码:

1、调用windows.Form

image.png

import clr
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import MessageBox
msg = IN[0]
out = []
if msg == True:
	out = MessageBox.Show("BIM的乐趣")
OUT = out

 

2、调用RevitAPIUI

image.png

import clr
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.UI import TaskDialog
a = IN[0]
out = []
if(a == True):
	out = TaskDialog.Show("九哥BIMer","BIM的乐趣")
OUT = out

3、调用RevitAPIUI——方式二

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitAPIUI")
from Autodesk.Revit.UI import *

task_dialog = TaskDialog("标题样例")
task_dialog.CommonButtons = TaskDialogCommonButtons.Cancel | TaskDialogCommonButtons.Ok | TaskDialogCommonButtons.Close |     TaskDialogCommonButtons.No | TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.Retry | TaskDialogCommonButtons.None
task_dialog.FooterText = "脚部样例标题"
task_dialog.MainInstruction = "主窗口内容样例"
task_dialog.MainContent = "这是主要内容提示样例"

OUT = task_dialog.Show()

image.png

4、点击按钮后,继续弹窗(摘自“牛侃BIM”公众号)

import clr
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
element=UnwrapElement(IN[0])
#定义对话框的名称
dialog=TaskDialog("BIM的乐趣")
#定义对话框的标题
dialog.MainInstruction="构件信息"
#定义对话框的主要内容
dialog.MainContent="构件名称"
dialog.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "查看构件ID")
Result=dialog.Show()
#返回结果
if TaskDialogResult.CommandLink1 == Result:
    #新对话框
    dialog1= TaskDialog("九哥BIMer")
    dialog1.MainInstruction = "构件ID: " + element.Id.ToString()
    dialog1.Show()
    
OUT =element.Id.ToString()

TaskDialog 00_00_00-00_00_30.gif

image.png

5、提示框添加图标

之前有小伙伴问我,能不能像Excel提示一样,前面有个特殊图标,测试了下,确实有,附上代码和截图:

image.png

import clr
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import TaskDialog, TaskDialogCommonButtons, TaskDialogResult, TaskDialogCommandLinkId, TaskDialogIcon

mainDialog = TaskDialog("BIM的乐趣")
mainDialog.MainInstruction = "By 九哥BIMer "
mainDialog.MainContent = "图标测试"

#mainDialog.MainIcon = TaskDialogIcon.TaskDialogIconShield
mainDialog.MainIcon = TaskDialogIcon.TaskDialogIconWarning

mainDialog.CommonButtons = TaskDialogCommonButtons.Close;
mainDialog.DefaultButton = TaskDialogResult.Close;

mainDialog.FooterText = "角标"

tResult = mainDialog.Show()
OUT = tResult

此功能需要,我们访问Revit API内的消息框图标:

image

除了上面那种,还有如下几种样式:

image.png

image.png

image.png

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九哥BIMer

予人玫瑰,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值