| Application module: Physical unit 3D shape | ISO/TS 10303-1727:2018-11(E) © ISO | 
         (*
ISO/TC 184/SC 4/WG 12 N9554 - ISO/TS 10303-1727 Physical unit 3D shape - EXPRESS ARM
Supersedes 
         ISO/TC 184/SC 4/WG 12 N7693
*)
         
SCHEMA Physical_unit_3d_shape_arm;
         USE FROM
         Characteristic_arm;
            -- ISO/TS 10303-1654
         USE FROM
         Non_feature_shape_element_arm;
            -- ISO/TS 10303-1706
         REFERENCE FROM 
         Requirement_decomposition_arm   -- ISO/TS 10303-1740
  (get_rvd);
         
TYPE predefined_3d_purpose =
         
         ENUMERATION
         
         OF
         
            
         (analysis_input,
    analysis_output,
    shock_analysis_input,
    shock_analysis_output,
    design,
    vibration_analysis_input,
    vibration_analysis_output,
    electromagnetic_compatibility_analysis_input,
    electromagnetic_compatibility_analysis_output,
    thermal_analysis_input,
    thermal_analysis_output);
         END_TYPE; 
         
TYPE pu3ds_component_application =
         
         ENUMERATION
         
         OF
         
            
         (compliant_components_permitted,
    no_components_permitted);
         END_TYPE; 
         
TYPE pu3ds_external_identification_item =
         
         
         SELECT
         BASED_ON
         external_identification_item
         WITH 
         
            (Physical_unit_3d_shape_model);
         END_TYPE; 
         
TYPE pu3ds_physical_unit_shape_model_select =
         
         
         SELECT
         BASED_ON
         physical_unit_shape_model_select
         WITH 
         
            (Physical_unit_3d_shape_model);
         END_TYPE; 
         
TYPE pu3ds_requirement_assignment_item =
         
         
         SELECT
         BASED_ON
         requirement_assignment_item
         WITH 
         
            (Physical_unit_3d_keepout_shape_model, 
    Physical_unit_3d_shape_model);
         END_TYPE; 
         
TYPE pu3ds_shape_location =
         
         ENUMERATION
         
         OF
         
            
         (above,
    below);
         END_TYPE; 
         
TYPE pu3ds_shape_side =
         
         ENUMERATION
         
         OF
         
            
         (same_side,
    opposite_side,
    both_sides);
         END_TYPE; 
         
TYPE pu3ds_view_shape_select =
         
         
         SELECT
         BASED_ON
         view_shape_select
         WITH 
         
            (Physical_unit_shape_model);
         END_TYPE; 
         
TYPE shape_class =
         
         ENUMERATION
         
         OF
         
            
         (extrusion,
    manhattan_block,
    other,
    is_unknown);
         END_TYPE; 
         
ENTITY Physical_unit_3d_keepout_shape_model
           SUBTYPE OF (Usage_view_level_non_feature_shape_model, Physical_unit_keepout_shape_model);
           shape_classification : shape_class;
           SELF\Usage_view_level_non_feature_shape_model.model_shape : Physical_unit_3d_shape_model;
           component_application : pu3ds_component_application;
           shape_distance_from_seating_plane : 
         OPTIONAL 
         Length_tolerance_characteristic;
           shape_location_with_respect_to_seating_plane : 
         OPTIONAL 
         pu3ds_shape_location;
           side : 
         OPTIONAL 
         pu3ds_shape_side;
DERIVE
           application_technology_constraint : SET[0:?] OF Requirement_view_definition := get_rvd(SELF, 'application technology constraint');
WHERE
           WR1: (SIZEOF(application_technology_constraint) <= 1);
           WR2: NOT EXISTS(SELF\Representation.name);
           WR3: NOT EXISTS(SELF\Representation.description);
           WR4: NOT (EXISTS(shape_distance_from_seating_plane) XOR EXISTS(shape_location_with_respect_to_seating_plane));
           WR5: NOT ('PACKAGE_ARM.PACKAGE' IN TYPEOF(model_shape.shape_characterized_definition)) OR
            EXISTS(shape_distance_from_seating_plane);
           WR6: NOT EXISTS(side) OR ('PACKAGE_ARM.PACKAGE' IN TYPEOF(model_shape.shape_characterized_definition));
         
         END_ENTITY;
ENTITY Physical_unit_3d_shape_model
           SUBTYPE OF (Physical_unit_shape_model);
           shape_purpose : 
         OPTIONAL 
         predefined_3d_purpose;
           shape_classification : shape_class;
DERIVE
           application_technology_constraint : SET[0:?] OF Requirement_view_definition := get_rvd(SELF, 'application technology constraint');
INVERSE
           external_shape_purpose : SET[0:1] OF External_source_identification FOR item;
WHERE
           WR1: (EXISTS (shape_purpose)) XOR ((SIZEOF(external_shape_purpose)) = 1);
           WR2: (SIZEOF(application_technology_constraint) <= 1);
           WR3: NOT EXISTS(SELF\Representation.name);
           WR4: NOT EXISTS(SELF\Representation.description);
         
         END_ENTITY;
         END_SCHEMA;  -- Physical_unit_3d_shape_arm
© ISO 2018 — All rights reserved