Schema: shape_dimension_schema

Source : ISO 10303-47



SCHEMA shape_dimension_schema;

REFERENCE FROM measure_schema   -- ISO 10303-41
  (measure_with_unit);

REFERENCE FROM representation_schema   -- ISO 10303-43
  (representation);

REFERENCE FROM qualified_measure_schema   -- ISO 10303-45
  (measure_representation_item,
   qualified_representation_item);

REFERENCE FROM product_property_representation_schema   -- ISO 10303-41
  (shape_representation);

REFERENCE FROM product_property_definition_schema   -- ISO 10303-41
  (shape_aspect,
   shape_aspect_relationship);

REFERENCE FROM support_resource_schema   -- ISO 10303-41
  (label,
   text);


TYPE angle_relator = ENUMERATION OF
   (equal,
    large,
    small);
END_TYPE;

TYPE dimensional_characteristic = SELECT
   (dimensional_location,
    dimensional_size);
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);
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;
WHERE
  WR1: applies_to.product_definitional = TRUE;
END_ENTITY;

ENTITY dimensional_size_with_path
  SUBTYPE OF (dimensional_size);
  path : shape_aspect;
END_ENTITY;

ENTITY shape_dimension_representation
  SUBTYPE OF (shape_representation);
WHERE
  WR1: SIZEOF (QUERY (temp <* SELF\representation.items | NOT ('QUALIFIED_MEASURE_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (temp)))) = 0;
  WR2: SIZEOF (SELF\representation.items) <= 3;
  WR3: SIZEOF (QUERY (pos_mri <* QUERY (real_mri <* SELF\representation.items | 'REAL' IN TYPEOF (real_mri\measure_with_unit.value_component) ) | NOT (pos_mri\measure_with_unit.value_component > 0.0 ))) = 0;
END_ENTITY;

END_SCHEMA;  -- shape_dimension_schema