Revit и Navisworks – Русский – только для чтения
В разделе вы можете обсудить любые вопросы, касающиеся Revit, Navisworks и других продуктов коллекции AEC, за исключением BIM 360. Делитесь знаниями, своими проектами и наработками. Станьте частью BIM-сообщества Autodesk.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Revit - Challenge "Недостаточно полей для сортировки"

60 REPLIES 60
Reply
Message 1 of 61
Severnik
8928 Views, 60 Replies

Revit - Challenge "Недостаточно полей для сортировки"

Всем привет!

Давайте проведём Revit Challenge и разомнём мозги, предлагаю практическую и интересную тему: Настройка и организации спецификаций.

Revit - Challenge "Недостаточно полей для сортировки"Revit - Challenge "Недостаточно полей для сортировки"

 Задача сделать ведомость (одну) на отверстия и ниши так чтоб всё было разложено по полочкам, а именно было разделение по следующим параметрам:

  1. Уровень (так как отверстия лежат на разных этажах)
  2. ADSK_Отверстия_Функция (ОВ, ВК, ТХ, ЭС)
  3. ADSK_Отверстия_Ширина (Для прямоугольных отверстий и ниш)
  4. ADSK_Отверстия_Высота (Для прямоугольных отверстий и ниш)
  5. ADSK_Отверстия_Глубина (Для ниш)
  6. ADSK_Размер_Диаметр (Для круглых отверстий)
  7. ADSK_Отверстия_Отметка от этажа (Высота расположения)
  8. Комментарии (Примечание в ведомости)

Вот только полей для сортировки в Revit всего 4 😞

Но позиция (Марка) в ведомости у каждого отличающегося отверстия должна быть уникальная, а спецификация должна быть динамичной и сама заполняться 😉

Примерно такая ведомостьПримерно такая ведомость

Есть ли вообще у такой задачи решение?

Предложите свой метод! Призовите на помощь изобретательность, логику, математику, физику, химию, мааагию… или используйте Dynamo ))

Соревнование для всех.

  • Вы крутой Ревитчик и у вас есть лайф-хаки на все случаи ? Поделитесь одним из них!
  • Вы новичок и ещё не сталкивались с такой задачей? Самое время попробовать свои силы и предложить оригинальное решение!
  • Вы продвинутый Dynamo-вец и у вас есть свои ноды и скрипты ? Расскажите как вы решаете такие задачи скриптами!

Ну а если у задачи нет решения напишите как бы вы решали её в свой реальной проектной ситуации? (Разные спецификации или ещё что-то)

Для соревнования я подготовил и прикрепил файл с расположенными отверстиями (Revit 2017) это чистый файл без лишних элементов. Семейства отверстий в категории Обобщенные модели.

Вы можете модифицировать его как хотите: редактировать семейства, добавлять свои параметры в семейства и проект и т.п.

 

Вопросы/предложения пишите в этой теме.

Своё решение, описание к нему и файл выкладывайте в этой теме в следующую пятницу (08.05.2020) Просьба не выкладывать раньше чтоб не делать спойлеров для участников.

 

Победителя определим как обычно "лайками", на голосование будет ещё неделя. Лучшие решения будут опубликованы в наших соцсетях.



Nikita Tyukov / Никита Тюков
Architect / Архитектор
Autodesk Expert Elite member
BIM&Architecture

60 REPLIES 60
Message 21 of 61
Severnik
in reply to: Araa9977


@Araa9977 wrote:

А почему решили использовать 2017 версию, а не более новую?

 


@Araa9977 Использовать можете любую версию, изначально в 2017 для того чтоб могли участвовать те у кого нет более новой.



Nikita Tyukov / Никита Тюков
Architect / Архитектор
Autodesk Expert Elite member
BIM&Architecture

Message 22 of 61
K.Rishat
in reply to: Severnik


@Severnik  написал (-а):

Да, совершенно верно, нужно отдельно функция отверстия и отдельно примечание.

У меня сортировка сделана отдельно по функциям (разделам), отдельно по комментариям к отверстию. Но выводятся они в одном столбце.

Message 23 of 61
Anonymous
in reply to: K.Rishat

А зачем делать отверстия с разбивкой по уровням, на лист выносится только для текущего уровня ?

Или просто "хочу вот так и всё" 

Message 24 of 61
K.Rishat
in reply to: Anonymous


@Anonymous  написал (-а):

А зачем делать отверстия с разбивкой по уровням, на лист выносится только для текущего уровня ?

Или просто "хочу вот так и всё" 


