Добрый день, пытаюсь создать AddInCommandBinding, но свойство RevitCommandId.CanHaveBinding - false, это вообще не возможно или я что то не так делаю?
1. загружаю все нужные сборки и сборки с плагинами
2. в каждой сборке ищу IExternalCommand, создаю и запускаю его OnStartup, каждая сборка плагина сама создает вкладку, кнопку и тд.
3. дальше кодом ниже ищу свои вкладки, получаю кнопки и их ID, вида "CustomCtrl_%CustomCtrl_%вкладка%панель%команда"
4. создаю RevitCOmmandId, а свойство CanHaveBinding = false, и при создании AddInCommandBinding получаю ошибку "The Revit command id cannot be assigned a command binding.
Parameter name: revitCommandId"
var tabs = ComponentManager.Ribbon.Tabs.Where(x => x.Name?.ToUpper().Contains("mytabname")==true).ToList();
foreach (RibbonTab tab in tabs)
{
foreach (Autodesk.Windows.RibbonPanel panel in tab.Panels)
{
foreach(Autodesk.Windows.RibbonItem item in panel.Source.Items)
{
ids.Add(item.Id);
}
}
}
var revitCommandIds = ids.Select(x=>RevitCommandId.LookupCommandId(x)).Where(x=>x!=null).ToList();
var addInCommandBindings = revitCommandIds.Select(x => app.CreateAddInCommandBinding(x)).ToList();