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