RevitAddInUtility Describes the conditions under which a particular external command will be visible in the Revit UI. Note that there are a few conditions where the Revit API framework prevents commands from being available always: When the user has another Revit command active, e.g. creating Windows, Doors, or editing sketches. When the active view is in perspective mode, or when the view is a Walkthrough, Drawings Lists, View Lists, Note Blocks, View Lists, etc. When the user is editing an in-place family. The command is available in all possible modes supported by the Revit API. The command is invisible when there is a project document active. The command is invisible when there is a family document active. The command is invisible when there is no active document. Describes the conditions under which a particular external command will be visible in the Revit UI. Note that there are a few conditions where the Revit API framework prevents commands from being available always: When the user has another Revit command active, e.g. creating Windows, Doors, or editing sketches. When the active view is in perspective mode, or when the view is a Walkthrough, Drawings Lists, View Lists, Note Blocks, View Lists, etc. 2013 The command is available in all possible disciplines. The command is available in the Architecture discipline. The command is available in the Structure discipline. The command is available in the StructuralAnalysis discipline. The command is available in the Massing and Site discipline. The command is available in the EnergyAnalysis discipline. The command is available in the Mechanical discipline. The command is available in the Electrical discipline. The command is available in the Piping discipline. The command is available in the MechanicalAnalysis discipline. The command is available in the PipingAnalysis discipline. The command is available in the ElectricalAnalysis discipline. Defines types of warnings issued by Revit related to Add-In failures. There is no warning in this AddIn. Revit could not find the indicated class in the assembly file. Revit could not find the assembly file. Unhandled exceptions were caught when the AddIn was executed. There is another add-in which registered the same Id (GUID). Missing the required value of the FullClassName node. Missing the required value of the ClientId node. Missing the required value of the Assembly node. Missing the required value of the Name node for application add-in. Revit could not interop. Revit could not invoke IExternalCommandAvailability correctly. Unhandled exceptions were caught when the availability command was executed. Not a valid transaction attribute. Not a valid regeneration attribute. Missing the required value of the VendorId node. Defines the operating system architectures recognized by the Add-In utility. 32-bit operating system. 64-bit operating system. Defines the versions of Revit supported by the Add-In utility. Unknown. Revit 2011. Revit 2012. Revit 2013. Revit 2014. Revit 2015. Revit 2016. Revit 2017. Revit 2018. Revit 2019. Revit 2020. Revit 2021. Revit 2022. Revit 2023. Defines the language type of Revit Add-In. Unknown. English USA. German. Spanish. French. Italian. Dutch. Chinese Simplified. Chinese Traditional. Japanese. Korean. Russian. Czech. Polish. Hungarian. Brazilian Portuguese. English GB. An enumerated type containing the possible Revit product types. 2012 Architecture. Structure. MEP. Revit. Unknown. This static class provides access to read the contents of manifests from Revit .addin files. Reads an AddInManifest from the input .addin file. The full path to a .addin file. The AddInManifest read from the file. Thrown when input argument is . Thrown when file name is incorrect (it is not a .addin file), or when the .addin file has an unrecognized format. Reads all AddInManifests from the .addin files available in a folder. The folder that contains some .addin files. The dictionary is to hold invalid format manifest information, and these invalid information can be handled later. If it is , those exceptions will be ignored simply. The collection of AddInManifests read from the file(s). Thrown when the input argument is . Reads all AddInManifests in bundle folders which are matched with revit version and os. Revit version. OS type, Win32 or Win64. The dictionary is to hold invalid format manifest information, and these invalid information can be handled later. If it is , those exceptions will be ignored simply. The collection of AddInManifests. Thrown when the input argument is . Creates an AddInManifest with the input file name. The full path to a .addin file. The AddInManifest read from the file. Thrown when input argument is . Thrown when file name is incorrect (it is not a .addin file), or when the .addin file has an unrecognized format. This method will only create a new instance of RevitAddInManifest file with the input file name. It would not load the content of the manifest file. To create a RevitAddInManifest file and load the content, please call Represents a Revit external application. Creates a new instance of the external application info class. The application name. The path and file name for the application assembly. The unique identifier for the application. The class name that implements IExternalApplication. The vendor id. Application name. The readable name of the AddInItem. Represents a Revit external command. Creates a new instance of the Add-In command info class. The path and file name for the command assembly. The unique identifier for the command. The class name that implements IExternalCommand. The vendor id. The text displayed on the external command button. The short description and short tooltip for the command. The path to the large image for the command button. This image will be shown on the button in the External Tools pulldown. The image should be 32 x 32 pixels. If the image is larger it will be adjusted to fit the button. The text shown in the extended command tooltip. The image shown in the extended command tooltip. Recommended image size is 304 * 188 pixels. The modes in which the external command will be visible. There are 2 sets of modes where visibility can be set: Visibility affected by the type of active document. The modes in which the external command will be visible. There is 1 set of mode where visibility can be set: Visibility affected by the availability of a certain discipline. 2013 The full class name for the class providing the entry point to decide availability of this command. This is the class implementing IExternalCommandAvailability interface. The language type of Revit Add-In. The readable name of the AddInItem. Represents a Revit DB external application. Creates a new instance of the external DB application info class. The DB application name. The path and file name for the DB application assembly. The unique identifier for the application. The class name that implements IExternalDBApplication. The vendor id. DB Application name. Indicates whether or not a RevitWorker process will load this add-in. The default is false. 2017 The readable name of the AddInItem. The code signing status of the add in. Signed. Unsigned. Corrupt. Represents a single Revit Add-In. The file path for the assembly which defines the Add-In. The id for the Add-In. Each add-in must be assigned a unique identifier. The full class name for the class providing the entry point into the Add-In. This is the class implementing IExternalCommand or IExternalApplication. The vendor id. This is required by add-in application. The vendor description. This should be a string that the user can use to identify the vendor. A startup failure which, if it occurs, will be suppressed from the user. When Revit attempts to start an Add-In and fails to do so, it will show a message to the user about the error. Users have the option to ignore that error in the future. This property is used to represent the user's choice to ignore an error. Note that if a different error occurs for the Add-In, it will still be shown to the user. The product image. 2014 The product description. 2014 The flag of loading permission. 2014 The product version. 2014 Indicates if load add in is cancelled by user or not. Code signing status of the add in. store the addInId string in case its invalid. Indicates if the addin is internal or not. The absolute file path for the assembly which defines the Add-In. NULL returns until set with the absolute file path in AddInManagerUtils::loadAddins(). The readable name of the AddInItem. The error type of the AddInItem. The assembly version of the AddInItem. Creates a new instance of the Add-In info class. Creates a new instance of the Add-In info class. The path and file name for the addin assembly. The unique identifier for the addin. The class name of the addin. The vendor id. Represents the contents of a single .addin file. The manifest contains a collection of external commands and external applications listed in the .addin file. Constructs a new empty manifest. The file name which is associated with the manifest. The full path and file name which is associated with the manifest. The collection of all external applications in the manifest. The collection of all external DB applications in the manifest. The collection of all external commands in the manifest. Saves the information in the manifest to its associated .addin file location. Thrown when FullName is or empty. Thrown when FullName is incorrect (it is not a .addin file). Or there are no external commands or applications to write to manifest file. The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations). Saves the information in the manifest as a new .addin file.. The full path and file name which is associated with the manifest. Thrown when file name argument is or empty. Thrown when file name is incorrect (it is not a .addin file). Or there are no external commands or applications to write to manifest file. The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations). Constructor, create a RevitAddInManifest which bind to an addin file, if this addin file already exist, then we get and set information on this addin file, otherwise, we create a new addin file. This constructor is a interface for user to create new addin file. input an addin file Reloads AddInManifest from addin file. Thrown when input argument is . Filename is a zero-length string, contains only white space, or contains invalid characters. There is a load or parse error in the XML. Adds an AddIn to the manifest file. AddIn to be added. The input addin will be added to AddInCommands, AddInApplications and AddInDBApplications based on its type. Removes an AddIn from the manifest file. AddIn to be removed. The input addin will be removed from AddInCommands, AddInApplications or AddInDBApplications based on its type. Checks whether the manifest file includes the specified AddIn. AddIn to be checked. Indicates if the addin is internal or not. Gets all the items registered in the manifest. Gets all the RevitAddInApplication and RevitAddInCommands from manifest and writes them to addin file. Writes info for RevitAddInItem to addin file, such ClientId, Assembly..... Writes info for RevitAddInApplication to addin file. Writes info for RevitAddInDBApplication to addin file. Writes info for RevitAddInCommand to addin file, such as Text, TooltipImage .... Parse addin file and get a list of external application. Parse addin file and get a list of external DB application. Parse addin file and get a list of external command. Parse addin file and properties for AddInItem, such as ClientId, Assembly... Parse addin file and properties for application, such as Text, TooltipImage ... Parse addin file and properties for application. Parse addin file and properties for DB application. Parse a string of WarningType. Check the validity of the input file name, and parse relative path. Different types of error of tag name. Gets corresponding error message from error type. Parses user's input file path, delete quotes, trim.... Represents an installed instance of Revit on the local machine. The folder path in which .addin files associated to all users will be located for this product. The folder path in which .addin files associated to the current user will be located for this product. The folder path where this Revit product is installed. User-visible name for this Revit product. such as : 'Autodesk Revit Architecture 2010'. The system architecture of this Revit product installation. The id used to locate and identify the Revit product from the registry. The version for this Revit product. Such as: '2010'. The release subversion. 2012 The product type. 2012 The string for the release sub versions. SubVersion releases may have additional APIs and functionality not available in the standard customer releases. Add-ins written to support standard Revit releases should be compatible with Subversion releases, but add-ins written specifically targeting new features in Subversion releases would not be compatible with the standard releases. 2018 Gets the installed language types. The installed language types. 2014 Default constructor Constructor, set basic info for an Revit product. Use to uniquely identify each product, it's a GUID. Use to identify product type. Architecture information, such as 32bit or 64bit. Define the version number, such as 2010, 2011. Gets the SubscriptionUpdate value from the registry. Provides access to installed versions of Revit on the local machine. Gets a list of Revit products installed on this machine. This operation parses the registry for necessary information about the installation(s). An incomplete or incorrect installation of Revit may not be returned correctly by this utility. Initialize a dictionary to store all the RevitProducts which can be supported by this RevitAddInUtility NOTE: This method only initializes the product codes for Revit 2011 and RVT 2013. Since 2012 we analysis the Revit product code (not include the dynamo) of RevitDB.dll component with a fixed pattern, please see RevitProductUtility::getRevitProduct method for more details. Gets information of installed Revit from registry. Gets product codes of the installed Revits. Gets product information with the product code. Is used to store all the RevitProduct which can be supported by this RevitAddInUtility.