Application module: Non feature shape element ISO/TS 10303-1706:2018-11(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 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
   4.4 ARM subtype constraint definition
   4.5 ARM function definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM entity definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N9351 - ISO/TS 10303-1706 Non feature shape element - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N8179
*)



SCHEMA Non_feature_shape_element_arm;

USE FROM Physical_unit_shape_with_parameters_arm;    -- ISO/TS 10303-1730

USE FROM Part_feature_location_arm;    -- ISO/TS 10303-1714


TYPE nfse_feature_or_non_feature_usage = SELECT BASED_ON feature_or_non_feature_usage WITH
   (Usage_view_level_non_feature_shape_model);
END_TYPE;

TYPE nfse_usage_concept = SELECT BASED_ON usage_concept WITH
   (Non_feature_shape_element);
END_TYPE;

TYPE view_shape_select = EXTENSIBLE GENERIC_ENTITY SELECT
   (Physical_unit_shape_model);
END_TYPE;

ENTITY Edge_segment_vertex
  SUBTYPE OF (Shape_element);
DERIVE
  SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
END_ENTITY;

ENTITY Interface_plane
  SUBTYPE OF (Non_feature_shape_element);
WHERE
  WR1: (SELF\Shape_element.element_name = 'interface plane');
END_ENTITY;

ENTITY Non_feature_shape_element
  SUBTYPE OF (Shape_element);
  SELF\Shape_element.associated_definition : Part_view_definition;
DERIVE
  SELF\Shape_element.product_definitional : BOOLEAN := FALSE;
INVERSE
  element_shape : SET[0:?] OF Non_feature_shape_model FOR associated_element;
  associated_usage_concept : SET[0:?] OF Usage_concept_usage_relationship FOR associated_usage;
UNIQUE
  UR1: SELF\Shape_element.element_name, associated_definition;
WHERE
  WR1: NOT ((SIZEOF(associated_usage_concept) > 0) OR (SIZEOF(element_shape) > 0));
END_ENTITY;

ENTITY Non_feature_shape_element_relationship
  SUBTYPE OF (Shape_element_relationship);
  SELF\Shape_element_relationship.relating : Non_feature_shape_element;
  SELF\Shape_element_relationship.related : Non_feature_shape_element;
UNIQUE
  UR1: related, relating;
END_ENTITY;

ENTITY Non_feature_shape_model
  SUBTYPE OF (Geometric_model);
  associated_element : Non_feature_shape_element;
  model_shape : OPTIONAL Geometric_model;
WHERE
  WR1: TYPEOF(SELF) <> TYPEOF(model_shape);
  WR2: NOT EXISTS(SELF\Representation.id);
  WR3: SIZEOF(QUERY( x <* USEDIN(SELF, 'PROPERTY_ASSIGNMENT_ARM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_DESCRIPTION_ASSOCIATION' IN TYPEOF(x)))=0;
END_ENTITY;

ENTITY Reference_graphic_registration_mark
  SUBTYPE OF (Non_feature_shape_element);
END_ENTITY;

ENTITY Seating_plane
  SUBTYPE OF (Non_feature_shape_element);
WHERE
  WR1: (SELF\Shape_element.element_name = 'seating plane');
END_ENTITY;

ENTITY Usage_view_level_non_feature_shape_model
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Non_feature_shape_model);
  SELF\Non_feature_shape_model.associated_element : View_level_non_feature_shape_element;
  SELF\Non_feature_shape_model.model_shape : view_shape_select;
WHERE
  WR1: SELF\Geometric_model.context_of_items = SELF\Non_feature_shape_model.model_shape\Geometric_model.context_of_items;
END_ENTITY;

ENTITY View_level_non_feature_shape_element
  SUBTYPE OF (Non_feature_shape_element);
WHERE
  WR1: NOT(SIZEOF(SELF\Non_feature_shape_element.element_shape) > 0) OR valid_es('NON_FEATURE_SHAPE_ELEMENT_ARM.USAGE_VIEW_LEVEL_NON_FEATURE_SHAPE_MODEL', (SELF\Non_feature_shape_element.element_shape));
  WR2: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;

SUBTYPE_CONSTRAINT nfse_shape_element_subtypes FOR Shape_element;
  ONEOF (Edge_segment_vertex,
         Non_feature_shape_element);
END_SUBTYPE_CONSTRAINT;

FUNCTION valid_es
 (input1 : STRING; input2 : SET[0:?] OF Non_feature_shape_model) : BOOLEAN;
REPEAT i := 1 to HIINDEX(input2);
    IF NOT (input1 IN TYPEOF(input2[i])) THEN RETURN(FALSE);
    END_IF;
   END_REPEAT;
    RETURN(TRUE);
END_FUNCTION;

END_SCHEMA;  -- Non_feature_shape_element_arm


© ISO 2018 — All rights reserved