Как выровнять расстояние между элементами
Главная › Форумы › Задать вопрос › Как выровнять расстояние между элементами
- В этой теме 23 ответа, 4 участника, последнее обновление 7 лет, 8 месяцев назад сделано txt.
-
АвторСообщения
-
Выбрав несколько элементов в Ревит (например несколько параллельных труб с произвольными расстояниями) как в динамо выровнять расстояние между ними на заданное значение?
В самом Ревит можно сделать так: вынести размеры между элементами и щелкнуть по значению размера “EQ”
нет такого понятия как “выровнять расстояние” ))
правильно писать – подвинуть элементы так, чтобы между ними было заданное расстояние … и вопрос сразу снят )))Безмерно рад тому, что вы меня поправили). Так а что по существу вопроса?
вычисляешь расстояния и двигаешь трубы )) (я предполагал, что это очевидно из предыдущего ответа)
Ах вон оно что… ну что ж , попробуем помучить Динамо…
возник вопрос: как задать порядок выбора элементов в определенном порядке , направлении , скажем слева -направо, сверху -вниз или наоборот… то есть по порядку как расположены элементы на виде ревит. Если просто выбрать рамкой все элементы через ” select model elements” т то порядок будет естественно произвольный (по возрастанию номера ID или вроде того) чтобы можно было поочередно определить расстояния между элементами
и ? какие мысли? ))
возможно есть нод который определяет ближайший идентичный элемент
либо поочередно замерять расстояния от одной трубы до всех и вычислить наименьшее расстояние…есть вроде нод перебор всех возможных варинатов
я такого не знаю, но видел нод определяющий Location (координаты расположения)
p.s. а причем тут наименьшее расстояние? или ты уже правила меняешь..
Беру первый элемент в списке предоставленным SElsection in view (вернее твоим аналогом) и нахожу ближайшие элементы на заданном расстоянии (видимо так) , получаю список элементов , первый из которых вероятно и есть ближайший фильтрую и выбираю его…
Вообщем , задача далее такая …мне это условие надо как то зациклить по всем элементам с сохранением результата…не знаю как сделать..вот для одного элемента :
не видел “красивых циклов” в Dynamo (хотя нод вроде как есть), начинай изучать Python
допустим ты нашел все ближайшие друг к другу элементы и даже как-то измерил расстояния между ними… что дальше?далее учитывая расстояние между элементами сдвинул бы каждый элемент в заданном направлении (это направление совпадает с вектором -перпендикуляром от одной параллельной трубы до другой (это видимо можно определить) .
Пусть расстояние между тремя трубами такое : труба 1 ——-5мм (L)———Труба 2——-10мм (L)——-Труба 3
мне допустим нужно чтобы между ними было по L_новое=7 мм…
Если L между трубами < L_новое , то L_новое=Lновое – L =7-5=+2 мм – на такое расстояние труба 2 <span style=”text-decoration: underline;”>И труба 3</span> будем смещена по вектору в направлении к трубе 3
Если L > L_новое, то L_новое=Lновое – L =5-10=-5 мм – на такое расстояние труба 3 будем смещена в противоположном направлении того же вектора
мыслишь правильно..
но я бы:
– определил ТЕКУЩИЕ координаты X или Y для каждого элемента,
– отсортировал элементы по расположению,
– определил расстояние между крайними (максимальное расстояние)
– поделил бы на количество n-1 (если нужно сделать аналог “EQ”)
– определил НЕОБХОДИМЫЕ координаты X или Y для каждого элемента
и далее перемещал бы в эти координатыу меня получилось вот так
https://yadi.sk/i/AN58Wv-x3FnaBY
(ссылка временная)
(все слЯпил только из нодов, хотя часто балуюсь python)
делиться пока не буду, посмотрю, что у тебя получится. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.