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

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

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

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

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

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

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

Разделители

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

Сортировка

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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