Во-первых, то, что у тебя не вызывается метод - это где-то ошибки в твоем коде, ты его вообще вызываешь?Со вторым случаем знаю ,как решить. С первым , подскажите ,как вызвать метод Execute? IExternalCommand срабатывает ,как я понял, если мы нажимаем кнопки на Ribbon ревита, а с Dockable pane , уже другая ситуация.
Во-вторых, код в ICommand у тебя в данном случае выполняется в невалидном контексте API, работа с API Revit будет приводить к крашам, повреждению моделей и т.д. Для реализации таких вещей в API есть ExternalEvent, пример можешь посмотреть в SDK Software Development Kit\Samples\ModelessDialog\ModelessForm_ExternalEvent
public ICommand CommandOpenFormingHoles
{
get
{
if (_commandOpenFormingHoles == null)
_commandOpenFormingHoles = new RelayCommand(o =>
{
string path_dll = _assembly_folder_name + "FormingHoles_2020.dll";
string name_class = "FormingHoles.Model.FormingHoles";
autoReloadExample = new AutoReloadExample(path_dll, name_class);
Ну объект ты создал, а метод кто вызывать будет?Чтобы вызвать метод Execute нужно передать главным аргументом ExternalCommandData. Откуда я могу его правильно получить?
Один вопрос: откуда могу получить ExternalCommandData ? для перегрузки метода Execute с тремя аргументами ?Ну объект ты создал, а метод кто вызывать будет?Чтобы вызвать метод Execute нужно передать главным аргументом ExternalCommandData. Откуда я могу его правильно получить?