Share

IExternalCommandAvailability Interface

An interface that should be implemented to provide the implementation for a accessibility check for a Revit add-in External Command.


Namespace: Autodesk.Revit.UI
Assembly: RevitAPIUI (in RevitAPIUI.dll) Version: 26.1.0.0 (26.1.0.34)

Syntax

C#

public interface IExternalCommandAvailability

The IExternalCommandAvailability type exposes the following members.

Methods

 NameDescription
Public methodIsCommandAvailable Implement this method to provide control over whether your external command is enabled or disabled.

Remarks

This interface should share the same assembly with add-in External Command.

Example

C#

public class SampleAccessibilityCheck : IExternalCommandAvailability
{
    public bool IsCommandAvailable(Autodesk.Revit.UI.UIApplication applicationData, 
        CategorySet selectedCategories)
    {
        // Allow button click if there is no active selection
        if (selectedCategories.IsEmpty)
            return true;
        // Allow button click if there is at least one wall selected
        foreach (Category c in selectedCategories)
        {
            if (c.BuiltInCategory == BuiltInCategory.OST_Walls)
                return true;
        }
        return false;
    }
}

VB

Public Class SampleAccessibilityCheck
    Implements IExternalCommandAvailability
    Public Function IsCommandAvailable(applicationData As Autodesk.Revit.UI.UIApplication, selectedCategories As CategorySet) As Boolean Implements IExternalCommandAvailability.IsCommandAvailable
        ' Allow button click if there is no active selection
        If selectedCategories.IsEmpty Then
            Return True
        End If
        ' Allow button click if there is at least one wall selected
        For Each c As Category In selectedCategories
            If c.BuiltInCategory = BuiltInCategory.OST_Walls Then
                Return True
            End If
        Next
        Return False
    End Function
End Class

See Also

Reference

Was this information helpful?