1. Есть ли правильное решение получения ID элемента?Да вроде как и такое решение сойдет. Разве что можно с помощью LINQ попробовать упростить.
2. И как выйти из ситуации, когда пользователем была отключена вкладка?Если программно формировать ленту - наверное, никак.
Если программно формировать ленту - наверное, никак.
А есть ли возможность управлять вкладками на Риббоне? Ну то есть если вкладка выключена, то временно её включить и выдрать оттуда нужную кнопку.Теми вкладками, которые идут из CUIX можно управлять только на уровне CUIX и потом его загружать. Но это вряд ли приемлемое решение. Поэтому прислушайся к словам Дмитрия о том, чтобы создать свой собственный CUIX и грузить его в AutoCAD.