Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Ярослав от 22-01-2015, 15:55:22

Название: Ошибка при на первом уроке
Отправлено: Ярослав от 22-01-2015, 15:55:22
Здравствуйте начал изучать Ревит АПИ и при прохождении учебного курса "Моя первая программа для Autodesk Revit". при попытке загрузить ревит с установленым дополнением выскакивает вот такое окошко:
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs15.postimg.org%2F45h6781xz%2Fimage.jpg&hash=93d344022aac36cc6978ac86292acbbd) (http://postimg.org/image/45h6781xz/)
Может я что не так сделал. Или еще нада где то чево то регистрировать?
Вот код манифеста:
Код - 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
Название: Re: Ошибка при на первом уроке
Отправлено: Виктор Чекалин от 22-01-2015, 16:13:50
Ярослав, здравствуйте.

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

Vendorld надо заменить на VendorId. Заглавная I вместо маленькой L.
Название: Re: Ошибка при на первом уроке
Отправлено: Ярослав от 22-01-2015, 21:38:54
Спасибо! Я не увидел. В примере оно было подчеркнутое, и я не понял. У меня такая же ошибка была с  ClientId.
А еще не подскажите откуда берется этот ClientId? И что там надо писать??
Название: Re: Ошибка при на первом уроке
Отправлено: Александр Ривилис от 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.
Название: Re: Ошибка при на первом уроке
Отправлено: Виктор Чекалин от 23-01-2015, 08:16:40
А еще не подскажите откуда берется этот ClientId? И что там надо писать??
Дополню ответ Александра. Проще говоря, это уникальный идентификатор Вашей команды, который отличает вашу команду, от команд других разработчиков. Ведь может получится ситуация, когда несколько разработчиков сторонних приложений назовут свою команду одинакого, и в таком случае Revit не будет знать где какая команда. Уникальный идентификатор позволяет избавится от этой проблемы, так как веротяность того, GUID будет одинаков (если он не вручную задавался, а генерировался специальными утилитами), крайне мала.
Название: Re: Ошибка при на первом уроке
Отправлено: Ярослав от 24-01-2015, 00:40:26
Спасибо большое!