Schema: configuration_management_schema

Source : ISO 10303-44



SCHEMA configuration_management_schema;

REFERENCE FROM basic_attribute_schema   -- ISO 10303-41
  (description_attribute_select,
   get_description_value,
   get_name_value,
   name_attribute_select);

REFERENCE FROM effectivity_schema   -- ISO 10303-41
  (effectivity);

REFERENCE FROM product_concept_schema   -- ISO 10303-44
  (product_concept,
   product_concept_feature_association);

REFERENCE FROM product_definition_schema   -- ISO 10303-41
  (product_definition,
   product_definition_effectivity,
   product_definition_formation);

REFERENCE FROM product_structure_schema   -- ISO 10303-44
  (product_definition_occurrence,
   product_definition_usage);

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


TYPE cms_description_attribute_select = SELECT BASED_ON description_attribute_select WITH
   (configuration_design);
END_TYPE;

TYPE cms_name_attribute_select = SELECT BASED_ON name_attribute_select WITH
   (configuration_design);
END_TYPE;

TYPE configuration_design_item = SELECT
   (product_definition,
    product_definition_formation,
    product_definition_occurrence);
END_TYPE;

ENTITY configurable_item
  SUBTYPE OF (configuration_item);
  item_concept_feature : SET[1:?] OF product_concept_feature_association;
END_ENTITY;

ENTITY configuration_design;
  configuration : configuration_item;
  design : configuration_design_item;
DERIVE
  name : label := get_name_value (SELF);
  description : text := get_description_value (SELF);
UNIQUE
  UR1: configuration, design;
WHERE
  WR1: SIZEOF (USEDIN (SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  WR2: SIZEOF (USEDIN (SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;

ENTITY configuration_effectivity
  SUBTYPE OF (product_definition_effectivity);
  configuration : configuration_design;
UNIQUE
  UR1: configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id;
WHERE
  WR1: 'PRODUCT_STRUCTURE_SCHEMA.PRODUCT_DEFINITION_USAGE' IN TYPEOF (SELF\product_definition_effectivity.usage);
END_ENTITY;

ENTITY configuration_item;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  item_concept : product_concept;
  purpose : OPTIONAL label;
END_ENTITY;

ENTITY configuration_item_relationship;
  name : label;
  description : OPTIONAL text;
  relating_configuration_item : configuration_item;
  related_configuration_item : configuration_item;
END_ENTITY;

END_SCHEMA;  -- configuration_management_schema