Dynamo Python списки
Главная › Форумы › Задать вопрос › Dynamo Python списки
Помечено: Unwrap
- В этой теме 6 ответов, 4 участника, последнее обновление 6 лет назад сделано Denis.
-
АвторСообщения
-
DenisУчастник
Здравствуйте !
что означает в выпадающем меню метод IndexOf(…) у списков в питоне ?
например, создаю пустой список
list1 = []
далее пишу “list.” и выпадает меню с возможностью выбора (часто выбираю append, т.к. с ним научился работать и есть описание на питонворлд), а про IndexOf описания нет.
К тому же питон ругается, что такого метода нет (хотя в выпадающем списке он есть и где-то в чьем то коде я это встречал)
если возможно с примером.
заранее спасибо !
DenisУчастникНашел, где встречал это – Квартирография RVT17 (строка 27) для шаблона АР Autodesk
Если делаю аналог кода упрощенно, то питон выдает ошибку, что объект list не содержит атрибута IndexOf, хотя в скрипте квартирографии это работает.
буду рад любому объяснению
Суть вопроса как понимаю я:
Для программирования в Ревит мы используем АПИ. Динамо это “обертка” (красивая оболочка) над этим АПИ. Питон, встроенный в Динамо – это очередная “обёртка”, но уже для Динамо. Получаем, как лук, завернутые друг в друга программные элементы. По сути, Ревит это “обертка” надо операционной системой. Операционная система – “обертка” над драйверами, драйверы – “обертка” для железа.Работая в Питоне мы можем пользоваться:
1. Методами Питона 2.7 (причем урезанными), если встречаем элемент из Динамо, то его надо “развернуть” – Unwrap
2. Методами самого Динамо (т.е. из кода Питона мы можем обращаться к нодам Динамо.В Питоне 2.7 нет метода IndexOf, зато есть нод с таким именем в Динамо. Можете вытащить этот нод и посмотреть как он работает. В коде вы обращаетесь именно к ноду!
Из-за приведенных особенностей часто возникают проблемы с пространствами имен. Я часто путаю Point из Динамо и Point, которую создал в коде посредством АПИ. Как по мне, то Питон в Динамо не достаточно “инкапсулирован” от самого Динамо. Проблемы с пространствами имен встречаются постоянно. Я бы хотел, чтоб работая в Питоне, мы пользовались только методами Питона, а на методы Динамо ссылались как-то по другому. Хотя, думаю, это тоже большой вопрос для программистов.Вот здесь эта “обертка” рассмотрели очень подробно:
В комментарии 18 все раскрыто!
И тоже соглашусь с автором этого комментария: систему надо понять для успешной работы в Динамо.Лично мне вышеизложенная “теория” к интересующему нас всех материалу понравилась.
По поводу вопроса: может я чего-то не понял, но у меня в упрощенном варианте метод IndexOf работает.Если говорить о сути метода, в данном примере по порядку выбираются индексы всех элементов. Если подавать на вход нода отдельный элемент из данного списка элементов – нод укажет порядковый номер элемента (индекс).
DenisУчастникСпасибо всем за комментарии, особенно за расшифровку UnwrapElement !
я ещё не научился сходу отличать встроенные в питон методы от динамовских, создавал свой вариант без подгрузки какой-либо библиотеки, поэтому питон и не хватал IndexOf. Сейчас всё понятно, всем спасибо !
Пойду дальше изучать
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.