在 C# 中使用 Revit API 提示用户回答布尔选择
Prompt user to answer boolean choice using Revit API in C#
我用 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 会起作用还是其他什么?
提前致谢。
这应该可以解决问题:
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 宏中工作,因此在加载项中的其他任何地方也应该可以正常工作。
文森特的方法很好。我更喜欢的一件事是将 CommandLink 选项与 TaskDialog 一起使用。这为您提供了可供选择的 "big option" 按钮,提供了答案以及关于每个答案的可选行 "explanation"。
代码如下:
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;
}
我用 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 会起作用还是其他什么?
提前致谢。
这应该可以解决问题:
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 宏中工作,因此在加载项中的其他任何地方也应该可以正常工作。
文森特的方法很好。我更喜欢的一件事是将 CommandLink 选项与 TaskDialog 一起使用。这为您提供了可供选择的 "big option" 按钮,提供了答案以及关于每个答案的可选行 "explanation"。
代码如下:
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;
}