Source : ISO 10303-101
SCHEMA draughting_element_schema;
REFERENCE FROM
geometry_schema -- ISO 10303-42
(geometric_representation_item);
REFERENCE FROM
support_resource_schema -- ISO 10303-41
(label,
text);
REFERENCE FROM
presentation_definition_schema -- ISO 10303-46
(annotation_occurrence,
annotation_curve_occurrence,
annotation_text_occurrence,
annotation_symbol_occurrence);
TYPE draughting_callout_element =
SELECT
(annotation_text_occurrence,
annotation_symbol_occurrence,
annotation_curve_occurrence);
END_TYPE;
TYPE dimension_extent_usage =
ENUMERATION
OF
(origin,
target);
END_TYPE;
ENTITY dimension_curve
SUBTYPE OF (annotation_curve_occurrence);
WHERE
wr1: (SIZEOF( QUERY(dct <* USEDIN(SELF,'DRAUGHTING_ELEMENT_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
| (('DRAUGHTING_ELEMENT_SCHEMA.'+ 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)) ))
) <= 2);
wr2: SIZEOF( QUERY( dcdc <* USEDIN(SELF,'DRAUGHTING_ELEMENT_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')
| ('DRAUGHTING_ELEMENT_SCHEMA.'+ 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))
)>= 1;
wr3: (SIZEOF( QUERY(dct1 <* USEDIN(SELF,'DRAUGHTING_ELEMENT_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
| (('DRAUGHTING_ELEMENT_SCHEMA.'+ 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1.role
= origin))) ) <= 1) AND (SIZEOF( QUERY (dct2 <* USEDIN(SELF,'DRAUGHTING_ELEMENT_SCHEMA.'+
'TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('DRAUGHTING_ELEMENT_SCHEMA.'+ 'DIMENSION_CURVE_TERMINATOR'
IN TYPEOF(dct2)) AND (dct2.role = target))) ) <= 1);
END_ENTITY;
ENTITY leader_curve
SUBTYPE OF (annotation_curve_occurrence);
WHERE
WR1: SIZEOF( QUERY(ldc <* USEDIN( SELF, 'DRAUGHTING_ELEMENT_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')
| 'DRAUGHTING_ELEMENT_SCHEMA.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1;
END_ENTITY;
ENTITY projection_curve
SUBTYPE OF (annotation_curve_occurrence);
END_ENTITY;
ENTITY terminator_symbol
SUBTYPE OF (annotation_symbol_occurrence);
annotated_curve : annotation_curve_occurrence;
END_ENTITY;
ENTITY dimension_curve_terminator
SUBTYPE OF (terminator_symbol);
role : dimension_extent_usage;
WHERE
WR1: 'DRAUGHTING_ELEMENT_SCHEMA.DIMENSION_CURVE' IN TYPEOF (SELF\terminator_symbol.annotated_curve);
END_ENTITY;
ENTITY leader_terminator
SUBTYPE OF (terminator_symbol);
WHERE
WR1: 'DRAUGHTING_ELEMENT_SCHEMA.LEADER_CURVE' IN TYPEOF (SELF\terminator_symbol.annotated_curve);
END_ENTITY;
ENTITY draughting_callout
SUBTYPE OF (geometric_representation_item);
contents : SET[1:?] OF draughting_callout_element;
END_ENTITY;
ENTITY draughting_callout_relationship;
name : label;
description : text;
relating_draughting_callout : draughting_callout;
related_draughting_callout : draughting_callout;
END_ENTITY;
ENTITY leader_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1: SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | 'DRAUGHTING_ELEMENT_SCHEMA.LEADER_CURVE' IN (TYPEOF(l_1))))
>= 1;
WR2: SIZEOF(SELF\draughting_callout.contents) >=2;
END_ENTITY;
ENTITY projection_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1: SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents | 'DRAUGHTING_ELEMENT_SCHEMA.PROJECTION_CURVE' IN (TYPEOF(p_1))))=1;
WR2: SIZEOF(SELF\draughting_callout.contents) >=2;
END_ENTITY;
ENTITY dimension_curve_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1: SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents | 'DRAUGHTING_ELEMENT_SCHEMA.DIMENSION_CURVE' IN (TYPEOF(d_c))))=1;
WR2: SIZEOF(SELF\draughting_callout.contents) >= 2;
END_ENTITY;
END_SCHEMA; -- draughting_element_schema