Редактирование размера аннотаций

Главная Форумы Задать вопрос Редактирование размера аннотаций

Помечено: ,

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Автор
    Сообщения
  • #7873 Score: 0
    Nickolay
    Участник

    Приветствую!
    Сразу скажу, я новичок в использовании средств Dynamo.
    Передо мной поставлена задача – сделать модуль автоматического изменения аннотаций по ГОСТ. Интересует именно раздел Марки в Аннотациях.

    То есть два режима:
    1) исправление в реальном времени – пользователь маркирует элемент чертежа, вводит цифры, а плагин автоматически изменяет длину/ширину
    ИЛИ
    2) оффлайн режим – имеется чертеж с уже существующими марками, по нажатию кнопки плагин форматирует их по заданным стандартам.

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

    Так же хотелось бы получить советы по реализации, примеры подобных программ по структуре. Желательно, гайды для изучения.

    #7874 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Интереснейший вопрос.
    Самая главная задача – определение длинны текста ))
    “я новичок в использовании средств Dynamо”
    Я надеюсь, вы не новичек в использовании методов c# и перевода их в Python
    В любом случае, следующая статья для вас. Если она вам не по зубам, вернитесь к этой задаче
    позже, после изучения основ программирования. Ну месяца так через 3-4.
    http://thebuildingcoder.typepad.com/blog/2014/10/new-text-note-and-text-width-calculation.html

    #7875 Score: 0
    Nickolay
    Участник

    Длина текста указана в нормативном документе. Вот выдержка:

    С C# работал, естественно. 4 курс, диплом вот пишу.

    Но за статейку спасибо. Завтра ознакомлюсь

    #7876 Score: 0
    Nickolay
    Участник

    К слову, реализация не обязательна на Dynamo.
    Лучше всего сделать на C# через Revit API в виде подключаемого плагина. Так будет грамотнее

    #7884 Score: 0
    JON73
    Участник

    пока это в ревите неосуществимо потому что длина полки может быть только параметром ТИПА – это большой косяк ревита, когда сделают по экземпляру тогда все будет окей.

    #7885 Score: 0
    Denver-22
    Участник
    6 pts

    Ну, пока можно определить требуемую длину полки и выбрать типоразмер с ближайшей Большей величиной (из списка типоразмеров с разными длинами полок). Костыль конечно, но хоть можно автоматизировать.
    По крайней мере я собираюсь так сделать, как немного освобожусь…

    #7892 Score: 0
    ИваСерж
    Хранитель
    134 pts

    может быть только параметром ТИПА – это большой косяк ревита

    я тоже считаю, что это косяк. Тем не менее, этих типов можно насоздавать сколько угодно – не проблема. А вот определить ширину любого текста сложно

    #7897 Score: 0
    Nickolay
    Участник

    Denver-22, можно поподробнее? То есть если это реализуемо, то хотелось бы узнать с помощью каких средств и взглянуть на примеры.
    >собираюсь так сделать, как немного освобожусь…
    Заинтересовала тема? Если возьметесь и поделитесь результатами, был бы благодарен.

    #7900 Score: 2
    Denver-22
    Участник
    6 pts

    Пока только идеи:
    – Tag Host Element (пакет Archi-lab.net, он же Archi-lab Grimshaw) – определит основу марки (маркируемый элемент)
    – Считываете значение параметра из элемента.
    – Определяете длину полки по длине текста (в соседней ветке давали ссылку на английскую статью). Мне же пришлось находит коэффициент эмпирически. Будет зависеть от шрифта, кегля, сжатия.
    – По расчетной длине выбираете типоразмер марки с нужной длиной полки.
    Меня ждать долго придется. Задача не приоритетна, но будет когда-то выполняться.

    #7901 Score: -1
    Nickolay
    Участник

    Проблема в том, что для меня это диплом. Срок реализации программы – месяц.
    Тема утверждена и я не могу ничего изменить. Мне выдали эту тему по ДПО, хотя обучали просто работе в Ревите. Без должного опыта я не смогу её выполнить сам. Если вдруг будет возможность заняться этой задачей, прошу сообщить.
    Для меня – вопрос жизни и смерти. Мне обращаться уже действительно не к кому

    #7903 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Я считаю, что все ответы по теме даны. Я смогу реализовать алгоритм за неделю максимум. Однако у меня нет желания писать за вас диплом, хотя с удовольствием могу помочь в некоторых нюансах.
    Денвер 22 предоставил адекватный алгоритм для задачи,
    в блоге thebuildingcoder, по ссылке которую я вам привел, решена задача
    – Определяете длину полки по длине текста (я бы даше сказал наоборот – определение длинны текста для выбора длинны полки). Эта задача решена универсальным методом для любых шрифтов и их модификаций Italic, Blod, а также для любого коэфициента ширины текста.
    Остается только взять и сделать. В чем проблема? Разбирайте код по полочкам и вперед.

    #7910 Score: 0
    Denver-22
    Участник
    6 pts

    Эта задача решена универсальным методом для любых шрифтов и их модификаций Italic, Blod, а также для любого коэфициента ширины текста.

    Даже так? Я переводил статью в ГуглПереводчике. И понял так, что автор сделал анализ только для одного шрифта, и то пришел в итоге к эмпиричности. Значит надо снова перечитать.
    Если и с моими слабыми знаниями в программировании получится применить его наработки, буду крут )). Беру на заметку.

    #7911 Score: 0
    Nickolay
    Участник

    Благодарю за ответы, буду работать. Если появятся наработки или вопросы по коду, отпишусь.

    P.S. я никого не прошу писать за меня диплом.

     

    #7962 Score: 1
    Nickolay
    Участник

    В общем, дела обстоят следующим образом:
    С помощью Revit Lookup обнаружил, что все семейство марок невозможно изменять, задавая параметры. То есть, даже если отрисовывать марку с нуля, проставляя галочки у длин “по экземпляру”.

    Нашел иной способ – замена элемента из семейства Марки на родственную ему Типовые аннотации.
    То есть мы берем в переменные все данные – текст марки, положение, инфу о выноске, удаляем ее, а затем подгружаем типовую аннотацию, которую нарисовал заранее и передаем ей параметры положения на чертеже и содержание. Конечно же, редачим размер исходя из длины строки.
    Начал делать на Revit API, схематичный алгоритм написал, открыл транзакцию, все настроил.

    Теперь мне нужно знать, какая функция захватывает положение элемента по координатам на чертеже, удаляет элемент, добавляет элемент.
    Я, конечно, все это найду в скором времени, но если функцию знаете – киньте название сюда. Заранее спасибо!

    #7963 Score: 0
    Legantmar
    Хранитель
    474 pts

    координаты текстовой аннотации в питон ноде:
    OUT = UnwrapElement(IN[0]).Coord # предварительно подключить библиотеки RevitAPI (поиск шаблон2.0)

    удалить элемент:

    Удалить элементы

    создать текстовую аннотацию

    Создание текстовой анатоции на чертежном виде.

    p.s. и ты уже в курсе, что текстовые аннотации работают с динамо только в английской версии ревита !?

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Для ответа в этой теме необходимо авторизоваться.