String to FamilySymbol

Главная Форумы Python Revit Library (API) String to FamilySymbol

В этой теме 13 ответов, 5 участников, последнее обновление  Legantmar 3 года/лет, 2 мес. назад.

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

    tuuletin
    Участник
    3 pts

    Привет, друзья,
    подскажите, как преобразовать string в FamilySymbol?

    Например, при помощи ElementId(int) можно преобразовать целое число int в ElementId.

    #3302 Score: 1

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

    мне кажется твой ответ здесь

    http://www.youtube.com/watch?v=i56juwwuzYE

    где то в районе 1:05

    #3303 Score: 1

    Dmitry_dronov
    Модератор
    49 pts

    strng = IN[0]
    intgr = int(strng)
    ElementId(intgr)

    #3304 Score: 0

    tuuletin
    Участник
    3 pts

    Legantmar, почти верно, но не совсем! Можно ли как-то реализовать действие, выполняемое нодом FamilySymbol.ByName, но в коде питона? Интересует получение Symbol именно из строковой величины, при этом это не строковая id (которая легко преобразуется в ElementId(строковая id)).

    В общем, хочу получить в переменную из строковой величины-не id элемента объект Autodesk.Revit.DB.FamilySymbol или какой-нибудь такой в питоне…

    #3305 Score: 0

    tuuletin
    Участник
    3 pts

    В общем, можно ли как-то это реализовать без подключения библиотеки RevitNodes?

    Пока что вижу выход только собрать все типы семейств из проекта в коллектор и циклом проверять, совпадает ли строка… Но почему по id можно выбрать тип напрямую, а по строке нельзя :с Какие у вас идеи, господа?

    #3306 Score: 0

    tuuletin
    Участник
    3 pts

    Добавлю, что окончательно осознал то, что хочу получить в грамотных терминах: нужен конструктор FamilySymbol из строки… Например, для ElementId есть конструктор для int, builtincategory, builtinparameter.

    ElementId Constructor

    #3307 Score: 0

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

    //Интересует получение Symbol именно из строковой величины, при этом это не строковая id (которая легко преобразуется в ElementId(строковая id)

    дык сначала преобразуй в string, затем в int, затем в ElementId ))

    а вообще я не понимаю, что ты хочешь сделать. что должно быть на выходе твоего скрипта? и что есть из исходных данных?

    желательно файлик в ревит 2015.

    #3311 Score: 1

    Alexandr Popov
    Модератор
    44 pts

    els = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_GenericAnnotation).OfClass(FamilySymbol).ToElements()
    for i in els:
    if “Выноска” in i.Family.Name:
    el=i
    break

    Вот такой способ намутил, когда пытался без нодов в питоне вытащить тип Выноски.

    #3312 Score: 0

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

    Саш, немного не по теме, но тебе будет полезно также посмотреть вот этот ролик с 5:00

    #3313 Score: 0

    tuuletin
    Участник
    3 pts

    Alexandr Popov, перебирать коллектор циклом не хочется, этот способ и так ясен (я бы тему не создавал).

    Legantmar, есть в проекте

    Семейство 1
    → Тип 1
    → Тип 2
    → Тип 3

    Есть string с содержимым “Тип 2”, хочу выбрать FamilySymbol из этого стринга. Нод FamilySymbol.ByName делает именно это.

    #3317 Score: 0

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

    tuuletin, если нод работает, может его же и использовать внутри питона? (правильно подключив библиотеки)

    #3321 Score: 0

    tuuletin
    Участник
    3 pts

    Legantmar, можно. :з

    #3322 Score: 0

    Khasan Mamaev
    Хранитель
    181 pts

    Как раз я кино вчера на эту тему записал

    #3323 Score: 0

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

    в некоторых случаях помогает библиотека System

    http://dynamobim.ru/forums/topic/tips-and-trics-советы-и-приемы/#post-3246

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

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