Schema: aic_draughting_elements

Source : ISO 10303-506



SCHEMA aic_draughting_elements;

USE FROM draughting_element_schema   -- ISO 10303-101
  (dimension_curve,
   dimension_curve_directed_callout,
   dimension_curve_terminator,
   draughting_callout,
   draughting_callout_relationship,
   leader_curve,
   leader_directed_callout,
   leader_terminator,
   projection_curve,
   projection_directed_callout);

USE FROM presentation_definition_schema   -- ISO 10303-46
  (annotation_text_occurrence);


ENTITY angular_dimension
  SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;

ENTITY curve_dimension
  SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;

ENTITY datum_feature_callout
  SUBTYPE OF (draughting_callout);
END_ENTITY;

ENTITY datum_target_callout
  SUBTYPE OF (draughting_callout);
END_ENTITY;

ENTITY diameter_dimension
  SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;

ENTITY dimension_callout_component_relationship
  SUBTYPE OF (draughting_callout_relationship);
WHERE
  WR1: SELF.name IN ['prefix', 'suffix'];
  WR2: 'AIC_DRAUGHTING_ELEMENTS.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF (SELF.relating_draughting_callout);
  WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) *['AIC_DRAUGHTING_ELEMENTS.LEADER_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.PROJECTION_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.DIMENSION_CURVE_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.STRUCTURED_DIMENSION_CALLOUT']) = 0;
  WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents;
  WR5: ((SELF.name = 'prefix') AND(SIZEOF (QUERY (ato <* QUERY (con <* SELF.related_draughting_callout.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name = 'prefix text'))) = 0));
  WR6: ((SELF.name = 'suffix') AND(SIZEOF (QUERY (ato <* QUERY (con <* SELF.related_draughting_callout.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name = 'suffix text'))) = 0));
END_ENTITY;

ENTITY dimension_callout_relationship
  SUBTYPE OF (draughting_callout_relationship);
WHERE
  WR1: SELF.name IN ['primary', 'secondary'];
  WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) *['AIC_DRAUGHTING_ELEMENTS.ANGULAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.CURVE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.DIAMETER_DIMENSION','AIC_DRAUGHTING_ELEMENTS.LEADER_DIRECTED_DIMENSION','AIC_DRAUGHTING_ELEMENTS.LINEAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.ORDINATE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.RADIUS_DIMENSION'])>=1;
  WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) *['AIC_DRAUGHTING_ELEMENTS.DIMENSION_CURVE_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.PROJECTION_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.LEADER_DIRECTED_CALLOUT']) = 0;
  WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents;
END_ENTITY;

ENTITY dimension_pair
  SUBTYPE OF (draughting_callout_relationship);
WHERE
  WR1: SELF.name IN ['chained', 'parallel'];
  WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) *['AIC_DRAUGHTING_ELEMENTS.ANGULAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.CURVE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.DIAMETER_DIMENSION','AIC_DRAUGHTING_ELEMENTS.LINEAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.ORDINATE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.RADIUS_DIMENSION'])=1;
  WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) *['AIC_DRAUGHTING_ELEMENTS.ANGULAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.CURVE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.DIAMETER_DIMENSION','AIC_DRAUGHTING_ELEMENTS.LINEAR_DIMENSION','AIC_DRAUGHTING_ELEMENTS.ORDINATE_DIMENSION','AIC_DRAUGHTING_ELEMENTS.RADIUS_DIMENSION'])=1;
END_ENTITY;

ENTITY draughting_elements
  SUBTYPE OF (draughting_callout);
