Как создать элемент семейства аннотаций?

Автор Тема: Как создать элемент семейства аннотаций?  (Прочитано 4029 раз)

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

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

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Проблема вот в чем:
Нужно добавить в активный вид элемент из семейства Annotation Symbol.
Однако, не знаю какой командой.
Нашел на форуме решение, но вызов через doc.Create.NewAnnotationSymbol не работает. Похоже, что в современном Revit API такая функция не вызывается.
Ссылка: http://forums.augi.com/showthread.php?144940-Create-New-Annotation-Symbol

Нид хелп. Команда добавления из Annotation Symbol
« Последнее редактирование: 25-04-2018, 18:05:37 от Biorn »

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
День добрый. Посмотрите метод IndependentTag.Create

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Но ведь IndependenTag это другое семейство. Они не связаны. Мне нужна не марка, а именно аннотация, которую я до этого загружаю в проект.
То есть:
1) Загрузка элемента семейства Annotation Symbol в проект
2) Призыв из глубин ада создание этого элемента в активном виде

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Код - C# [Выбрать]
  1. NewFamilyInstance Method (XYZ, FamilySymbol, View)

пробовали?

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Попробовал:
Код - C# [Выбрать]
  1. AnnotationSymbol annotation = doc.Create.NewFamilyInstance Method (XYZ, FamilySymbol, View);
Вижуха пишет ошибку: Не удается преобразовать группу методов "NewFamilyInstance" в тип, не являющийся делегатом "AnnotationSymbol"

Похоже не то

Отмечено как Решение Александр Ривилис 25-04-2018, 22:23:44

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Ну вообще говоря, метод рабочий. Код для Iron Python:
Код - Python [Выбрать]
  1. def getSymbolType():
  2.         col = FilteredElementCollector(doc)
  3.        
  4.         return col.OfClass(FamilySymbol).OfCategory(BuiltInCategory.OST_GenericAnnotation).FirstElement()
  5.        
  6. familySymbol = getSymbolType()
  7.  
  8. tx = Transaction(doc, "create annotation")
  9. tx.Start()
  10.  
  11. doc.Create.NewFamilyInstance(XYZ.Zero, familySymbol, doc.ActiveView);
  12.  
  13. tx.Commit()
  14.  

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Попробовал:
Код - C# [Выбрать]
  1. AnnotationSymbol annotation = doc.Create.NewFamilyInstance Method (XYZ, FamilySymbol, View);
Вижуха пишет ошибку: Не удается преобразовать группу методов "NewFamilyInstance" в тип, не являющийся делегатом "AnnotationSymbol"

Похоже не то
А "Method" тут зачем? Александр Игнатович просто скопировал из документации название метода (метод по-английски Method), вот туда слово "Method" и попало...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Копирнул так. Естественно, я удалил это слово. На факт ошибки это не влияет

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А если так:
Код - C# [Выбрать]
  1. AnnotationSymbol annotation = doc.Create.NewFamilyInstance Method (XYZ, FamilySymbol, View) as AnnotationSymbol;
или так:
Код - C# [Выбрать]
  1. AnnotationSymbol annotation = (AnnotationSymbol) doc.Create.NewFamilyInstance Method (XYZ, FamilySymbol, View);

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

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Уоооо, работает.
Благодарю!

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Единственное, ругается на FamilySymbol, пишет "тип, который недопустим в данном контексте"
Так может там должно быть не FamilySymbol (это имя класса), а symbol как экземпляр класса?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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