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