Schema: shape_dimension_schema

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