WHERE
  WR1: SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.LEADER_CURVE' IN TYPEOF(con))) | NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c,'DRAUGHTING_ELEMENT_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS') |('AIC_DRAUGHTING_ELEMENTS.LEADER_DIRECTED_CALLOUT' IN TYPEOF (ldc)))) <= 1)))=0;
  WR2: NOT ('DRAUGHTING_ELEMENT_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR(SIZEOF (QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.PROJECTION_CURVE' IN TYPEOF (con)))) <= 2);
  WR3: SIZEOF (QUERY (rc <* USEDIN (SELF,'DRAUGHTING_ELEMENT_SCHEMA.DRAUGHTING_CALLOUT_' +'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND(rc.name = 'primary'))) <= 1;
  WR4: SIZEOF (QUERY (rc <* USEDIN (SELF,'DRAUGHTING_ELEMENT_SCHEMA.DRAUGHTING_CALLOUT_' +'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND(rc.name = 'secondary'))) <= 1;
  WR5: SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF,'DRAUGHTING_ELEMENT_SCHEMA.DRAUGHTING_CALLOUT_' +'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND(rc.name = 'secondary')) | NOT (SIZEOF (QUERY (prim <* USEDIN (SELF,'DRAUGHTING_ELEMENT_SCHEMA.DRAUGHTING_CALLOUT_' +'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND(prim.name = 'primary'))) = 1))) = 0;
END_ENTITY;

ENTITY geometrical_tolerance_callout
  SUBTYPE OF (draughting_callout);
END_ENTITY;

ENTITY leader_directed_dimension
  SUBTYPE OF (leader_directed_callout);
WHERE
  WR1: SIZEOF (QUERY (con <* SELF.contents |'AIC_DRAUGHTING_ELEMENTS.LEADER_CURVE' IN TYPEOF (con)))=1;
END_ENTITY;

ENTITY linear_dimension
  SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;

ENTITY ordinate_dimension
  SUBTYPE OF (projection_directed_callout);
END_ENTITY;

ENTITY radius_dimension
  SUBTYPE OF (dimension_curve_directed_callout);
WHERE
  WR1: SIZEOF (QUERY (con <* SELF.contents |'AIC_DRAUGHTING_ELEMENTS.PROJECTION_CURVE' IN TYPEOF (con)))<=1;
END_ENTITY;

ENTITY structured_dimension_callout
  SUBTYPE OF (draughting_callout);
WHERE
  WR1: SIZEOF (TYPEOF (SELF) *['AIC_DRAUGHTING_ELEMENTS.DATUM_FEATURE_CALLOUT','AIC_DRAUGHTING_ELEMENTS.DATUM_TARGET_CALLOUT','AIC_DRAUGHTING_ELEMENTS.GEOMETRICAL_TOLERANCE_CALLOUT','AIC_DRAUGHTING_ELEMENTS.LEADER_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.PROJECTION_DIRECTED_CALLOUT','AIC_DRAUGHTING_ELEMENTS.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0;
  WR2: SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (con))) | NOT (ato.name IN['dimension value', 'tolerance value', 'unit text','prefix text', 'suffix text']))) = 0;
  WR3: SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (con))) |(ato.name = 'dimension value'))) >= 1;
  WR4: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'DRAUGHTING_ELEMENT_SCHEMA.' +'DRAUGHTING_CALLOUT_RELATIONSHIP.' +'RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND(dcr.name = 'prefix'))) <= 1;
  WR5: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'DRAUGHTING_ELEMENT_SCHEMA.' +'DRAUGHTING_CALLOUT_RELATIONSHIP.' +'RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND(dcr.name = 'suffix'))) <= 1;
  WR6: NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) |(ato.name = 'prefix text'))) > 0)) OR(SIZEOF (QUERY (dcr <* USEDIN (SELF, 'DRAUGHTING_ELEMENT_SCHEMA.' +'DRAUGHTING_CALLOUT_RELATIONSHIP.' +'RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND(dcr.name = 'prefix'))) = 1);
  WR7: NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |('AIC_DRAUGHTING_ELEMENTS.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) |(ato.name = 'suffix text'))) > 0) OR(SIZEOF (QUERY (dcr <* USEDIN (SELF, 'DRAUGHTING_ELEMENT_SCHEMA.' +'DRAUGHTING_CALLOUT_RELATIONSHIP.' +'RELATING_DRAUGHTING_CALLOUT') |('AIC_DRAUGHTING_ELEMENTS.' +'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND(dcr.name = 'suffix'))) = 1);
END_ENTITY;

END_SCHEMA;  -- aic_draughting_elements