Schema: kinematic_property_schema

Source : ISO 10303-105



SCHEMA kinematic_property_schema;

REFERENCE FROM kinematic_structure_schema   -- ISO 10303-105
  (kinematic_link_representation,
   kinematic_link_representation_association,
   mechanism_representation);

REFERENCE FROM kinematic_topology_schema   -- ISO 10303-105
  (kinematic_link,
   kinematic_topology_representation_select);

REFERENCE FROM product_property_definition_schema   -- ISO 10303-41
  (property_definition,
   product_definition_shape);

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

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

REFERENCE FROM representation_schema   -- ISO 10303-43
  (representation_relationship,
   using_representations);


ENTITY context_dependent_kinematic_link_representation;
  representation_relation : kinematic_link_representation_association;
  represented_product_relation : product_definition_relationship_kinematics;
END_ENTITY;

ENTITY kinematic_property_definition_representation
  ABSTRACT SUPERTYPE OF (ONEOF (kinematic_property_topology_representation,
                                kinematic_property_mechanism_representation))
  SUBTYPE OF (property_definition_representation);
  SELF\property_definition_representation.definition : product_definition_kinematics;
END_ENTITY;

ENTITY kinematic_property_mechanism_representation
  SUBTYPE OF (kinematic_property_definition_representation);
  SELF\property_definition_representation.used_representation : mechanism_representation;
  base : kinematic_link_representation;
WHERE
  WR1: SIZEOF( QUERY( i <* used_representation.items | (base :=: i\representation_relationship.rep_1) OR (base :=: i\representation_relationship.rep_2))) > 0;
END_ENTITY;

ENTITY kinematic_property_topology_representation
  SUBTYPE OF (kinematic_property_definition_representation);
  SELF\property_definition_representation.used_representation : kinematic_topology_representation_select;
  base : kinematic_link;
WHERE
  WR1: used_representation IN using_representations(base);
END_ENTITY;

ENTITY product_definition_kinematics
  SUBTYPE OF (property_definition);
  SELF\property_definition.definition : product_definition;
INVERSE
  representation_relation : kinematic_property_definition_representation FOR definition;
UNIQUE
  UR1: definition;
END_ENTITY;

ENTITY product_definition_relationship_kinematics
  SUBTYPE OF (property_definition);
  SELF\property_definition.definition : product_definition_relationship;
UNIQUE
  UR1: definition;
END_ENTITY;

SUBTYPE_CONSTRAINT kps_property_definition_subtypes FOR property_definition;
  ONEOF (product_definition_kinematics,
         product_definition_relationship_kinematics,
         product_definition_shape);
END_SUBTYPE_CONSTRAINT;

END_SCHEMA;  -- kinematic_property_schema