Шаблоны проектов Visual Studio 2015 для Revit add-ins.

Автор Тема: Шаблоны проектов Visual Studio 2015 для Revit add-ins.  (Прочитано 42614 раз)

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

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Проект RevitAddInTemplateSet создан с целью предоставления набора шаблонов VS2015 для создания надстроек (add-ins) Revit 2017.

Состав проекта RevitAddInTemplateSet:

    Revit 2017 External Application (C# Project Template)
    Revit 2017 External DBApplication (C# Project Template)
    Revit 2017 External Command (C# Item Template)
    Revit 2017 External Command Availability (C# Item Template)
    Revit 2017 Updater (C# Item Template)

Я создал несколько последовательных видео уроков (с английскими комментариями), демонстрирующих примеры использования шаблонов RevitAddInTemplateSet. Эти уроки я разместил на своём новом канале:

    #001. Download and install the templates.
    #002. Create new project.
    #003. Add new command.
    #004. Link the command with the command availability.
    #005. Add ribbon tabs and panels.
    #006. Template resources using.
    #007. Multilanguage add-ins creating.

В блоге: https://revit-addins.blogspot.ru/2017/02/revit-visual-studio.html
« Последнее редактирование: 15-02-2017, 11:03:44 от Андрей Бушман »

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Я делал тынц-тынц-тынц по квартире, когда понял, как же это упрощает все. :)
Андрей, огромное спасибо!! Это нереально удобно!
Вот теперь уж точно надо быть совсем лентяем, чтоб не писать плагины под Revit. ;)

Предлагаю закрепить тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Предлагаю закрепить тему.
Сделано!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Сегодня руки добрались насладиться данными шаблонами. :)
Заметил несколько нюансов.
1. После создания Revit 2017 External Application для того, чтобы "применился" NuGet-пакет (в соответствии с инструкцией) необходимо выполнить перестроение нашего решения (Solution -> Rebuild).
Так вот почему-то автоматически загружается версия старая NuGet-пакета, потом все это дело обновляется и никаких проблем, но мало ли.. поэтому прикрепляю пояснение:


2. Я, например, захотел сделать 2 тестовых проекта, то есть получить 2 вкладки в Revit. Мои действия:
Создаю 1й проект RevitAddin1.
Захожу в целевую папку:

далее сюда:

Все замечательно. После этого запускаю Revit - там тоже все хорошо.
Затем я создаю 2й проект RevitAddin2.
Выполняю его сборку, ну и захожу в целевую папку глянуть на всякий:

У меня не появилось ожидаемых файлов - RevitAddin2.addin и папки RevitAddin2 - а вместо этого в папку RevitAddin1 залилась RevitAddin2.dll (хотя в манифесте RevitAddin1.addin остался путь на RevitAddin1).
Соответственно, при запуске Revit я получаю:

что, в принципе, логично.

Далее, я подумал, что дело в дефолтных названиях и решил создать 3е решение/проект с каким-то пользовательским именем RevitUserTest.
Как и ожидалось, все работает замечательно:


Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Если переименовываешь проект, то необходимо не забывать вносить соответствующие правки в addin-файл, а так же, при необходимости, и в настройках проекта (имя проекта, имя пространства имён, используемого по умолчанию).

Я внёс некоторые исправления в настройки csproj-файлов, а так же добавил шаблон элементов "Revit 2017 Updater".

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Если переименовываешь проект, то необходимо не забывать вносить соответствующие правки в addin-файл, а так же, при необходимости, и в настройках проекта (имя проекта, имя пространства имён, используемого по умолчанию).
Спасибо за совет и за коммит). Нюанс №2 из моего поста полностью устранен, подтверждаю.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
с нугетом нужно будет повозиться, поразбираться. Пару раз я у себя так же наблюдал подобное. Т.е. получается, что какое-то нестабильное поведение. Возможно я накосячил в шаблоне по этой части.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
с нугетом нужно будет повозиться, поразбираться. Пару раз я у себя так же наблюдал подобное. Т.е. получается, что какое-то нестабильное поведение. Возможно я накосячил в шаблоне по этой части.
Причина обозначенной проблемы выявлена и устранена.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
А развитие и выпуск под новые версии Ревита данных шаблонов и нугет пакетов планируется?

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
NuGet-пакеты под Revit 2018.1 опубликованы. Шаблоны проектов и элементов для Revit 2018.1 сделаны, но пока не опубликованы. Они не опубликованы, поскольку я обнаружил, что Visual Studio 2017 работает несколько иначе, чем Visual Studio 2015... Когда я создавал версии шаблонов под VS2015, то предположил, что более ранние и более поздние версии IDE будут хранить информацию о template-каталогах IDE идентично тому, как это делает VS 2015. На тот момент у меня не было VS 2017.

VS 2015 хранит эту информацию в реестре (помимо конфиг-файла пользовательских настроек), чем и пользовался мой конфигуратор для того, чтобы понимать, куда закидывать генерируемые им zip-файлы шаблонов. Однако VS2017 нужную мне информацию в реестре не хранит...

Извлекать эту инфу из конфиг-файла пользовательских настроек, используемого VS мне оказалось проблематично, т.к. там хранятся не полные пути, но пути с использованием некоторых внутренних системных переменных IDE. Мне не удалось найти надёжный способ определения значения этих переменных, поэтому я полагался именно на реестр, в котором VS2015 эти же значения хранила в распакованном виде. Дополнительно возникала проблема определения того, какой именно конфигурационный файл пользовательских настроек использует IDE в данный момент времени.

Т.о. сейчас требуется переделать конфигуратор, чтобы он мог нормально работать с VS2017 и корректно закидывал zip-файлы в правильные каталоги. Планирую завтра решить проблему. Тестировать могу только для VS2017 и Revit2018.1, поскольку других версий под рукой нет.

Скорее всего я пойду по пути наименьшего сопротивления: вернусь к той реализации, которая была в начальных версиях конфигуратора и которая показана в первом видео: т.е. не вычислять целевые каталоги, а читать их из своего конфигурационного файла, полагаясь на то, что программист предварительно отредактировал эти записи соответствующим образом.

Если у кого-то есть конструктивные предложения по решению обозначенных мною выше проблем - то такие предложения приветствуются.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Для тех, кому интересно: в процессе генерации шаблонов, в реестр я когда-то полез в виду проблемы, обозначавшейся мною здесь. Однако приведённое там обходное решение (использовать реестр) не работает для VS2017.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78

Оффлайн Andant

  • ADN Club
  • **
  • Сообщений: 79
  • Карма: 26

Оффлайн Olga

  • ADN OPEN
  • Сообщений: 24
  • Карма: 0
Доброго времени суток!  Существуют ли такие  шаблоны для  Revit2019, Revit 2020.  Если нет, то где нужно внести изменения чтобы   воспринималась папка "AppData\Roaming\Autodesk\Revit\Addins\2019"

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Если нет, то где нужно внести изменения чтобы   воспринималась папка "AppData\Roaming\Autodesk\Revit\Addins\2019"
Нужно везде заменить $AppYear$ с 2018 на 2019. Ну и возникает вопрос с версией .NET Framework. Думаю, что её нужно везде заменить на 4.7
« Последнее редактирование: 06-06-2019, 15:27:01 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Как всегда, у Тэммика в блоге есть:
https://thebuildingcoder.typepad.com/blog/wizard/

Для 20 - https://thebuildingcoder.typepad.com/blog/2019/04/revit-2020-c-and-vb-visual-studio-add-in-wizards.html

19-ый где-то потерялся, но, можно в архивчике заменить 2020 на 2019, будет работать


Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
под 2020 нет еще?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020


Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
https://thebuildingcoder.typepad.com/blog/2019/04/revit-2020-c-and-vb-visual-studio-add-in-wizards.html

Здравствуйте, подскажите почему у меня не появляется при создании проекта этот шаблон вроде закинул архив в C:\Users\user\Documents\Visual Studio 2019\Templates\ProjectTemplates ?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Yusuf,
Нужно архив разархивировать и запустить из него:
install.bat 2019(для Visual Studio 2019)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
Yusuf,
Нужно архив разархивировать и запустить из него:
install.bat 2019(для Visual Studio 2019)
Не получается ругается
Код - INI [Выбрать]
  1. Creating C# wizard archive C:\Users\user\AppData\Local\Temp\Revit2020AddinWizardCs0.zip...
  2. "zip" не является внутренней или внешней
  3. командой, исполняемой программой или пакетным файлом.
  4. Copying C# wizard archive to C:\Users\user\Documents\Visual Studio 2019\Templates\ProjectTemplates\Visual C#...
  5. Не удается найти указанный файл.
не понял какой архив ему нужен вроде как я понял закидывает в Temp архив оттуда уже копирует в Templates?
пробовал вручную все закидывать cs архивив zip и в папку Visual C# не получается

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
не понял какой архив ему нужен
Вот этот: https://github.com/jeremytammik/VisualStudioRevitAddinWizard/archive/2021.0.0.0.zip
После того, как его скачаешь его нужно разблокировать:



Затем разархивировать в отдельную папку. И оттуда перейдя в каталог запустить install.bat 2019:



И в результате в Visual Studio 2019 при создании нового проекта можно будет выбрать шаблоны Revit:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
Вот этот: https://github.com/jeremytammik/VisualStudioRevitAddinWizard/archive/2021.0.0.0.zip
Спасибо. Вот на 21 ревит без проблем устанавился, а вот на 2020, что только не перепробовал отсюда скачал https://github.com/jeremytammik/VisualStudioRevitAddinWizard/releases/tag/2020.0.0.0
install.bat не работал и как показывал прежде, не получалось, ошибку выдавал, даже зиповал папку cs, вручную кидал в папку "Templates\ProjectTemplates\Visual C#" только название давал, как название скачанного архива, ну а вот теперь,  попробовал папку в ручную в ту же папку закинуть и дал название архива как у 21 Addin, только изменил 21 на 20 и вот появился, странно, но решение. 


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Вот на 21 ревит без проблем устанавился, а вот на 2020, что только не перепробовал отсюда скачал https://github.com/jeremytammik/VisualStudioRevitAddinWizard/releases/tag/2020.0.0.0
Всё очень просто. Там автор забыл добавить каталог Zip с zip.exe внутри. Но в следующих обновлениях он исправился. Например, в последнем для Revit 2020: https://github.com/jeremytammik/VisualStudioRevitAddinWizard/releases/tag/2020.0.0.5
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение