«Объединение параметров» в спецификации

Начал писать статью два года назад, опубликовал только сейчас. Иду на рекорд!

«Объединение параметров», которое в 2017 версии появилось — супер-крутая штука, если её правильно приготовить:

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

Хвала Автодеску, что они следят за нашими проблемами и оперативно их исправляют! </sarcasmmode>

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

Как всегда, добро пожаловать под кат.

Разделители

Казалось бы, инструмент бесхитростный — добавляй параметры, задавай префиксы/суффиксы и готово. Интерфейс вообще похож на объединение параметров в «Метке» в семействах марок. Но нюансов хватает!

Например, чем отличается «Разделитель» и «Суффикс»? Тут надо понять, что произойдет, если в семействе нет параметра, добавленного в «Объединенный параметр». В этом случае префикс и суффикс тоже отключатся:

В примере выше у прямоугольной колонны нет «Диаметра», поэтому и значок диаметра тоже не выводится, зато выводится текст «(h)». «Разделитель» же будет выведен в любом случае (хотя сложно придумать, где это понадобится).

 

Составная маркировка

Часто бывает так, что в «Наименование» надо вывести не фиксированный текст, а указать там какие-то характеристики. Вот на примере окон-дверей:

Первый пункт — 2 комбинации, второй — еще две, уже четыре; вариантов высоты может быть десяток (уже 40!), еще десять вариаций ширины (400!), еще и несколько вариантов исполнения. Как вывести такой текст? Испокон веков использовались либо таблицы типоразмеров, либо таблицы выбора, где в текстовый параметр прописывались все возможные комбинации. Но теперь нам в этом деле поможет объединенный параметр!

Но если в одну спецификацию надо выводить разнотипные элементы, уже получается сложно. Например, есть у вас пластина с параметрами «Наименование», «Рзм.Длина» и «Рзм.Ширина», и вы вывели их в объединенный параметр «Наименование». Вроде бы всё хорошо:

Но затем нарисовали балку, в которой тоже есть «Рзм.Длина», но в марку его выводить не требуется; поставили уголок — а у него размеры уже  «Наименовании» записаны… Вот и закончилась вся красота:

Удалять из семейств параметры тоже нельзя — они где-то еще могут использоваться. Заранее продумать все эти комбинации трудоемко.

Што ж делать? Я ввел набор параметров специально для использования в объединенном параметре:

(с помощью дополнительных параметров можно решить любую проблему кроме слишком большого числа параметров!)

Добавляем их в «Объединенный»:

Мне хватает по 3 блока параметров, но можно и еще ввести. Затем в зависимости от семейства добавляем необходимые и завязываем формулами:

Вуаля! Без особого труда свел в одной спецификации и арматуру, и окна, и насосы. При этом достаточно лишь помнить, в каком порядке склеиваются параметры — например, «Число1» в разных семействах спокойно может означать разные характеристики. В результате можно удобно, как в конструкторе, выводить практически любой сложный текст, не беспокоясь о числе возможных его комбинаций. Ссылка на файлик.

Расчетный параметр в составе «объединенного»

А тут вот особенно ничего и не расскажешь. В объединенный параметр можно выводить только параметры проекта и общие параметры семейств, расчетные параметры не добавить. Придется либо вычислять их внутри семейств, либо как в старые добрые времена — выводить отдельным столбцом. Например, так сделано в спецификации арматуры, где арматура — системное семейство и «Длина» вычисляется в самом проекте, а не в семействе, но при этом для арматуры в погонных метрах отключение текста сделано расчетным параметром. Снова отдельные столбцы:

 

Округление и единицы измерения

Ожидаемо, что для объединенного параметра нельзя задать «Форматирование» — всё-таки в него может и текст, и числа входить. Что же делать, если надо поменять единицы измерения или округление?

А всего-то нужно добавить параметры, входящие в «Объединенный параметр», как отдельные поля. После этого, если поменять «Форматирование» для этого параметра — так же изменится и значение в «Объединенном». Чудеса!

 

Сортировка

Большим разочарованием для меня стало то, что по объединенному параметру нельзя задавать сортировку (да и фильтр тоже). Приходится опять же добавлять параметры как отдельные поля и сортировать по ним:

