Коротко
- IFS проверяет условия по порядку и возвращает значение, соответствующее первому истинному условию.
- Функция поддерживает не более 127 логических условий.
- Тип данных и единицы измерения результирующих значений должны совпадать.
- Если значение по умолчанию не задано и ни одно условие не истинно, результатом будет Undefined.
Функция IFS, описанная в справке Archicad 29, последовательно проверяет несколько логических условий и возвращает значение, соответствующее первому истинному условию. В этом руководстве на примерах разбираются синтаксис функции и важные моменты при составлении условий. В документе Graphisoft о Property Manager в Archicad 26 отдельно рассматриваются управление свойствами проекта и типами данных. Эти два документа посвящены разным темам и версиям; здесь не предполагается, что IFS работает с выражениями свойств.
Как работает функция IFS?
IFS можно использовать вместо нескольких вложенных выражений IF. Функции задаются условия и соответствующие им значения. Условия проверяются по порядку; результатом становится значение первого истинного условия. Поэтому порядок записи условий важен: если одно из более ранних условий истинно, до проверки последующих дело не дойдёт.
В примере из справки Archicad балки делятся на три группы по длине. Если длина левой стороны больше 600 cm, результатом будет «Long», если меньше 200 cm — «Short». Для балок, которые не попадают ни под одно из этих условий, в качестве значения по умолчанию используется «Medium»:
IFS (Length Left > 600 cm, "Long", Length Left < 200 cm, "Short", TRUE, "Medium")Здесь Length Left означает длину левой стороны балки. В исходном документе поясняется, что «левая» и «правая» стороны определяются относительно опорной оси балки, а направление оси зависит от того, в какую сторону пользователь перемещает курсор при построении балки. В этом примере балкам, не соответствующим двум граничным условиям, присваивается результат «Medium».
IFS поддерживает не более 127 логических условий. Аргументы функции можно разделять запятой или точкой с запятой; по данным Graphisoft, используемый разделитель зависит от региональных настроек компьютера.
Подготовка условий: шаг за шагом
Определите классы результатов. Заранее запишите, какое значение должно возвращаться для каждого условия. В примере с балками это текстовые значения «Long», «Short» и «Medium». Тип данных и единицы измерения всех результирующих значений должны совпадать.
Расположите условия в нужном порядке. Поскольку IFS возвращает результат при первом истинном условии, порядок проверок влияет на результат. В примере сначала проверяется длина больше 600 cm, затем — меньше 200 cm; для остальных случаев задано значение по умолчанию. В своём сценарии определите, какое условие нужно проверять первым.
Свяжите каждое условие с соответствующим значением. Синтаксис выглядит так:
IFS (Logical1, Value1, [Logical2, Value2]...). Логическое выражение оценивается как истинное или ложное; после каждого логического условия указывается значение, которое возвращается, если это условие истинно. В исходном документе указано, что можно задать не более 127 логических условий.Решите, нужно ли значение по умолчанию. Если ни одно условие не истинно и отдельное значение по умолчанию не задано, результатом будет
Undefined. Если требуется назначить значение всем возможным случаям, в качестве последнего логического условия можно добавитьTRUE, а затем — значение по умолчанию. Его тип данных также должен совпадать с типами остальных результатов.Проверьте разделитель и типы результатов. В зависимости от региональных настроек среды, где используется выражение, может потребоваться запятая или точка с запятой. Также проверьте результаты и убедитесь, что они соответствуют требованиям к одинаковым типам данных и единицам измерения. Согласно документу Archicad, разделитель определяется автоматически на основе региональных настроек.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
| Число логических условий | Не более 127 | Верхний предел количества условий, которые можно задать в функции. |
| Случай по умолчанию | TRUE и значение по умолчанию в последнем условии | Возвращает результат для случаев, которые не соответствуют предыдущим условиям. |
| Результирующие значения | Одинаковые тип данных и единицы измерения | Обеспечивает совместимость результатов IFS друг с другом. |
| Разделитель аргументов | Запятая или точка с запятой в зависимости от региональных настроек | Помогает правильно разделить аргументы выражения. |
Разграничение с документом Property Manager
В документе Property Manager для Archicad 26 описаны создание свойств и выбор типов данных. Открыть это окно можно через Options > Property Manager или через Classification Manager. В документе перечислены такие типы данных для свойств, как String, Number, Integer, Area, Length, Angle, Volume, Tags List, Option Set и True/False. Это отдельный справочный материал для тех, кто хочет настраивать свойства проекта; он не подтверждает, что IFS можно использовать с этими свойствами.
В документе указано, что типы Tags List и Option Set нельзя использовать в качестве свойств, основанных на выражениях. Тип Option Set с отключённым множественным выбором можно использовать внутри выражения. Это правила, касающиеся типов свойств в Property Manager. Их не следует смешивать с требованием к типам данных и единицам измерения результатов самой функции IFS; выводы следует ограничивать тем, что подтверждено источниками. Кроме того, сведения о Property Manager взяты из документа по Archicad 26, а описание IFS — со страницы справки Archicad 29.
Что это значит для рабочих процессов в архитектуре и визуализации?
Последовательная проверка условий в одной функции IFS показывает, как можно задавать классификацию по нескольким условиям. Документированный пример с классификацией балок по длине наглядно показывает, как назначать разные результаты в зависимости от размеров элементов проекта. Архитектурные и интерьерные команды могут использовать этот пример, чтобы разобраться в порядке условий и идее значения по умолчанию; однако здесь не приводится подтверждённая инструкция по применению IFS в других областях свойств.
В источниках нет сведений о требованиях к оборудованию, влиянии на время рендеринга, условиях лицензирования или совместимости с другими программами. Поэтому оценивать практическое применение функции следует только в рамках задокументированного поведения и синтаксиса. Особенно важно учитывать различия между версиями: описание IFS относится к Archicad 29, а материал о Property Manager — к Archicad 26.
Распространённые ошибки
Игнорировать порядок условий: возвращается результат первого истинного условия, поэтому записывайте условия в соответствии с нужным приоритетом.
Забыть значение по умолчанию: если ни одно условие не истинно и значение по умолчанию не задано, возвращается
Undefined.Использовать разные типы результатов: все результаты IFS должны соответствовать требованиям к одинаковым типам данных и единицам измерения.
Выбрать неверный разделитель: в зависимости от региональных настроек компьютера может использоваться запятая или точка с запятой.
Считать разные документы подтверждением единого сценария использования: документы о Property Manager и IFS посвящены разным версиям и темам; они не подтверждают возможность их совместного использования.
Источники
Источников: 3Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Главное практическое преимущество IFS — возможность последовательно описать в одной функции результаты, зависящие от нескольких условий. Пример с длиной балки помогает наглядно понять эту логику на архитектурных элементах. Однако источники не подтверждают, что эту функцию можно использовать при управлении свойствами; офисам важно проверить документацию для используемой версии Archicad, прежде чем принимать решение о её применении.
В источниках не указаны особые требования к оборудованию или лицензированию. Командам в Турции стоит начать с изучения логики условий и значения по умолчанию на примере, а затем проверить, поддерживается ли в документации функция, которую они собираются использовать в своих проектах. Внимание к версии и типам данных поможет избежать лишних проб и ошибок.
Частые вопросы
Что делает функция IFS в Archicad?
Она проверяет условия по порядку и возвращает значение, соответствующее первому истинному условию. Функцию можно использовать вместо нескольких вложенных выражений IF.
Сколько условий можно задать в функции IFS Archicad?
Согласно справке Graphisoft для Archicad 29, IFS поддерживает не более 127 логических условий.
Что возвращает IFS, если ни одно условие не истинно?
Если значение по умолчанию не задано, результатом будет `Undefined`. В качестве последнего условия можно добавить `TRUE`, а затем — значение по умолчанию.