Ну раз такое задание, значит кому-то это нужно. Разделить полную ведомость на отдельные проще, чем объединить отдельные в одну. Достаточно добавить в фильтры уровень.

Message 25 of 61
Severnik
in reply to: Anonymous


@Anonymous wrote:

А зачем делать отверстия с разбивкой по уровням, на лист выносится только для текущего уровня ?

Или просто "хочу вот так и всё" 


@Anonymous Это же челлендж, а не решение конкретной проектной задачи, цель попрактиковаться в решении нестандартной задачи 🙂

Можно было бы вообще взять абстрактные семейства (например кубик, цилинд, конус, звезда) и сделать на них ведомость. Но мне показалось интересней взять практические семейства.



Nikita Tyukov / Никита Тюков
Architect / Архитектор
Autodesk Expert Elite member
BIM&Architecture

Message 26 of 61
Anonymous
in reply to: Severnik

Тогда вот примерно таким образом будет, руками заполняется позиция, функция и если нужно примечание

evil327_0-1588759213009.png

 

Message 27 of 61
Extraneous
in reply to: Severnik

А зачем сортировка и по Комментарию, и по Функции? Вы уже определитесь, куда будете ВК-ОВ писать.

Ну ничего, раз уж такое задание, сделал и по тому и по другому, всё работает автоматом одной спецификацией без динам всяких и прочего

 

UPD: увидел что комментарий тоже используется, см. скриншот

Extraneous_1-1588776881040.png

 

 

 

 

 

Alexander Zuev
In BIM we trust
Facebook | Linkedin | Telegram

Message 28 of 61
K.Rishat
in reply to: Extraneous

Если уж и Александр собрался участвовать в челлендже, то мне тут ловить нечего ). Потому что моя спецификация собрана на основе его инструкций в блоге ). Правда ему похоже быстро наскучила задача-песочница, поэтому у меня результат пока выглядит чуть более доработанным, чем у него на скриншоте... Надо же хоть чему-то порадоваться ). 

Message 29 of 61
PavelAnd
in reply to: Severnik

Присоединюсь ко всеобщему движению и тоже скажу, что подготовил решения) Просто с Dynamo, только средствами Revit (но не поборол объединение Уровня и Отметки от этажа), с помощью Revit API. Все исходники выложу в указанный день, можно будет скачать/потестить/дополнить)

image.png

Best regards, Pavel Plotitsyn.

Message 30 of 61
Extraneous
in reply to: K.Rishat

@K.Rishat Вообще в блоге есть даже прямой ответ на то, как решать проблему с нехваткой полей для сортировки, но выкладывать её сюда посчитают, поди, за спойлеры))

Alexander Zuev
In BIM we trust
Facebook | Linkedin | Telegram

Message 31 of 61
Araa9977
in reply to: Severnik

Сейчас 0:50 по МСК, Уже пятница, значит можно публиковать решение)

 

Задачу я решил не полностью как планировал, т.к. она дальше не решается без использования более мощных инструментов автоматизирования чем Dynamo. 

 

! Мой способ не подразумевал использование Dynamo в проекте или ручного заполнения

 

Перед началом советую посмотреть видео Сергея Ковылина -Назначение отверстия

 

Вот моя спецификация:

 

(В ответе ниже этого сообщения)

 
 

1)Я добавил 8 функций отверстий, т.к. собираюсь использовать их все в реальной практике!

2)Сортирую по 4 полям

3)В Параметр ADSK_Наименование я подбираю через таблицу выбора.  

Снимок1.JPG

5) В Общем как-то так

 

Поговорим о достоинствах такого способа

1) Нет ручного заполнения и Dynamo, кроме параметра марки

2) Сделано одной спецификаций

 

А теперь минусы:

- Нужно заранее предусмотреть размеры отверстия

- Перегрузка ТВ и семейства. Семейство квадратного отверстия весит 20740 кб, а его таблица выбора 110375 Кб

- Вручную такого не сделать, я использовал DynamoSandbox для заполнения таблицы. Таблица насчитывает 2550000 строк без заголовка. Минимальный размер и кратность 10мм, максимальный 1000. Перебирается каждый вариант размера Длины-Ширина и оно перебираются с разными функциями

Например: 720х1000_АР_ОВ и 720х1000_АР Это две разные строки.

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

 

Мои варианты решения:

1) Если убрать из сортировки уровень, а сортировать по отметке (как и положено), то освобождается одно место для сортировки, и заполню его функцией отверстия. Тогда параметр ADSK_Наименование будет состоять из размеров и смогу предусмотреть больше вариантов размеров, ведь строк будет в 255 раз меньше(Кол-во комбинаций Функций АР ОВ ВК ТС СС ЭС ХС ТХ. И тогда смогу сделать ТВ для ниши. ТВ Квадратнго отверстия будет содержать вместо 2550000 строк, всего 10000, если не предусмотреть большего размера отверстий.

 

Такое решение я опубликую позже. В целом можно подытожить: Задача решается без ручного и динамоского заполнения в проекте поля для сортировки. Вкладываю проект и ТВ для круглоголового отверстия в екселе, экспортирует в csv кто захочет, квадратное не могу вложить, оно превышает 71 МБ

Message 32 of 61
Araa9977
in reply to: Araa9977

А спецификация не загрузилась. Вот она

 

Снимок.JPG

 

Снимок3.JPGСнимок2.JPG

Message 33 of 61
Anonymous
in reply to: Severnik

Решение. Revit 2019.2

0. Спецификацию делал по нескольким категориям 

1. Уходим от привязки к уровню, сразу минус одна лишняя сортировка.

Для получения заголовка "Ведомость отверстий 1-го этажа" и подобный нам понадобится параметр "ADSK_Отверстие_Отметка от нуля" и формула 

 

if(and(ADSK_Отверстие_Отметка от нуля > 0 мм, ADSK_Отверстие_Отметка от нуля < 4500 мм), "Ведомость отверстий 1-го этажа", if(and(ADSK_Отверстие_Отметка от нуля > 4501 мм, ADSK_Отверстие_Отметка от нуля < 9000 мм), "Ведомость отверстий 2-го этажа", "нет")) Сделал на 2 этажа, но логика простая.

 

2. Делаем столбец с размерами через обычную сцепку параметров.

evil327_0-1588894112879.png

3. Сортировка делаем, по Заголовку. ADSK_Марка и ADSK_Отметка от этажа

Т.к. у нас ADSK_Марка - уникальная для каждого размера отверстия, то и сортировка по размера и функции не нужна.

 

 

Message 34 of 61
K.Rishat
in reply to: Severnik

Прикладываю свой файл с ведомостью отверстий. 

Реализовано все, указанное в первоначальном задании.
Без использования динамо и скриптов. 

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

Общий вид.png

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

После создания отверстий требуется вручную заполнить два поля для каждого этажа.

Для этого сделана отдельная спецификация.

Заполнение вручную.png

В этой спецификации надо вручную заполнить название ведомости отверстий для каждого этажа

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

Заполнять данную таблицу следует в самом конце, после того, как отверстия уже расставлены.

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

Message 35 of 61
PavelAnd
in reply to: Severnik

@Severnik, спасибо за интересную задачку! В моем случае, для решения все параметры можно структурировать следующим образом: высота от нуля, габариты, раздел и комментарий (4 параметра и 4 фильтра в спецификации). Добавил параметр «ADSK_Наименование» для габарита и «ADSK_Отверстие_Отметка от нуля» для общей высоты.

Вариант 1. Я решил не экспериментировать и сделать привычно через Dynamo. Сделал скрипт в котором выставляем необходимый параметр сортировки и запускаем. Заполнятся все поля и в том числе «Марка» согласно указанной в скрипте сортировке. Но при таком способе придется запускать Dynamo после добавления новых отверстий( 

 

Challenge_Dyn.gif


Вариант 2. Потом я вспомнил, что @kovyljan  советовал поразбираться с таблицами выбора и что с их помощью можно настраивать формулу на параметры экземпляра в семействе. Вот и настало время! Поискал информацию, создал таблицы, загрузил и понял, что формула работает только если находится строгое соответствие всех параметров. Т.е. в таблицу нужно записать все возможные габариты проемов. Ну и суммарную отметку расположения проема я не смог получить (возможно плохо старался 😊)

 

Challenge_Fam.gif

 

Вариант 3. После двух попыток терять уже было нечего, и я решил сделать надстройку, которая сама будет заполнять данные в мои параметры (давно хотел поэкспериментировать). Использовал для этого Dynamic Model Updater. Добавил нужные условия, триггеры и загрузил надстройку в проект (для этого нужно скопировать файлы СhallengeUpdater.dll и ChallengeUpdater.addin по адресу «C:\ProgramData\Autodesk\Revit\Addins\2019»). Параметры сами заполняются и корректируются при изменении элементов и добавлении новых. Так мне уже нравится больше! Ну и с помощью этого совета сделал надстройку для маркировки.

 

Challenge_Api.gif


Все файлы с моделями для тестирования, семействами, таблицами и скриптами во вложении! Тестировал в Revit2019.2 и Dynamo 2.0.3. За код прошу прощения, я любитель) Домашним заданием для желающих будет создать семейство круглой ниши и доработать все способы заполнения.

 

Best regards, Pavel Plotitsyn.

Message 36 of 61
tyapkovsasha
in reply to: Severnik

Решение задачи по сортировки можно выполнить с помощью расчетного параметра и объединенного параметра. Следует учитывать что данный способ работает только с загружаемыми семействами и для параметров, которые можно так или иначе представить в виде числа (длина, площадь, объем, число и т.д.).

Также следует понимать, что параметры ADSK_Позиция, ADSK_Этаж нужно заполнять вручную

Для этого нужно выполнить небольшую подготовку:

1. Во все семейства отвертий добавить параметры: ADSK_Размер_Глубина, ADSK_Размер_Ширина, ADSK_Размер_Высота, ADSK_Размер_Радиус и привязать их к существующим (если они есть, если нет, то обнулить)

tyapkovsasha_0-1588918759918.jpeg

2. В параметры проекта добавляем: ADSK_Этаж,  ADSK_Позиция

tyapkovsasha_1-1588918759957.jpeg

3. Добавляем все необходимые поля и все поля с размерами:

tyapkovsasha_2-1588918759969.jpeg

4. Создаем объединенный параметр по первоначальным параметрам (ADSK_Отвертие_Глубина, ADSK_Отвертие_Ширина и т.д.) с нужными префиксами.

tyapkovsasha_3-1588918759980.jpeg

5. Создаем расчетный параметр сортировки с формулой, в которой используются параметры, добавленные на первом шаге, вид формулы будет такой параметр1*10^12+параметр2*10^8+..., то есть сортировка осуществляется сначала по параметру1, затем по параметру2 и т.д.:

tyapkovsasha_4-1588918759986.jpeg

6. Задаем сортировку:

tyapkovsasha_5-1588918759993.jpeg

 

Message 37 of 61
K.Rishat
in reply to: tyapkovsasha


@tyapkovsasha  написал (-а):

1. Во все семейства отвертий добавить параметры: ADSK_Размер_Глубина, ADSK_Размер_Ширина, ADSK_Размер_Высота, ADSK_Размер_Радиус и привязать их к существующим (если они есть, если нет, то обнулить)

 А как быть с объединением параметров, чтобы не выдавало лишних нулевых позиций и не перемешивало суффиксы и префиксы от разных типов отверстий?

Message 38 of 61
iliashkolabim
in reply to: Severnik

Всем привет!

Сортировка по моему решению проходит автоматически, динамо используется для маркировки.

1. В семействах отверстий создаётся дополнительный общий параметр ADSK_Отверстия_Сортировка и в него прописывается формула - 50000 * Ширина + 1000 * Высота + 100 * Глубина + 10 * Диаметр + Отметка. Если каких то параметров в семействе нет, соответственно в формулу они не вводятся. Цель - получить уникальное значение сортировки для этого элемента, заменив 4 параметра одним.

iliashkolabim_0-1588920708870.png

 

2.  Параметры группировки / сортировки спецификации

iliashkolabim_1-1588920788763.png

3. Результат

iliashkolabim_2-1588920854810.png

4. Маркировка происходит через скрипт dynamo. Вот это был наибольший челлендж, потому что в скрипте  нужно группировать элементы по 4-ём параметрам.

Message 39 of 61
tyapkovsasha
in reply to: K.Rishat

Объединенный параметр выполняется по параметрам: ADSK_Отвертие_Ширина, ADSK_Отвертие_Глубина и т.д. (отсутствуют нулевые парметры)

а расчетный параметр выполняется по параметрам: ADSK_Размеры_Ширина, ADSK_Размеры_Глубина и т.д.

Message 40 of 61
K.Rishat
in reply to: tyapkovsasha


@tyapkovsasha  написал (-а):

 (отсутствуют нулевые парметры)

Вы уверены, что нулевые параметры не попадают в объединенный? 
Может поделитесь файлом проекта, чтобы посмотреть?

У меня во всяком случае так не получается сделать. Если параметр у семейства имеется и равен нулю, то объединение параметров так и выводит 0, добавляя к нему суффикс и префикс.
Если же параметр имеется и у него нет никакого значения (или параметр отсутствует в семействе), то только такие параметры не отображаются при объединении. Но с такими параметрами не работают формулы в спецификации.
Можно конечно сделать формулу в семействе, как выше показано. Но там есть ограничение по максимальному значению. Поэтому в своем варианте я вынес формулу в спецификацию.

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

Post to forums  

Autodesk Design & Make Report