Application interpreted construct: Draughting annotation ISO 10303-504:2011(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 EXPRESS short listing
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Draughting annotation type definition
   4.4 Draughting annotation entity definitions
   4.5 Draughting annotation function definitions

A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
Bibliography
Index

4 EXPRESS short listing

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the aic_draughting_annotation schema that uses elements from the integrated resources and contains the types, entity specializations, and functions that are specific to this part of ISO 10303.

EXPRESS specification:

*)
SCHEMA aic_draughting_annotation;

USE FROM draughting_element_schema    --  ISO 10303-101
  (draughting_callout,
   terminator_symbol);

USE FROM geometry_schema    --  ISO 10303-42
  (axis2_placement_2d,
   geometric_representation_context);

USE FROM measure_schema    --  ISO 10303-41
  (conversion_based_unit,
   derived_unit,
   global_unit_assigned_context,
   length_measure_with_unit,
   length_unit,
   measure_with_unit,
   named_unit,
   plane_angle_unit,
   plane_angle_measure_with_unit,
   si_unit);

USE FROM presentation_appearance_schema    --  ISO 10303-46
  (box_height,
   box_rotate_angle,
   box_slant_angle,
   box_width,
   context_dependent_invisibility,
   curve_style,
   curve_style_font,
   externally_defined_curve_font,
   externally_defined_hatch_style,
   externally_defined_tile_style,
   fill_area_style,
   fill_area_style_colour,
   fill_area_style_hatching,
   fill_area_style_tile_symbol_with_style,
   fill_area_style_tiles,
   null_style,
   pre_defined_curve_font,
   presentation_style_by_context,
   symbol_colour,
   symbol_style,
   text_style,
   text_style_for_defined_font,
   text_style_with_box_characteristics,
   text_style_with_mirror,
   text_style_with_spacing);

USE FROM presentation_definition_schema    --  ISO 10303-46
  (annotation_curve_occurrence,
   annotation_fill_area,
   annotation_fill_area_occurrence,
   annotation_occurrence,
   annotation_symbol,
   annotation_symbol_occurrence,
   annotation_text_occurrence,
   composite_text,
   composite_text_with_associated_curves,
   composite_text_with_blanking_box,
   composite_text_with_extent,
   defined_symbol,
   externally_defined_symbol,
   pre_defined_symbol,
   symbol_representation,
   symbol_representation_map,
   text_alignment,
   text_literal,
   text_literal_with_associated_curves,
   text_literal_with_blanking_box,
   text_literal_with_delineation,
   text_literal_with_extent);

USE FROM presentation_resource_schema    --  ISO 10303-46
  (colour_rgb,
   externally_defined_text_font,
   font_select,
   pre_defined_colour,
   pre_defined_text_font);

USE FROM representation_schema    --  ISO 10303-43
  (mapped_item,
   representation,
   representation_item);

REFERENCE FROM geometry_schema    --  ISO 10303-42
  (axis2_placement);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

draughting_element_schema ISO 10303-101
geometry_schema ISO 10303-42
measure_schema ISO 10303-41
presentation_appearance_schema ISO 10303-46
presentation_definition_schema ISO 10303-46
presentation_resource_schema ISO 10303-46
representation_schema ISO 10303-43

NOTE 2   See Annex D for a graphical representation of this schema.

NOTE 3   There may be subtypes and items of select lists that appear in the integrated resources that are not imported into the AIC. Constructs are eliminated from the subtype tree or select list through the use of the implicit interface rules of ISO 10303-11. References to eliminated constructs are outside the scope of the AIC. In some cases, all items of the select list are eliminated. Because AICs are intended to be implemented in the context of an application protocol, the items of the select list will be defined by the scope of the application protocol

4.1 General

This application interpreted construct provides a consistent set of entities for the description of annotation presented on a drawing that has a specific meaning or purpose within the scope of draughting. Annotation, in the form of text and symbology, provides additional product data that may be needed to fully define the product or interpret the drawing.

4.2 Fundamental concepts and assumptions

The following entities are intended to be independently instantiated in the application protocol schema that use this AIC:

4.3 aic_draughting_annotation type definitions

4.3.1 draughting_subfigure_representation_item   EXPRESS-G

The draughting_subfigure_representation_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE draughting_subfigure_representation_item = SELECT
   (annotation_occurrence,
    axis2_placement,
    draughting_callout);
END_TYPE;
(*

4.3.2 draughting_symbol_representation_item   EXPRESS-G

The draughting_symbol_representation_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE draughting_symbol_representation_item = SELECT
   (annotation_curve_occurrence,
    annotation_fill_area_occurrence,
    annotation_symbol_occurrence,
    annotation_text_occurrence,
    axis2_placement);
END_TYPE;
(*

4.4 aic_draughting_annotation entity definitions

4.4.1 annotation_subfigure_occurrence   EXPRESS-G

An annotation_subfigure_occurrence is a type of annotation_symbol_occurrence An annotation_subfigure_occurrence is a grouping of annotation that is recognized as a subfigure.

EXPRESS specification:

*)
ENTITY annotation_subfigure_occurrence
  SUBTYPE OF (annotation_symbol_occurrence);
WHERE
  WR1: SIZEOF (QUERY (sty <* SELF.styles | NOT (SIZEOF (sty.styles) = 1) )) = 0;
  WR2: SIZEOF (QUERY (sty <* SELF.styles | NOT ('AIC_DRAUGHTING_ANNOTATION.NULL_STYLE' IN TYPEOF (sty.styles[1])) ))=0;
  WR3: ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL' IN TYPEOF (SELF.item));
  WR4: ('AIC_DRAUGHTING_ANNOTATION.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF (SELF.item\mapped_item.mapping_source.mapped_representation));
END_ENTITY;
(*

Formal propositions:

WR1: The annotation_subfigure_occurrence shall have exactly one style.

WR2: The type of style shall be null_style.

WR3: The item of the annotation_subfigure_occurrence shall be an annotation_symbol.

WR4: The source of the annotation_subfigure_occurrence shall be a draughting_subfigure_representation.

4.4.2 draughting_annotation_occurrence   EXPRESS-G

A draughting_annotation_occurrence is a type of annotation_occurrence that specifies constraints within the context of draughting.

NOTE    An application protocol that uses this AIC may ensure that the annotation_occurrence entity is instantiated as an draughting_annotation_occurrence.

EXPRESS specification:

*)
ENTITY draughting_annotation_occurrence
  SUBTYPE OF (annotation_occurrence);
WHERE
  WR1: (NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AIC_DRAUGHTING_ANNOTATION.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0);
  WR2: (NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0);
  WR3: (NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (bound <* SELF.item\annotation_fill_area.boundaries | NOT (SIZEOF (QUERY (si <* USEDIN (bound, 'PRESENTATION_APPEARANCE_SCHEMA.' + 'STYLED_ITEM.ITEM') | ('AIC_DRAUGHTING_ANNOTATION.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0);
  WR4: (NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND (SIZEOF (TYPEOF (sty.styles[1]) * ['AIC_DRAUGHTING_ANNOTATION.SYMBOL_STYLE', 'AIC_DRAUGHTING_ANNOTATION.NULL_STYLE']) = 1)) )) = 0);
  WR5: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)))) OR (SIZEOF (['AIC_DRAUGHTING_ANNOTATION.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'AIC_DRAUGHTING_ANNOTATION.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF (SELF.item\mapped_item.mapping_source. mapped_representation)) = 1);
  WR6: (NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AIC_DRAUGHTING_ANNOTATION.TEXT_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0);
  WR7: (NOT('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (TYPEOF(SELF.item) * ['AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT', 'AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL']) = 1);
  WR8: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* SELF.item\composite_text.collected_text | NOT ('AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL' IN TYPEOF (tl)) )) = 0);
  WR9: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL' IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']);
  WR10: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* QUERY (text <* SELF. item\composite_text.collected_text |('AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL' IN TYPEOF(text))) | NOT (tl\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']) )) = 0);
  WR11: NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT' IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item);
  WR12: NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT' IN TYPEOF (SELF.item))) OR check_text_font(SELF.item);
  WR13: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text | ('AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL' IN TYPEOF (text))) | NOT (SIZEOF (TYPEOF(tl) * ['AIC_DRAUGHTING_ANNOTATION.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'AIC_DRAUGHTING_ANNOTATION.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0);
  WR14: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (crv <* SELF.item\text_literal_with_associated_curves. associated_curves | NOT (SIZEOF (QUERY (si <* USEDIN (crv, 'PRESENTATION_APPEARANCE_SCHEMA.STYLED_ITEM.ITEM') | ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)) )) > 0) )) = 0);
  WR15: (NOT (('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AIC_DRAUGHTING_ANNOTATION.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (crv <* SELF.item\composite_text_with_associated_curves. associated_curves | NOT (SIZEOF (QUERY (si <* USEDIN (crv, 'PRESENTATION_APPEARANCE_SCHEMA.STYLED_ITEM.ITEM') | ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)) )) > 0) )) = 0);
  WR16: SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles | ('AIC_DRAUGHTING_ANNOTATION.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) | NOT (('AIC_DRAUGHTING_ANNOTATION.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs.styles[1]\curve_style. curve_width\measure_with_unit.value_component))))) = 0;
  WR17: SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) | NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE_TILES' IN TYPEOF (fs)))) <= 1) AND (SIZEOF (QUERY (fst <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE_TILES' IN TYPEOF (fs))) | NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1) )) = 0)) )) = 0;
  WR18: SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) | NOT (SIZEOF (QUERY (fsh <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AIC_DRAUGHTING_ANNOTATION.FILL_AREA_STYLE_HATCHING' IN TYPEOF (fs))) | NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=: fsh\fill_area_style_hatching.pattern_start) )) = 0) )) = 0;
  WR19: SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | ('AIC_DRAUGHTING_ANNOTATION.TEXT_STYLE' IN TYPEOF(sty.styles[1]))) | NOT ('AIC_DRAUGHTING_ANNOTATION.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF (ts.styles[1])))) = 0;
  WR20: SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | ('AIC_DRAUGHTING_ANNOTATION.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF (sty.styles[1]))) | NOT (SIZEOF (ts.styles[1]\text_style_with_box_characteristics. characteristics) = 4) )) = 0;
END_ENTITY;
(*

Formal propositions:

WR1: Each draughting_annotation_occurrence that is an annotation_curve_occurrence shall have exactly one style that is a curve_style.

WR2: Each draughting_annotation_occurrence that is an annotation_fill_area_occurrence shall have exactly one style that is a fill_area_style.

WR3: If the draughting_annotation_occurrence is an annotation_fill_area_occurrence, each boundary of the annotation_fill_area shall be the item for an annotation_curve_occurrence.

WR4: Each draughting_annotation_occurrence that is an annotation_symbol_occurrence shall have exactly one style that is either a symbol_style or null_style.

WR5: If the draughting_annotation_occurrence is an annotation_symbol_occurrence whose item is an annotation_symbol, the symbol_representation shall be a draughting_symbol_representation or draughting_subfigure_representation.

WR6: Each draughting_annotation_occurrence that is an annotation_text_occurrence shall have exactly one style that is a text_style.

WR7: If the draughting_annotation_occurrence is an annotation_text_occurrence, the item shall be either composite_text or a text_literal.

WR8: If the draughting_annotation_occurrence is an annotation_text_occurrence, each composite_text shall only collect text_literal.

WR9: If the draughting_annotation_occurrence is an annotation_text_occurrence whose item is a text_literal, the text_literal shall have the value of ‘baseline left’, ‘baseline centre’, or ‘baseline right’ for the alignment.

WR10: If the draughting_annotation_occurrence is an annotation_text_occurrence whose item is a composite_text, each text_literal included in the composite_text shall have the value of ‘baseline left’, ‘baseline centre’, or ‘baseline right’ for the alignment.

WR11: If the draughting_annotation_occurrence is an annotation_text_occurrence, each text_literal shall have the same alignment.

WR12: If the draughting_annotation_occurrence is an annotation_text_occurrence, each text_literal shall have the same font.

WR13: If the draughting_annotation_occurrence is an annotation_text_occurrence, each composite_text shall not contain text_literal_with_blanking_box nor text_literal_with_associated_curves.

WR14: If the draughting_annotation_occurrence is an annotation_text_occurrence whose item is a text_literal_with_associated_curves, each curve associated with the text shall be the item for an annotation_curve_occurrence.

WR15: If the draughting_annotation_occurrence is an annotation_text_occurrence whose item is a composite_text_with_associated_curves, each curve associated with the text shall be the item for an annotation_curve_occurrence.

WR16: If the style of the draughting_annotation_occurrence is a curve_style, this style shall specify the units of measure associated with its curve_width.

WR17: If the style of the draughting_annotation_occurrence is a fill_area_style, this style shall contain, in the set of fill_styles, no more than one fill_area_style_tiles and that fill_area_style_tiles shall contain exactly one tile.

WR18: If the style of the draughting_annotation_occurrence is a fill_area_style, for each fill_area_style_hatching in the set of fill_styles, the point_of_reference_hatch_line shall be the same as the pattern_start.

WR19: If the style of the draughting_annotation_occurrence is a text_style, this style shall be a text_style_with_box_characteristics.

WR20: If the style of the draughting_annotation_occurrence is a text_style_with_box_characteristics, this style shall have exactly four elements in the set of characteristics.

4.4.3 draughting_subfigure_representation   EXPRESS-G

A draughting_subfigure_representation is a type of symbol_representation that collects annotation_occurrences as the definition of a subfigure.

EXPRESS specification:

*)
ENTITY draughting_subfigure_representation
  SUBTYPE OF (symbol_representation);
  SELF\representation.items : SET[1:?] OF draughting_subfigure_representation_item;
WHERE
  WR1: SIZEOF (QUERY (item <* SELF\representation.items | SIZEOF (['AIC_DRAUGHTING_ANNOTATION.ANNOTATION_OCCURRENCE', 'AIC_DRAUGHTING_ANNOTATION.DRAUGHTING_CALLOUT'] * TYPEOF (item)) = 1)) >= 1;
  WR2: SIZEOF (QUERY (srm <* QUERY (rm <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ('AIC_DRAUGHTING_ANNOTATION.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm))) | NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage | ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL' IN TYPEOF(mi))) | NOT (SIZEOF (QUERY (aso <* USEDIN (a_s, 'PRESENTATION_APPEARANCE_SCHEMA.' + 'STYLED_ITEM.ITEM') | NOT ('AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0;
  WR3: SIZEOF (SELF.context_of_items.representations_in_context) = 1;
END_ENTITY;
(*

Attribute definitions:

items: the representation_items in a draughting_subfigure_representation shall be annotation_occurrence, draughting_callout, or axis2_placement.

Formal propositions:

WR1: At least one of the items in a draughting_subfigure_representation shall be an annotation_occurrence or a draughting_callout.

WR2: A draughting_subfigure_representation shall be the definition of at least one annotation_subfigure_occurrence.

WR3: The representation_context of a draughting_subfigure_representation shall not be the context of any other representation.

4.4.4 draughting_symbol_representation   EXPRESS-G

A draughting_symbol_representation is a type of symbol_representation that collects annotation_curve_occurrences, annotation_symbol_occurrences, annotation_text_occurrences, and annotation_fill_area_occurrences as the definition of a symbol.

EXPRESS specification:

*)
ENTITY draughting_symbol_representation
  SUBTYPE OF (symbol_representation);
  SELF\representation.items : SET[1:?] OF draughting_symbol_representation_item;
UNIQUE
  UR1: name;
WHERE
  WR1: SIZEOF (QUERY (item <* SELF\representation.items | (SIZEOF (TYPEOF (item) * ['AIC_DRAUGHTING_ANNOTATION.ANNOTATION_CURVE_OCCURRENCE', 'AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SYMBOL_OCCURRENCE', 'AIC_DRAUGHTING_ANNOTATION.ANNOTATION_FILL_AREA_OCCURRENCE', 'AIC_DRAUGHTING_ANNOTATION.ANNOTATION_TEXT_OCCURRENCE']) = 1) )) >= 1;
  WR2: SIZEOF (QUERY (item <* SELF\representation.items | 'AIC_DRAUGHTING_ANNOTATION.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF (item))) = 0;
  WR3: SIZEOF ( QUERY (rm <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | NOT ('REPRESENTATION_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)))) = 0;
  WR4: SIZEOF (SELF.context_of_items.representations_in_context) = 1;
END_ENTITY;
(*

Attribute definitions:

items: the representation_items in a draughting_symbol_representation shall be annotation_curve_occurrence, annotation_text_occurrence, annotation_symbol_occurrence, annotation_fill_area_occurrence, or axis2_placement.

Formal propositions:

UR1: The name of a draughting_symbol_representation shall be unique.

WR1: At least one of the items in a draughting_symbol_representation shall be annotation_curve_occurrence, annotation_text_occurrence, annotation_symbol_occurrence, or annotation_fill_area_occurrence.

WR2: The items in a draughting_symbol_representation shall not be annotation_subfigure_occurrence.

WR3: A draughting_symbol_representation shall only be referenced by representation_maps that are of type symbol_representation_map.

WR4: The representation_context of a draughting_symbol_representation shall not be the context of any other representation.

4.4.5 draughting_text_literal_with_delineation   EXPRESS-G

A draughting_text_literal_with_delineation is a type of text_literal_with_delineation. A draughting_text_literal_with_delineation is a text_literal that specifies the delineation of the text as overline or underline.

EXPRESS specification:

*)
ENTITY draughting_text_literal_with_delineation
  SUBTYPE OF (text_literal_with_delineation);
WHERE
  WR1: SELF.delineation IN ['underline', 'overline'];
END_ENTITY;
(*

Formal propositions:

WR1: Every draughting_text_literal_with_delineation shall have either an “underline” or an “overline” delineation.

4.5 aic_draughting_annotation function definitions

4.5.1 check_text_alignment

The check_text_alignment boolean function returns true if the given composite_text has a common alignment value for each text_literal contained in the set of collected_text.

NOTE    Although there is no group reference, the attribute reference ct.collected_text in function check_text_alignment is correct, since parameter ct is of type composite_text and collected_text is an attribute of this type.

EXPRESS specification:

*)
FUNCTION check_text_alignment (ct : composite_text) :BOOLEAN;
LOCAL
    a : SET OF text_alignment := [];
  END_LOCAL;

  -- create a set of all the alignments
  REPEAT i := 1 TO HIINDEX (ct.collected_text);
    a := a + [ct.collected_text[i]\text_literal.alignment];
  END_REPEAT;

  -- if there is more than one element in the set
  -- then not all alignments were the same
  RETURN (SIZEOF(a) = 1);
END_FUNCTION;
(*

Argument definitions:

ct: the input composite_text to be checked.

4.5.2 check_text_font

The check_text_font boolean function returns true if the given composite_text has a common font value for each text_literal contained in the set of collected_text.

NOTE    Although there is no group reference, the attribute reference ct.collected_text in function check_text_font is correct, since parameter ct is of type composite_text and collected_text is an attribute of this type.

EXPRESS specification:

*)
FUNCTION check_text_font (ct : composite_text) :BOOLEAN;
LOCAL
    f : SET OF font_select := [];
  END_LOCAL;

  -- build a set of all the fonts
  REPEAT i := 1 TO HIINDEX (ct.collected_text);
    f := f + [ct.collected_text[i]\text_literal.font];
  END_REPEAT;

  -- if there is more than one element in the set
  -- then not all fonts were the same
  RETURN (SIZEOF(f) <= 1);
END_FUNCTION;
(*

Argument definitions:

ct: the input composite_text to be checked.



*)
END_SCHEMA;  -- aic_draughting_annotation
(*


© ISO 2011 — All rights reserved