Обработка содержимого Текстовых примечаний

Главная Форумы Dynamo Ноды Обработка содержимого Текстовых примечаний

В этой теме 23 ответа, 7 участников, последнее обновление  Veronica 1 месяц, 2 нед. назад.

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Автор
    Сообщения
  • #7812 Score: 0

    ИваСерж
    Модератор
    100 pts

    А что на ввод идет? Какие элементы?

    #7813 Score: 0

    Denver-22
    Участник
    5 pts

    Выбор элементов по предварительному выбору в Ревит. Брал тут или на другом ресурсе:
    sel=[]
    elt=[]
    sel=uidoc.Selection.Elements
    for i in sel:
    elt.append(i.ToDSType(False))
    OUT = elt

    Выбор будет не только TextNote. Элементы TextNote я отдельно выделю и отправлю на получение текста из них.

    #7815 Score: 0

    ИваСерж
    Модератор
    100 pts

    ЛОЛ же ж! Это ж надо, я ещё должен вылавливать ошибки такого типа??? Потратил блин пол часа жизни на бесполезное занятие…

    ID поменяй на Id

    #7816 Score: 0

    Denver-22
    Участник
    5 pts

    Я, к сожалению, пока до программирования на Python не дошел. Поэтому взял ваш образец как есть. Там ведь так было. Эта ошибка исправилась, спасибо. Сейчас другая ошибка на строку outtext.append(doc.GetElement(el).Text):
    TypeError: expected Reference, got int

    #7818 Score: 1

    Alex Babinoff
    Модератор
    14 pts

    Потому что в переменной el число, а должен быть id
    GetElement(ElementId(el))

    #7819 Score: 0

    Denver-22
    Участник
    5 pts

    ИваСерж, Alex Ward, большое вам спасибо. Похоже всё заработало.

    Интересно, исправили ли этот косяк с TextNote в русской локали в Dynamo 2.0 (из-за которого пришлось придумывать такие костыли)? ))

    #8530 Score: 0

    Veronica
    Участник

    В версии 2.0.1 всё по прежнему. =( Пытаюсь автоматизировать запись нагрузок на фундаменты от колонн, которые расчётчик выдаёт в виде текста в автокаде по координатам. На каждую колонну по 5 усилий(!)
    Запускать ради этого англ.версию неудобно.
    Прошу помощи в Python Script, где я новичок. Ни один из выложенных кодов не сработал…
    Есть ли возможность автоматом/скриптом выбирать все текстовые примечания активного/выбранного вида?
    В итоге должна получиться марка колонны – что-то подобное.

    #8531 Score: 0

    txt
    Модератор
    94 pts

    вы можете получити id текстовых примечаний на виде так:
    text_notes_ids=FilteredElementCollector(doc,doc.ActiveView.Id).OfCategory(BuiltInCategory.OST_TextNotes).WhereElementIsNotElementType().ToElementIds()
    затем используя doc.GetElement(id) получить сам элемент (манипуляции при этом нужно делать внутри скрипта, при этом в OUT= … эти элементы подавать не следует (будем ошибка))

    #8532 Score: 0

    Veronica
    Участник

    Спасибо за ответ для тех, кто в теме! Хотелось бы вариант для менее продвинутых. Обидно, что из-за ошибки локализации мы вынуждены искать сложные пути решения простой задачи.

    Как это сделать правильно?

    import clr
    clr.AddReference(“RevitAPI”)
    import Autodesk
    from Autodesk.Revit.DB import *
    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager
    import System
    clr.AddReference(“System.Core”)
    clr.ImportExtensions(System.Linq)
    doc = DocumentManager.Instance.CurrentDBDocument
    uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
    # Start Transaction
    TransactionManager.Instance.EnsureInTransaction(doc)
    text_notes_ids=FilteredElementCollector(doc,doc.ActiveView.Id).OfCategory(BuiltInCategory.OST_TextNotes).WhereElementIsNotElementType().ToElementIds()
    doc.GetElement(id)
    # End Transaction
    TransactionManager.Instance.TransactionTaskDone()
    OUT =

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)

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