Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
jjstr8
in reply to: bindlmi

It's under InventorApplication.CommandManager.ControlDefinitions["command name"].Enabled. InventorApplication is your field/property for the Application object. The command name is the internal name you used in AddButtonDefinition. Here's a C# example. This goes in your ApplicationAddinServer implementation.

private void UserInterfaceEvents_OnEnvironmentChange(Inventor.Environment environment, EnvironmentStateEnum environmentState, EventTimingEnum beforeOrAfter, NameValueMap context, out HandlingCodeEnum handlingCode)
{

    if ((environmentState == EnvironmentStateEnum.kActivateEnvironmentState || environmentState == EnvironmentStateEnum.kResumeEnvironmentState) && beforeOrAfter == EventTimingEnum.kAfter)
    {
        switch (environment.InternalName)
        {
            case "AMxAssemblyEnvironment":
            case "AMxWeldmentEnvironment":
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myAssemblyCmdBtn"].Enabled = true;
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myPartCmdBtn"].Enabled = false;
                break;

            case "PMxPartEnvironment":
            case "MBxSheetMetalEnvironment":
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myAssemblyCmdBtn"].Enabled = false;
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myPartCmdBtn"].Enabled = true;
                break;
            case "FWxMainFrameEnvironment":
            case "DLxDrawingEnvironment":
            case "DXxPresentationEnvironment":
            default:
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myAssemblyCmdBtn"].Enabled = false;
                InventorApplication.CommandManager.ControlDefinitions["myAddin:myPartCmdBtn"].Enabled = false;
        } 
    }
    handlingCode = HandlingCodeEnum.kEventNotHandled;
}