Ошибка при на первом уроке

Автор Тема: Ошибка при на первом уроке  (Прочитано 7715 раз)

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

Оффлайн ЯрославАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Здравствуйте начал изучать Ревит АПИ и при прохождении учебного курса "Моя первая программа для Autodesk Revit". при попытке загрузить ревит с установленым дополнением выскакивает вот такое окошко:

Может я что не так сделал. Или еще нада где то чево то регистрировать?
Вот код манифеста:
Код - XML [Выбрать]
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RevitAddIns>
  3. <AddIn Type="Command">
  4. <Assembly>C:\test\ClassLibrary1\ClassLibrary1\bin\Release\ClassLibrary1.dll</Assembly>
  5.   <ClientId>502fe383-2648-4e98-adf6-5e6047f9dc34</ClientId>
  6. <FullClassName>ClassLibrary1</FullClassName>   
  7. <Text>Первый плагин</Text>
  8. <Vendorld>ADSK</Vendorld>
  9. <VisibilityMode>AlwaysVisible</VisibilityMode>
  10.   <Discipline>Any</Discipline>
  11.  </AddIn>
  12. </RevitAddIns>
  13.  
И код самой програмки:
Код - C# [Выбрать]
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. using Autodesk.Revit.DB;
  6. using Autodesk.Revit.UI;
  7. using Autodesk.Revit.UI.Selection;
  8. using Autodesk.Revit.ApplicationServices;
  9. using Autodesk.Revit.Attributes;
  10.  
  11. [TransactionAttribute(TransactionMode.Manual)]
  12. [RegenerationAttribute(RegenerationOption.Manual)]
  13. public class Class1 : IExternalCommand
  14. {
  15.     public Result Execute(
  16.         ExternalCommandData commandData,
  17.         ref string message,
  18.         ElementSet elements)
  19.     {
  20.         //Получение обьектов приложения и документа
  21.         UIApplication uiApp = commandData.Application;
  22.         Document doc = uiApp.ActiveUIDocument.Document;
  23.  
  24.         // Определение обекта-ссылки для занесения результата указания
  25.         Reference pickedRef = null;
  26.  
  27.         //Указание группы
  28.         Selection sel = uiApp.ActiveUIDocument.Selection;
  29.         pickedRef = sel.PickObject(ObjectType.Element, "Выберите группу");
  30.         Element elem = doc.GetElement(pickedRef);
  31.         Group group = elem as Group;
  32.  
  33.         // Указание точки
  34.         XYZ point = sel.PickPoint("Укажите точку для размещения группы");
  35.  
  36.         //Размещение группы
  37.         Transaction trans = new Transaction(doc);
  38.         trans.Start("Lab");
  39.         doc.Create.PlaceGroup(point, group.GroupType);
  40.         trans.Commit();
  41.  
  42.         return Result.Succeeded;
  43.     }
  44. }
  45.  
  46.  
  47.  
У меня Revit 2014x64
VB 2010#C
« Последнее редактирование: 22-01-2015, 16:10:15 от Виктор Чекалин »

Отмечено как Решение Ярослав 29-01-2015, 09:43:56

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Ошибка при на первом уроке
« Ответ #1 : 22-01-2015, 16:13:50 »
Ярослав, здравствуйте.

Если мой зоркий глаз меня не подводит, то у Вас ошибка в XML-теге в файле манифеста.

Vendorld надо заменить на VendorId. Заглавная I вместо маленькой L.

Оффлайн ЯрославАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Ошибка при на первом уроке
« Ответ #2 : 22-01-2015, 21:38:54 »
Спасибо! Я не увидел. В примере оно было подчеркнутое, и я не понял. У меня такая же ошибка была с  ClientId.
А еще не подскажите откуда берется этот ClientId? И что там надо писать??

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Ошибка при на первом уроке
« Ответ #3 : 22-01-2015, 23:37:55 »
А еще не подскажите откуда берется этот ClientId? И что там надо писать??
Влезу-ка я в чужой раздел. :)
Сначала небольшая цитата:
Цитировать
ClientId: A GUID which represents the id of this particular application. ClientIds must be unique for a given session of Revit. Autodesk recommends you generate a unique GUID for each registered application or command.
Для генерации этого GUID можно использовать утилиту guidgen.exe из состава Visual Studio.
А ещё проще воспользоваться этим сайтом: http://www.guidgen.com/ на котором сразу можно сгенерировать новый GUID.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Ошибка при на первом уроке
« Ответ #4 : 23-01-2015, 08:16:40 »
А еще не подскажите откуда берется этот ClientId? И что там надо писать??
Дополню ответ Александра. Проще говоря, это уникальный идентификатор Вашей команды, который отличает вашу команду, от команд других разработчиков. Ведь может получится ситуация, когда несколько разработчиков сторонних приложений назовут свою команду одинакого, и в таком случае Revit не будет знать где какая команда. Уникальный идентификатор позволяет избавится от этой проблемы, так как веротяность того, GUID будет одинаков (если он не вручную задавался, а генерировался специальными утилитами), крайне мала.

Оффлайн ЯрославАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Ошибка при на первом уроке
« Ответ #5 : 24-01-2015, 00:40:26 »
Спасибо большое!