Мой первый плагин

Автор Тема: Мой первый плагин  (Прочитано 8278 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Мой первый плагин
« : 01-09-2018, 18:17:35 »
Создал плагин он успешно подключился в Revit 2019
А как мне запустить его.
Что нужно сделать кнопку с панелью
Или "косолька" есть в Revite что делать дальше?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #1 : 01-09-2018, 18:19:20 »
Есть интерфейсе Revit есть вкладка "Надстройки" может там искать?
Если так то как сделать чтобы кнопочка появилась?


Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Мой первый плагин
« Ответ #2 : 01-09-2018, 19:29:25 »
После того, как вы создаете свой плагин, реализовав в нем IExtrenalCommand, нужно создать файл манифеста (.addin), в котором прописать всю нужную инфу.
После этого появится пункт в выпадающем списке "Внешние инструменты" на вкладке "Надстройки"

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #3 : 01-09-2018, 19:34:30 »
Ура! У  меня все получилось появилась панелька со строкой "моя команда!"
Во внешних инструментах

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #4 : 01-09-2018, 19:36:56 »
Вот содержимое файла AddIn

Код - XML [Выбрать]
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <RevitAddIns>
  4.  
  5.   <AddIn Type="Command">
  6.  
  7.     <Name>MY COMMAND</Name>
  8.  
  9.     <Assembly>C:\WORK\PRODUCTS\my_app\myplagin.dll</Assembly>
  10.  
  11.     <ClientId>ECCB03C4-B3C3-4C39-868E-5D65D9CE20BA</ClientId>
  12.  
  13.     <FullClassName>моя_команда</FullClassName>
  14.  
  15.     <VendorDescription>ideasoft, idea-soft.ru</VendorDescription>
  16.  
  17.     <VendorId>IDSF</VendorId>
  18.  
  19.     <VisibilityMode>AlwaysVisible</VisibilityMode>
  20.  
  21.   </AddIn>
  22.  
  23. </RevitAddIns>

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #5 : 01-09-2018, 19:44:15 »
Ревит требует обязательного наличия тегов

    <ClientId>ECCB03C4-B3C3-4C39-868E-5D65D9CE20BA</ClientId>
    <VendorId>IDSF</VendorId>

Что обычно пишут в VendorId и ClientId?


Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #6 : 01-09-2018, 19:46:49 »
А вот шаблон кода для "моя_команда"

Код - C# [Выбрать]
  1. using Autodesk.Revit.ApplicationServices;
  2. using Autodesk.Revit.Attributes;
  3. using Autodesk.Revit.Creation;
  4. using Autodesk.Revit.DB;
  5. using Autodesk.Revit.DB.Architecture;
  6. using Autodesk.Revit.UI.Selection;
  7. using Autodesk.Revit.UI;
  8. using Autodesk.Revit.Exceptions;
  9.  
  10. [TransactionAttribute(TransactionMode.Manual)]
  11. [RegenerationAttribute(RegenerationOption.Manual)]
  12. class моя_команда : IExternalCommand
  13. {
  14.     public Result Execute(ExternalCommandData data,
  15.                           ref string str,
  16.                           ElementSet elem)
  17.     {
  18.         return Result.Succeeded;
  19.     }
  20. }

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Мой первый плагин
« Ответ #7 : 01-09-2018, 19:46:55 »
VendorId - информация о разработчике плагина. Что хотите, то и пишите
ClientId - уникальный идентификатор плагина, представленный Guid. ВСЕГДА генерируйте новый Guid для нового плагина и НИКОГДА не копируйте из примеров. Благо, онлайн-генераторов полно

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #8 : 01-09-2018, 19:49:29 »
А может ВижуалCтудия где-то в проекте решения генерит его это GUID?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Мой первый плагин
« Ответ #9 : 01-09-2018, 19:51:18 »
А может ВижуалCтудия где-то в проекте решения генерит его это GUID?
Генерит. В свойствах проекта на вкладке "Сведения о сборке". Но в addin-файл она вам сама ничего не скопирует

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #10 : 01-09-2018, 19:51:37 »
Вот что я нашел в файле AssemblyInfo.cs моего решения.

// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("5aac25b7-f7a7-461d-ade2-32ded2babb72")]

Может все время отсюда просто брать его и все?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #11 : 01-09-2018, 19:52:18 »
Но в addin-файл она вам сама ничего не скопирует
Это да буду руками копировать ГУИД

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #12 : 01-09-2018, 19:56:17 »
Мне еще не очень нравится то что строка в
интерфейсе по умолчанию соотв. имении моего класса

Возможно настроить так, чтобы строка в интерфейсе Revit
не соотв имени класса? Написать что-то свое в интерфейс Revit

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Мой первый плагин
« Ответ #13 : 01-09-2018, 20:00:50 »
Мне еще не очень нравится то что строка в
интерфейсе по умолчанию соотв. имении моего класса

Возможно настроить так, чтобы строка в интерфейсе Revit
не соотв имени класса? Написать что-то свое в интерфейс Revit

Несколько раз перечитал, прежде чем понял о чем речь. Не путайте понятия - интерфейс - это тип в языке программирования

В файле манифеста есть элемент Assembly - в значении которого указывается полный путь (т.е. все пространства имен тоже) до класса (включая и сам класс), который реализует интерфейс IExternalCommand. Всегда так и никак иначе

И в коде по русски писать нужно только в комментариях. Но никак не называть классы кириллицей!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Мой первый плагин
« Ответ #14 : 21-09-2018, 14:15:48 »
Помогите, уже забыл.
А в какую папку нужно файл addin для Revit 2019?