Более того, объединенный параметр интересно себя ведет, когда что-то ломается в сортировке. Если в одной строке оказались элементы с разными значениями параметра — в «объединенном» они просто отключатся.

Бывает и более сложная ситуация. Вот есть у меня два одинаковых стержня, один сделан системной арматурой ( неё есть параметр «Диаметр стержня»), другой — IFC-семейством («Рзм.Диаметр»). Добавляю два этих параметра в «Объединенный». Пока элементы не объединены в одну строку — всё выглядит хорошо, но включаю группировку, и что вижу? Ничего!

В случае, если в одной строке оказались несколько элементов, «Объединенный параметр» сработает только тогда, когда параметр есть и одинаков у всех элементов в этой строке. У меня же у системной арматуры нет «Рзм.Диаметра», у IFC — наоборот. Вот и получили пустое поле! Именно по этой причине мне пришлось продублировать «Диаметр стержня» в «Рзм.Диаметр» для системной арматуры:

Напоминаю, что если не хватает полей для сортировки — можно пользоваться дедушкиным способом с сортировкой по расчетному параметру.

 

Текст в две строки

В шаблоне Weandrevit вы могли заметить такую штуку — металлопрокат в спецификацию закладных деталей выводится в две строки, с указанием марки стали во второй строке. Как это сделано?

Очень просто — нужно вставить символ переноса строки в «Префикс» для параметров, которые должны быть перенесены во вторую строку. Если кто-то не знал, при нажатии Enter в текстовом редакторе вставляется специальный символ, который не выводится на печать, но указывает программе, что здесь начинается новый абзац (эти же символы видно в Word, если включить режим «Показать непечатаемые символы»). Откуда взять этот «символ»? Я обычно просто запускаю Блокнот, нажимаю Enter, через Ctrl+A выделяю всё и копирую, а затем вставляю в «Префикс» нужного параметра:

В спецификации покажется, что вторая строка вообще пропала, но на листе всё будет нормально!

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

Танцами с бубном можно даже сделать верхнюю строку с подчеркиванием, но вместо этого можно воспользоваться пунктом К.1 в ГОСТ Р 21.1101-2013:

 > В спецификации, выполненной в электронном виде, горизонтальную черту, входящую в обозначение материалов (проката, труб и т.п.), допускается заменять на косую черту (/);

Поэтому в префикс поставим сначала символ «/», а затем скопированный символ переноса строки. Тогда, если в семействе появится этот параметр — автоматически и добавится вторая строка, и символ наклонной черты:

 

Проблемы с исчезновением параметра

Вы можете столкнуться с таким. В спецификации всё вроде бы нормально, заходите и делаете любое действие (фильтр включаете, например), нажимаете Ок, и столбец с параметром удаляется. Фильтр, за що ты так с нами?

Не трогайте фильтр, он не виноват! Ломается от любого изменения, просто чаще всего меняем именно фильтр. А спецификация была сломана еще задолго до этого, просто каким-то чудом продолжает работать. А параметр удаляется совсем, и способа вернуть его обратно я не нашел. Что за хоррор-истории?!

Для работы объединенного параметра нужно, чтобы каждый из параметров, входящих в «Объединенный», хоть где-то присутствовал в проекте. Например, у вас в проекте были семейства листовой стали с параметром Рзм.Толщина, и вы добавили этот параметр в «Объединенный». Но потом удалили эти семейства за ненадобностью (из «Диспетчера проекта» или через «Удалить неиспользуемые»). Со спецификациями всё будет в порядке, но как только попытаете в них что-то изменить — столбец полностью удалится! Наш случай. То же случится, если скопировать спецификацию в новый файл, где не загружены подходящие семейства — столбец тоже исчезнет.

Чтобы защититься от такой беды, я сделал фиктивное семейство, содержащее в себе параметры из моего файла общих параметров, и держу его загруженным в проекте — тогда с объединенным параметром точно всё будет в порядке:

То же и при копировании спецификаций — сначала загружаем семейство «Определения параметров» (его даже в модели размещать не надо), а потом копировать спецификации. А «Очисткой неиспользуемых» надо пользоваться аккуратно и не очищать всё подряд — так можно легко весь проект испортить.

На этом сегодня всё! Вот опять: казалось бы, простая тема, а в результате наклепал целую диссертацию. Ну, надеюсь, пригодится. Всем хорошего дня!