前提

C#(他言語の場合は適宜読み替えてください。)

 

実装

ボタン設置と処理分岐の実装は以下の通り。

using System;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using System.Collections.Generic;

namespace TestTool
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    public class TestTool : IExternalCommand
    {
        public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,
            ref string message, ElementSet elements)
        {
            TaskDialog taskDialog = new TaskDialog("Revit");

            taskDialog.MainContent =
                ("Click Yes to return Succeeded. \t\n" +
                "Click No to return Failed. \t\n" +
                "Click Cancel to return Cancelled.  \t\n");

            TaskDialogCommonButtons buttons = TaskDialogCommonButtons.Yes |
                TaskDialogCommonButtons.No | TaskDialogCommonButtons.Cancel;

            taskDialog.CommonButtons = buttons;

            TaskDialogResult taskDialogResult = taskDialog.Show();

            if (taskDialogResult == TaskDialogResult.Yes)
            {
                return Autodesk.Revit.UI.Result.Succeeded;
            }
           
else if (taskDialogResult == TaskDialogResult.No)
            {
                message = "Failed";
                return Autodesk.Revit.UI.Result.Failed;
            }
           
else if (taskDialogResult == TaskDialogResult.Cancel)
            {
                message = "Cancelled";
                return Autodesk.Revit.UI.Result.Cancelled;
            }
            else
            {
                message = "Unexpected";
                return Autodesk.Revit.UI.Result.Failed;
            }
        }
    }
}

 

 

ツールを起動すると以下のダイアログが表示されるのでいずれかのボタンを押す。