Dynamo – Русский – только для чтения
Раздел для программистов и специалистов, использующих Dynamo
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

dynamo целое число

10 REPLIES 10
SOLVED
Reply
Message 1 of 11
Anonymous
6369 Views, 10 Replies

dynamo целое число

Здравствуйте, подскажите пожалуйста, как избавиться от нулей после запятой в данной ситуации. Заранее спасибо!!!

10 REPLIES 10
Message 2 of 11
semko_dm
in reply to: Anonymous

Добрый день!

Есть несколько стандартных нодов для округления, они все находятся в библиотеке Core - Math.
В случае преобразования числа в текст подойдет либо Math.Floor либо Math.Ceiling.

If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!

Kind regards,
Dmitriy Semko.

 

Dynamo_округление2.jpg

 



Dmitriy Semko
BIM-Manager
Blog
Facebook | Telegram | LinkedIn

Message 3 of 11
tuuletin
in reply to: Anonymous

Привет, никак. Да и зачем их убирать? Всё равно при передачи в revit число будет отображаться согласно правилам revit, и количество знаков после запятой будет изменяться от нуля (для типа параметра "целое число") до указанного числа знаков округления (для других числовых параметров).

 

Дальше всё зависит от того, что ты хочешь сделать с этим числом:

 

1) передать в любой числовой параметр revit (например, чтобы потом можно было использовать этот параметр в формуле в среде revit): передаёшь как есть. В среде revit это число будет отображаться согласно правилам округления revit (вкладка "Управление" → "Единицы проекта").

 

2) передать в текстовый параметр revit (например, чтобы вывести это значение в марку, и тогда лишние нули после запятой будут мешать): преобразуешь одним нодом число в строку, убираешь другим нодом ненужные нули с конца.

Message 4 of 11
Anonymous
in reply to: semko_dm

Дмитрий, спасибо большое! Именно это было и нужно.

Message 5 of 11
semko_dm
in reply to: Anonymous

Да пожалуйста.

Справедливости ради и для полноты картины, можно и как писал @tuuletin - отсекать нули после преобразования в строку. Но я обычно ленюсь потому что выходит на один-два нода больше)
Сначала ставлю математическое округление, особенно если работаю с значениями полученными из ревита (у него бывают неточности в доли миллиметра), а затем уже Floor или Ceiling.

Dynamo_округление3.jpg



Dmitriy Semko
BIM-Manager
Blog
Facebook | Telegram | LinkedIn

Message 6 of 11
Denver-22
in reply to: semko_dm

Чтобы темы не плодить, продолжу эту - с дополнительным требованием:

Число нужно вбить в "строковый параметр", и число - не целое. Т.е. должно быть "3,700".

Применяю разделение в String.Split. Но не знаю как из него взять отдельно элементы первого "столбца списка" (целая часть от числа) и второго (дробная часть от числа). Что мне записать в обоих случаях в квадратных скобках вместо 0 - str[0]?

 

Дополнение:

Нашел нод List.GetItemAtIndex. Но как правильно дать ему параметр Index? Если даю 0, то список остается таким же как на входе. Как добраться до 3-го уровня списка?

Message 7 of 11
Anonymous
in reply to: Denver-22

str[0][0][0] пробовали?

Судя по картинке, str[0] дает вам 1 уровень вложенности, и если нужно 3, то просто обращайтесь по индексу к соответствующему списку 1 уровня, 2 уровня, и затем к элементу списка 

Message 8 of 11
Denver-22
in reply to: Anonymous

Я пока синтаксисом Python не занимался. (Это следующий этап). Поэтому прошу помощи как мне выделить в список элементы с индексом 0 в один список, а с индексом 1 - в другой (см. вложенный скриншот выше). При том, что изначально, как я понял, они находятся на 4-м (или 3-ем) уровне.

str[0][0][0] дал только 1 значение - самый первый элемент.

Вы можете подсказать/написать команду для вычленения нужных мне 2-х списков?

 

ОТБОЙ!

Решил, что раз я пока синтаксисом Пайтон не владею, мучить людей не буду. @Anonymous, спасибо за отклик.

Реализовал (пока) всё на уровне нодов: Math.Floor-ом выделил целую часть числа и дробную. Обе перевел в строку и там объединил как мне надо.

Когда изучу как работать со списками, может смогу и изящней сделать.

Message 9 of 11
semko_dm
in reply to: Denver-22

Я так понимаю, вам нужно отбросить у строк лишние знаки после запятой в первую очередь, если да, то можно это сделать как показано на схеме ниже (файл так же прикреплен):

Есил данный пост дал ответ на ваш вопрос, примите его в качестве решения, чтобы другим было проще его найти.
С уважением,
Дмитрий Семко.


PS: обратите внимание, что в нодах List.GetItemAtIndex использованы "уровни".

Capture.png



Dmitriy Semko
BIM-Manager
Blog
Facebook | Telegram | LinkedIn

Tags (2)
Message 10 of 11
Denver-22
in reply to: semko_dm

Дмитрий, очередной раз спасибо! По коду всё понятно!

Это именно то, что я хотел.

Зафиксировать ответ как решение не могу, т.к. автор темы не я. Теперь понимаю, что это полезное решение поиском не будет определяться ((.

Message 11 of 11
semko_dm
in reply to: Denver-22

Это сможет сделать автор ветки, или один из модераторов, так что ничего страшного )



Dmitriy Semko
BIM-Manager
Blog
Facebook | Telegram | LinkedIn

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report