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

Главная Форумы Python Помогите с питон кодом Создание текстовой анатоции на чертежном виде.

В этой теме 6 ответов, 4 участника, последнее обновление  Анатолий 6 мес., 3 нед. назад.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • #3913 Score: 0

    Kami.ukr
    Участник
    1 pt

    Привет ребята, Legantmar выкладывал скрипт для создание шапки таблички. И Alexandr Popov тоже, для создание спецификаций. Так вот в 17 ревите появился новый класс для работы с текстами. И соответственно старые методы не работают. Я хотел переписать для новой, но столкнулся с трудностями. Может кто то поможет мне их разрешить.

    Я думал что он ругается на то что текущий документ это объект динамо, а не ревит. Я попробовал его развернуть но ошибка все та же.

     

    #3922 Score: 1

    Legantmar
    Хранитель
    450 pts

    “доброжелатели” в очередной раз поменяли API и удалили эту Create.NewNextNote

    ты почти правильно написал, TextNote.Create(doc, viewId, xyz, text, texttypeId) (где только не view (вид)  и texttype (тип текста), а их Id)
    все равно пришлось переписать заново. Скачать скрипт для 2017

    и да засада в том, что для получения этого texttype нужно указать надпись для примера (т.е. на листе должна быть какая-то надпись, ее и выбрать)

    0,0,0 – координата нижнего левого угла рамки листа

    p.s. также вставляется и на “слой” легенды, но нужно следить за его масштабом, ибо текст и линии зависят от него.

    #5480 Score: 0

    Степан
    Участник


    Почемуто Динамо выдает ошибку, не нравится строка 30 :texttype = doc.GetElement(UnwrapElement(IN[2]).GetTypeId())
    Ну на самом деле как я понимаю проблемма в выборе текста, не понимаю, почему компьютер ругается с выбором текста

    #7753 Score: 0

    Анатолий
    Участник
    18 pts

    Доброго времени суток, друзья! Напишу здесь, так как наиболее подходящая тема для вопроса. Есть ли возможность сейчас (Revit 2018) вставить текст на чертежном виде или легенде с выбором расположения текста по горизонтали и вертикале посредине? Получилось создать текст с помощью скрипта, созданного Антоном методом Create(Document, ElementId, XYZ, String, ElementId) через елемент.айди. Как показывает Revit API в методе Create Method (Document, ElementId, XYZ, String, TextNoteOptions)  в XYZ зашифрована возможность вставки текста посредине, но как добраться к самому TextNoteOptions никак не могу понять. Прошу натолкнуть на мысли. Спасибо за внимание)

    #7754 Score: 0

    Legantmar
    Хранитель
    450 pts

    Анатолий, посмотри здесь пример на C# (легко переделывается на питон)
    http://www.revitapidocs.com/2018.1/b0fd6ef8-a0ef-9cf4-5bc2-8cd65f81f648.htm

    если не разберешься, то завтра помогу.

    #7756 Score: 0

    Анатолий
    Участник
    18 pts

    Спасибо, Антон! Поизучал возможности этого метода, раньше тоже искал где-то-здесь в Ревит апи, но его не увидел. К сожалению, получилось немало, но не то. Не смог побороться с

    s = opts.HorizontalAlignment.Center

    на эту строчку питон упрямо не обращает внимания, не зависимо

    от opts=TextNoteOptions(texttypeId)

    в создании текста у меня строка note = TextNote.Create(doc, viewId, origin, len, Text[i], opts).

    Но получился вариант выравнивания теста по центру предыдущим методом ,через Id, правда потом пришлось доставать все TextNote и потом параметрами их выравнивать с помощью LookupParameter, но у этого метода один существенный (для меня) минус – он работает только в английской версии ревита.

    Спасибо за помощь!

    #7763 Score: 0

    Анатолий
    Участник
    18 pts

    И еще одна просьба посоветовать, можно ли добраться до компонентов легенды, хочу также их попытаться вставить в саму легенду. Не совсем понимаю как добраться до OST_LegendComponents и выбрать “типорозмеры” (неразмещенные еще) в проекте? Через категории не  получается, не находит, а питоном еще не научился доставать существующий список типов BuiltIn. Прошу прощения, если не в ту тему задал этот вопрос.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)

Для ответа в этой теме необходимо авторизоваться.