Алексей, добрый день.
Все очень просто.
Файл манифеста предназначен для описания вашего расширения. Именно из файла манифеста Revit узнает о вашей надстройке.
При старте Revit происходит поиск файла c расширением addin в соответствующих папках, читает из них информацию и загружает вашу надстройку.
В надстройке вы можете создать два типа класса:
- Класс, реализующий интерфейс IExternalApplication
- Класс, реализующий интерфейс IExtefnalCommand
Таких классов в одной надстройке может быть несколько. Но чтобы Revit знал об их существовании, их нужно описать в файле манифеста.
Типичный файл манифеста выглядит примерно так:
- <?xml version="1.0" encoding="utf-8"?> 
- <RevitAddIns> 
-   <AddIn Type="Command"> 
-     <Text>Command RevitTemp</Text> 
-     <Description>Some description for RevitTemp</Description> 
-     <Assembly>RevitTemp.dll</Assembly> 
-     <FullClassName>RevitTemp.Command</FullClassName> 
-     <ClientId>69529763-1ebd-4139-938b-bc0318a656b0</ClientId> 
-     <VendorId>TBC_</VendorId> 
-     <VendorDescription>The Building Coder, http://thebuildingcoder.typepad.com</VendorDescription> 
-   </AddIn> 
-   <AddIn Type="Application"> 
-     <Name>Application RevitTemp</Name> 
-     <Assembly>RevitTemp.dll</Assembly> 
-     <FullClassName>RevitTemp.App</FullClassName> 
-     <ClientId>0b1c0fcb-e87e-4ce4-9355-c6187223ad41</ClientId> 
-     <VendorId>TBC_</VendorId> 
-     <VendorDescription>The Building Coder, http://thebuildingcoder.typepad.com</VendorDescription> 
-   </AddIn> 
- </RevitAddIns> 
В типе 
Application, необходимо указать название класса, реализующего интерфейс 
IExternalApplication. Этот интерфейс содержит 2 метода: 
OnStartup и 
OnShutdown.
Метод 
OnStartup выполняется при запуске Revit. Или если быть точнее, после того как Revit прочитал информацию из файла манифеста и создал экземпляр класса, описанного в манифесте.
В типе 
Command описываются ваши команды. Т.е. классы, реализующие интерфейс 
IExternalCommand. Описанные в манифесте команды Revit добавляет на вкладку 
Надстройки - Внешние команды в интерфейсе. Метод 
Execute будет выполнен, когда вы выберите соответсвующую команду в интерфейсе.
Важно помнить, что экземпляр класса 
IExternalApplication будет создан при загрузке Revit. И если по каким то причинам не удалось создать экземпляр этого класса (чаще всего по причине неверного описания в манифесте), то Revit предупредит об этом сразу при загрузке. Экземпляр класса команды создается только непосредественно в момент вызова команды. И если команда описана неверно, то вы увидите предупреждение при попытке вызова команды.
Надстройка не обязательно должна содержать оба типа. Более того, если вам не нужно проделывать каких-либо действий при загрузке Revit, то лучше убрать описание 
Application из манифеста, так как это ускорит загрузку Revit.
Команду же можно запустить не только из вкладки 
Надстройки - Внешние команды, но и при помощи кнопки на ленте. В этом случае создаете описываете только 
Applciation и создаете кнопку для вызова команды в методе 
OnStartup.