Dynamo Python списки

Главная Форумы Задать вопрос Dynamo Python списки

Помечено: 

  • В этой теме 6 ответов, 4 участника, последнее обновление 6 лет назад сделано Denis.
Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • #8641 Score: 0
    Denis
    Участник

    Здравствуйте !

    что означает в выпадающем меню метод IndexOf(…) у списков в питоне ?

    например, создаю пустой список

    list1 = []

    далее пишу “list.” и выпадает меню с возможностью выбора (часто выбираю append, т.к. с ним научился работать и есть описание на питонворлд), а про IndexOf описания нет.

    К тому же питон ругается, что такого метода нет (хотя в выпадающем списке он есть и где-то в чьем то коде я это встречал)

    если возможно с примером.

    заранее спасибо !

     

    #8642 Score: 0
    Denis
    Участник

    Нашел, где встречал это – Квартирография RVT17 (строка 27) для шаблона АР Autodesk

    Если делаю аналог кода упрощенно, то питон выдает ошибку, что объект list не содержит атрибута IndexOf, хотя в скрипте квартирографии это работает.

    буду рад любому объяснению

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

    Суть вопроса как понимаю я:
    Для программирования в Ревит мы используем АПИ. Динамо это “обертка” (красивая оболочка) над этим АПИ. Питон, встроенный в Динамо – это очередная “обёртка”, но уже для Динамо. Получаем, как лук, завернутые друг в друга программные элементы. По сути, Ревит это “обертка” надо операционной системой. Операционная система – “обертка” над драйверами, драйверы – “обертка” для железа.

    Работая в Питоне мы можем пользоваться:
    1. Методами Питона 2.7 (причем урезанными), если встречаем элемент из Динамо, то его надо “развернуть” – Unwrap
    2. Методами самого Динамо (т.е. из кода Питона мы можем обращаться к нодам Динамо.

    В Питоне 2.7 нет метода IndexOf, зато есть нод с таким именем в Динамо. Можете вытащить этот нод и посмотреть как он работает. В коде вы обращаетесь именно к ноду!
    Из-за приведенных особенностей часто возникают проблемы с пространствами имен. Я часто путаю Point из Динамо и Point, которую создал в коде посредством АПИ. Как по мне, то Питон в Динамо не достаточно “инкапсулирован” от самого Динамо. Проблемы с пространствами имен встречаются постоянно. Я бы хотел, чтоб работая в Питоне, мы пользовались только методами Питона, а на методы Динамо ссылались как-то по другому. Хотя, думаю, это тоже большой вопрос для программистов.

    #8644 Score: 3
    Александр
    Участник
    16 pts

    Вот здесь эта “обертка” рассмотрели очень подробно:

    https://forums.autodesk.com/t5/revit-bim-russkiy/programmirovanie-na-python-v-dynamo-for-revit-vebinar-22-noyabrya/m-p/8440157

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

    В комментарии 18 все раскрыто!
    И тоже соглашусь с автором этого комментария: систему надо понять для успешной работы в Динамо.

    #8647 Score: 1
    Анатолий
    Участник
    37 pts

    Лично мне вышеизложенная “теория” к интересующему нас всех материалу понравилась.
    По поводу вопроса: может я чего-то не понял, но у меня в упрощенном варианте метод IndexOf работает.

    Если говорить о сути метода, в данном примере по порядку выбираются индексы всех элементов. Если подавать на вход нода отдельный элемент из данного списка элементов – нод укажет порядковый номер элемента (индекс).

    #8648 Score: 0
    Denis
    Участник

    Спасибо всем за комментарии, особенно за расшифровку UnwrapElement !

    я ещё не научился сходу отличать встроенные в питон методы от динамовских, создавал свой вариант без подгрузки какой-либо библиотеки, поэтому питон и не хватал IndexOf. Сейчас всё понятно, всем спасибо !

    Пойду дальше изучать

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