IExternalCommand
Public Interface
Public Method
An interface that should be implemented to provide the implementation for a Revit add-in External Command.
Namespace: Autodesk.Revit.UI
Assembly: RevitAPIUI (in RevitAPIUI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public interface IExternalCommandThe IExternalCommand type exposes the following members.
Methods
Name
Description
Public Method
Execute
Overload this method to implement and external command within Revit.
Remarks
To add an external command to Autodesk Revit the developer should implement an object that supports the IExternalCommand interface.
Example
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){ try { Document doc = commandData.Application.ActiveUIDocument.Document; UIDocument uidoc = commandData.Application.ActiveUIDocument; // Delete selected elements
ICollection<Autodesk.Revit.DB.ElementId> ids = doc.Delete(uidoc.Selection.GetElementIds());
TaskDialog taskDialog = new TaskDialog("Revit"); taskDialog.MainContent = ("Click Yes to return Succeeded. Selected members will be deleted.\n" + "Click No to return Failed. Selected members will not be deleted.\n" + "Click Cancel to return Cancelled. Selected members will not be deleted."); 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) { ICollection<ElementId> selectedElementIds = uidoc.Selection.GetElementIds(); foreach (ElementId id in selectedElementIds) { elements.Insert( doc.GetElement(id) ); } message = "Failed to delete selection."; return Autodesk.Revit.UI.Result.Failed; } else { return Autodesk.Revit.UI.Result.Cancelled; } } catch { message = "Unexpected Exception thrown."; return Autodesk.Revit.UI.Result.Failed; }
}