Source : ISO 10303-47
SCHEMA shape_dimension_schema;
REFERENCE FROM
basic_attribute_schema -- ISO 10303-41
(get_id_value,
id_attribute,
id_attribute_select);
REFERENCE FROM
measure_schema -- ISO 10303-41
(measure_with_unit);
REFERENCE FROM
product_property_definition_schema -- ISO 10303-41
(shape_aspect,
shape_aspect_relationship);
REFERENCE FROM
product_property_representation_schema -- ISO 10303-41
(item_identified_representation_usage_definition,
shape_representation);
REFERENCE FROM
qualified_measure_schema -- ISO 10303-45
(descriptive_representation_item,
measure_representation_item,
qualified_representation_item);
REFERENCE FROM
representation_schema -- ISO 10303-43
(representation,
compound_representation_item);
REFERENCE FROM
support_resource_schema -- ISO 10303-41
(identifier,
label,
text);
REFERENCE FROM
geometry_schema -- ISO 10303-42
(placement);
TYPE angle_relator =
ENUMERATION
OF
(equal,
large,
small);
END_TYPE;
TYPE dimensional_characteristic =
SELECT
(dimensional_location,
dimensional_size);
END_TYPE;
TYPE sd_id_attribute_select =
SELECT
BASED_ON
id_attribute_select
WITH
(dimensional_size);
END_TYPE;
TYPE sds_item_identified_representation_usage_definition =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
item_identified_representation_usage_definition
WITH
(dimensional_size);
END_TYPE;
TYPE shape_dimension_representation_item =
SELECT
(compound_representation_item,
descriptive_representation_item,
measure_representation_item,
placement);
END_TYPE;
ENTITY angular_location
SUBTYPE OF (dimensional_location);
angle_selection : angle_relator;
END_ENTITY;
ENTITY angular_size
SUBTYPE OF (dimensional_size);
angle_selection : angle_relator;
END_ENTITY;
ENTITY dimensional_characteristic_representation;
dimension : dimensional_characteristic;
representation : shape_dimension_representation;
END_ENTITY;
ENTITY dimensional_location
SUPERTYPE OF
(ONEOF (angular_location,
dimensional_location_with_path))
SUBTYPE OF (shape_aspect_relationship);
WHERE
WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect;
WR2: SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship.related_shape_aspect.of_shape;
END_ENTITY;
ENTITY dimensional_location_with_path
SUBTYPE OF (dimensional_location);
path : shape_aspect;
END_ENTITY;
ENTITY dimensional_size
SUPERTYPE OF
(ONEOF (angular_size,
dimensional_size_with_path));
applies_to : shape_aspect;
name : label;
DERIVE
id : identifier := get_id_value(SELF);
UNIQUE
UR1: id, applies_to;
WHERE
WR1: applies_to.product_definitional = TRUE;
WR2: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY dimensional_size_with_path
SUBTYPE OF (dimensional_size);
path : shape_aspect;
END_ENTITY;
ENTITY directed_dimensional_location
SUBTYPE OF (dimensional_location);
END_ENTITY;
ENTITY shape_dimension_representation
SUBTYPE OF (shape_representation);
SELF\representation.items : SET[1:?] OF shape_dimension_representation_item;
END_ENTITY;
END_SCHEMA; -- shape_dimension_schema