За почти 40 лет существования основных частей стандарта ISO 10303, на его основе было разработано и стандартизировано огромное количество форматов, описывающих объекты и данные из разных областей деятельности человечества, самыми основными из них является серия форматов STEP, популярный ныне формат описания Информационных Моделей Здания — IFC, формат описания металлоконструкций CIS/2 и другие менее распространённые, такие как, например, формат описания режущего инструмента Sandvik (ISO-13399).
Читать далее «Форматы данных на основе языка EXPRESS»Месяц: Декабрь 2021
Язык EXPRESS. Глава 4. Тип данных SELECT.
Во многих случаях при моделировании систем или прототипов удобно в качестве типа атрибута задавать не какой-то один конкретный тип, а целый набор возможных типов, например, в формате IFC в классе IfcPropertySingleValue в поле с именем NominalValue можно задать как целое, так вещественное или даже строковое значение, да при этом ещё и уточнить смысл этой величины, например, IfcSimpleValue/IfcReal (в этом случае значение NominalValue будет просто абстрактной величиной конкретного типа), IfcMeasureValue/IfcLengthMeasure (в этом случае NominalValue будет содержать измерение длины в указанных единицах), IfcDerivedMeasureValue/IfcFrequencyMeasure (в этом случае NominalValue будет содержать измерение частоты чего-либо). В EXPRESS подобные типы, разрешающие выбор, называются SELECT. SELECT может предоставлять выбор из любых возможных в EXPREEE типов, включая другие SELECTы, перечисляемые типы ENUMERATION и их коллекции. Упрощённо, аналогом SELECT в языке C++ является хорошо всем известный тип Variant, в .exp файле объявление типа SELECT выглядит следующим образом:
TYPE SelectType = SELECT (RealType ,ReferenceType ,EnumType); END_TYPE;
Язык EXPRESS. Глава 3. Тип данных ENUMERATION.
Тип ENUMERATION в языке EXPRESS является конструируемым (constructed) типом, а ближайшей его аналогией является enum class языка C++. Тип используется для задания перечисляемых значений, в реализациях СИДД работа с атрибутами перечисляемого типа ведётся через строковые значения, так как при наличии одинаковых значений в процессе создания новых ревизий схемы может меняться их индексация, если были добавлены новые значения или изменился порядок старых (например, изменения индексации наблюдаются в версиях формата IFC).
TYPE DirectionsEnum = ENUMERATION OF (NORTH ,EAST ,SOUTH ,WEST); END_TYPE;Читать далее «Язык EXPRESS. Глава 3. Тип данных ENUMERATION.»