我在C#中创建了一个Revit插件,允许全新的3D技术用户选择一个系列,并将其插入到他们的项目中。但是现在用户无法在任何地方或脸上放置物体之间做出选择。它是一个或另一个。 现在我的代码看起来像这样:
bool useSimpleInsertionPoint = false; //or true
bool useFaceReference = true; //or false
if (useSimpleInsertionPoint)
{
//my code for insertion on point here
}
if (useFaceReference)
{
//my code for face insertion here
}
我想做的是询问用户他想做什么。 TaskDialog.Show可以做到这一点还是别的什么?
提前致谢。
答案 0 :(得分:3)
代码如下:
TaskDialog td = new TaskDialog("Decision");
td.MainContent = "What do you want to do?";
td.AddCommandLink(TaskDialogCommandLinkId.CommandLink1,
"Use Simple Insertion Point",
"This option works for free-floating items");
td.AddCommandLink(TaskDialogCommandLinkId.CommandLink2,
"Use Face Reference",
"Use this option to place the family on a wall or other surface");
switch (td.Show())
{
case TaskDialogResult.CommandLink1:
// do the simple stuff
break;
case TaskDialogResult.CommandLink2:
// do the face reference
break;
default:
// handle any other case.
break;
}
答案 1 :(得分:2)
这应该可以解决问题:
TaskDialog dialog = new TaskDialog("Decision");
dialog.MainContent = "What do you want to do?";
dialog.AllowCancellation = true;
dialog.CommonButtons = TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.No;
TaskDialogResult result = dialog.Show();
if(result == TaskDialogResult.Yes){
// Yes
TaskDialog.Show("yes", "YES!!");
}
else
{
// No
TaskDialog.Show("no", "NO!!");
}
代码经过测试并证明可以在2014年的Revit宏中运行,因此也应该在加载项的其他任何位置正常工作。