Легкое создание кнопок на ленте для вызова внешних команд

Автор Тема: Легкое создание кнопок на ленте для вызова внешних команд  (Прочитано 25035 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн julikas

  • ADN OPEN
  • Сообщений: 9
  • Карма: 0
Спасибо. пошла смотреть. у меня есть немалый опыт написания разного рода обработчиков и т.п. Другая стезя совсем была. И языки другие. Благодарю за поддержку.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Виктор добрый день!
Вот есть такая штука как справка по нажатию на F1
т.е.

Код - C# [Выбрать]
  1.  ContextualHelp help = new ContextualHelp(ContextualHelpType.Url, "http://www.yandex.ru");
  2.  

Как реализовать данный код в Вашем дополнении ? Ведь нужно назначить
Код - C# [Выбрать]
  1. b.SetContextualHelp(help);
  2.  

Верно?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Сергей, через утилиту это сделать пока нельзя. там просто нет соответствующего метода.
Но, думаю я сейчас это исправлю. Тем более у меня есть что туда добавить.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Как реализовать данный код в Вашем дополнении ?
Теперь можно.
Создал новую статью, так как там несколько полезных изменений.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Да здорово. Но полагаю неплохо бы добавить вот эту штучку.
Чтобы можно было GIF анимацию вставлять помимо PNG и JPG

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Сергей, Так и до видео в подсказке не далеко дойти:)
Ок, постараюсь добавить.

Оффлайн Сергей Одегов

  • ADN OPEN
  • Сообщений: 48
  • Карма: 0
  • Skype: sergey_mmt
Ну думаю видео это уже фанатизм ))) :D По мне так в видео там нет необходимости. Ведь из каждого видео очень легко сделать GIF ку )))

Оффлайн oskokos

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Подскажите, при компилирование в фраймворк 4.5 вылетает такое окошко и после него все сбрасывается на 4.0. Открывал, закрывал заного все одно фраймворк не меняется. В чем причина? Можете скинуть утилиту эту для 2016 ревита?

И еще вопрос, не могу понять, а код по созданию кнопки пишется в самом приложении или в отдельном? я вот написал небольшую утилиту. это файл dll и его я объявил в файле манифеста. он появился в ревите в разделе: Внешние инструменты как по способу 1.

а вот способ 3, где писать этот код по объявлению кнопки?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Подскажите, при компилирование в фраймворк 4.5 вылетает такое окошко и после него все сбрасывается на 4.0. Открывал, закрывал заного все одно фраймворк не меняется. В чем причина?
Такое чувство что файл проекта помечен как "Только для чтения"
И еще вопрос, не могу понять, а код по созданию кнопки пишется в самом приложении или в отдельном?
В самом приложении. В исходном солюшене на GitHub два проекта. Один из них библиотека для легкого создания, второй - пример ее использования.
Т.е. в проекте своей надстройки вы подключаете мою утилиту по легкому созданию кнопок, и в этом же проекте ее используете, т.е. создаете кнопку.
Вот проект с надстройкой с примером использования

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Цитата из статьи:
Цитировать
3) Изображение необходимо задавать в виде объекта класса ImageSource. Это конечно решаемо, но создает некие трудности, например, нельзя просто так вставить изображение из ресурсов.
Ошибаешься. Можно - я именно так и делаю в Revit2017AddInTemplateSet. Можешь глянуть код, если интересно как.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Ошибаешься. Можно - я именно так и делаю
Нет, не ошибаюсь. Я же не говорил, что вообще нельзя вставить из ресурсов, а что нельзя "просто" вставить, написав что то типа
Код - C# [Выбрать]
  1. pushButton.LargeImage = Resources.MyImage;
. Нужны дополнительные действия, чтобы сконвертировать изображение из ресурсов в ImageSource.
Собственно и я и ты делаем это преобразование. В твоем коде этот метод занимает > 50 строк. Это я и имел ввиду, говоря про "не просто так"

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Я же не говорил, что вообще нельзя вставить из ресурсов, а что нельзя "просто" вставить, написав что то типа
Значит я тебя неправильно понял. )
В твоем коде этот метод занимает > 50 строк. Это я и имел ввиду, говоря про "не просто так"
Если говорить о вынесении операции извлечения картинки в отдельный метод, то да, поскольку там нужно выполнять все те проверки входящих параметров, которые я делал. Но в сухом остатке, по сути, сам процесс извлечения значительно компактней:

Код - C# [Выбрать]
  1. Bitmap ttp_image = res_mng.GetObject(key) as Bitmap;
  2.  
  3. BitmapSource ttp_bitmap_src = Imaging
  4.     .CreateBitmapSourceFromHBitmap(
  5.     ttp_image.GetHbitmap(), IntPtr.Zero,
  6.     WPF.Int32Rect.Empty, BitmapSizeOptions
  7. .FromEmptyOptions());
Т.е. не так уж и сложен, на мой взгляд.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Т.е. не так уж и сложен, на мой взгляд
Согласись, что для новичков, подобный метод может ввести в состояние шока:) HBitmap, указатели.. да еще и зачем то с пустыми или нулевыми значениями.. Именно для этого мы и упрощаем использование. :)

Оффлайн semyon

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Виктор Чекалин, здраствуйте хочу написать лёгкое образмеривание для примитивов автокада
, и вот никак не могу найти как обратится  к текстбоксам через редактор vba, или как передать фокус немодальной форме

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А какое отношение Ваше сообщение имеет к этой теме? Здесь вообще-то речь идёт о Revit, а не об AutoCAD и Revit .NET API, а не AutoCAD VBA. Создайте тему в правильном разделе.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение