поиск как в экселе
Главная › Форумы › Задать вопрос › поиск как в экселе
- В этой теме 36 ответов, 6 участников, последнее обновление 7 лет, 2 месяца назад сделано Oleg.
-
АвторСообщения
-
АнонимНеактивированный10 pts
Олег, спасибо! Твой ответ прямо вишенка на торте из всех сегодняшних ответов от других уважаемых коллег по сообществу. В голове крутилась мысль как бы прикрутить конвертеры единиц в виде функций (проблемой было то что я пока так толком и не освоил функции) для дальнейшего использования. Теперь удастся совместить приятное с полезным – и с функциями наконец-то разберусь на реальном примере под из своих задач и ноду окончательную фукнциональность обеспечу.
АнонимНеактивированный10 ptsКоллеги, благодаря вашей помощи у меня почти получилось довести задуманное до логического финала. В целом нод уже работает почти так как мне надо, за исключением некоторых небольших шероховатостей, которые я так же надеюсь решить с вашей помощью. По отдельным моментам просто хочется посоветоваться с вами какую логику лучше заложить в нод при возможности выбора из нескольких вариантов.
Текущая бета-версия выглядит как на скриншотах. Я скомпилировал подсказанные ходы от Oleg и txt, добавил немного отсебятины, в меру своих скромных знаний попытался кое-что оптимизировать. Что получилось на выходе можно скачать по вчерашней ссылке. Я заменил в папке все файлы на актуальные. В свойствах пространств стёр все значения, чтобы можно было наглядно увидеть что нод стал в первом приближении рабочим. В ноде до сих пор есть отдельные блоки, которые пока видятся мне неоптимальными. В частности, хочется запихать в код питона и передачу параметров в ревит + добавить логический блок проверки для отдельных типов параметров, например, мне не нравится что в случае отсутствия значения температуры в экселевском столбце с температурами помещений в параметр передаётся значение температуры -546°С и в случае отсутствия значения расхода воздуха в столбце с расходами в ревит передаётся значение 102 м3/ч. Можно конечно в исходной таблице эксель принудительно заставить тех кто будет потом этим пользоваться заполнять все ячейки, но можно ведь и поднастроить логический блок на более интеллектуальное поведение. Видимо для этих параметров стоит поменять логический подход и в случае отсутствия значений в таблице эксель просто пропускать обработку пространств для текущего типа параметра и текущего номера помещений. Пугает то что придется вообще переписывать весь текущий логический подход, либо ветвить логику на 2 сценария обработки пространств в зависимости от типа рассматриваемого параметра, а это усложняет внутреннее наполнение нода. .
Еще вариант с тем же нодом , код тоже не айс :
потестите , найдете ошибки – пишите я детально не проверял…
p.s. по мне дак основная возня с конверторами единиц… может стоит конвертацию делать в экселе (т.е. лист1 оставляете как есть, создаете лист2 копируете туда все с листа1 (ссылками) и затем ссылками-формулами конвертируете. Далее в динамо подгружаете этот лист2 – в итоге запись либо числа, либо строки). Я б еще через VBA кнопочку сделал по нажатию на которую происходила бы конвертация, хотя это не обязательно.
Вопрос:
Например, что то в этом духе:
list_display_type=UnwrapElement(IN[0]) xxx DisplayUnitType()
OUT=list_display_type >> DUT_CUBIC_METERS
В конечном счете хотелось бы вот к чему прийти, примерный алгоритм:
1.) проверяем список на наличие в нем чисел (строки игнорим) , запоминаем индексы
2.) из этого списка чисел получаем DisplayUnitType и пользуясь методом, примененным ваше Oleg ‘ом, сконвертировать существующие для определенного элемента единицы в единицы проекта, то есть эти:
Чтобы не приходилось для каждого типа единиц прописывать свой кусок кода, а все делалось автоматически…
p.s. есть нод – конвертор единиц, но там всего по-моему штуки 4 типа единиц
Это все можно сделать с помощью UnitUtils. Там есть
ConvertFromInternalUnits
ConvertToInternalUnits.А проверять условие можно
if DisplayUnitType.DUT_METERS:
Вот тут можно подробнее почитать
http://thebuildingcoder.typepad.com/blog/2011/12/unit-conversion-and-display-string-formatting.html
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.