ISO 10303-214:2010(E)
EXPRESS specification:
*) ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the action is assigned.
Associated global rule: The following global rule defined in this part of ISO 10303 applies to the applied_action_assignment entity:
EXPRESS specification:
*) ENTITY applied_action_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF action_request_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the versioned_action_request is assigned.
Associated global rule: The following global rule defined in this part of ISO 10303 applies to the applied_action_request_assignment entity:
EXPRESS specification:
*) ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approval_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the approval is assigned.
EXPRESS specification:
*) ENTITY applied_area SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {2 <= SIZEOF(pdr.used_representation.items) <= 3} )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','effective length','maximum length']) )) > 0) )) = 0; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='effective length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='effective length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'applied area usage') AND (('AUTOMOTIVE_DESIGN.THREAD' IN TYPEOF(sar.relating_shape_aspect.of_shape.definition)) OR (('AUTOMOTIVE_DESIGN.EXTERNALLY_DEFINED_FEATURE_DEFINITION' IN TYPEOF(sar.relating_shape_aspect.of_shape.definition)) AND (sar.relating_shape_aspect.of_shape.definition\externally_defined_item.item_id = 'external thread') AND (sar.relating_shape_aspect.of_shape.definition\externally_defined_item.source.source_id = 'external thread specification'))) AND (sar.relating_shape_aspect.of_shape.definition.description = 'partial area occurrence') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The applied_area shall have exactly one shape_representation_with_parameters. It serves as the implicit representation of the applied_area.
WR2: The implicit representation of the applied_area shall contain between two and three representation_items.
WR3: Each representation_item contained in the implicit representation shall have a name of either 'orientation', 'effective length', or 'maximum length'.
WR4: Exactly one representation_item in the implicit representation shall have a name of 'orientation' and shall be of type placement.
WR5: Exactly one representation_item in the implicit representation shall have a name of 'effective length' and shall be of type length_measure_with_unit.
WR6: At most one representation_item in the implicit representation shall have a name of 'maximum length'. If present, it shall be of type length_measure_with_unit.
WR7: Each applied_area shall be the relating_shape_aspect of a shape_defining_relationship with a description of 'applied area usage' and a related_shape_aspect that is the basis shape of a thread or of an externally_defined_feature_definition with a item_id of 'external thread' and a source of 'external thread specification'. That basis shape shall have a description of 'partial area occurrence'.
EXPRESS specification:
*) ENTITY applied_certification_assignment SUBTYPE OF (certification_assignment); items : SET [1:?] OF certification_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the certification is assigned.
EXPRESS specification:
*) ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; WHERE WR1: NOT ('AUTOMOTIVE_DESIGN.CLASS' IN TYPEOF(SELF.assigned_class)) OR (SIZEOF( QUERY( i<* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.ACTION', 'AUTOMOTIVE_DESIGN.ACTION_DIRECTIVE', 'AUTOMOTIVE_DESIGN.ACTION_METHOD', 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY', 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP' 'AUTOMOTIVE_DESIGN.APPROVAL_STATUS', 'AUTOMOTIVE_DESIGN.ASSEMBLY_COMPONENT_USAGE', 'AUTOMOTIVE_DESIGN.CONFIGURATION_ITEM', 'AUTOMOTIVE_DESIGN.CONTRACT', 'AUTOMOTIVE_DESIGN.DOCUMENT_FILE', 'AUTOMOTIVE_DESIGN.DOCUMENT_TYPE', 'AUTOMOTIVE_DESIGN.FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY', 'AUTOMOTIVE_DESIGN.MATERIAL_DESIGNATION', 'AUTOMOTIVE_DESIGN.ORGANIZATIONAL_PROJECT', 'AUTOMOTIVE_DESIGN.PRODUCT', 'AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT', 'AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE_CATEGORY', 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION', 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_FORMATION', 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION', 'AUTOMOTIVE_DESIGN.RESOURCE_PROPERTY', 'AUTOMOTIVE_DESIGN.SECURITY_CLASSIFICATION_LEVEL', 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT', 'AUTOMOTIVE_DESIGN.VERSIONED_ACTION_REQUEST'] * TYPEOF(i)) <> 1 ))= 0); WR2: NOT (('AUTOMOTIVE_DESIGN.GROUP' IN TYPEOF(SELF.assigned_class)) AND (SELF.assigned_class\group.name = 'E') AND (SELF.assigned_class\group.description = 'dimensioning principle')) OR (SIZEOF( QUERY( i <* SELF.items | NOT ('AUTOMOTIVE_DESIGN.PLUS_MINUS_TOLERANCE' IN TYPEOF(i)) )) = 0); WR3: NOT (('AUTOMOTIVE_DESIGN.CLASS_SYSTEM' IN TYPEOF(SELF.assigned_class)) AND (SELF.role.name = 'class system membership')) OR (SIZEOF( QUERY( i<* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.APPROVAL_STATUS', 'AUTOMOTIVE_DESIGN.CLASS', 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.DOCUMENT_TYPE', 'AUTOMOTIVE_DESIGN.PLANAR_EXTENT', 'AUTOMOTIVE_DESIGN.SECURITY_CLASSIFICATION_LEVEL', ] * TYPEOF(i)) <> 1 )) = 0); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the class or class_system is assigned.
Formal Propositions:
WR1: If the assigned_class is of type class, only items of type action, action_directive, action_method, action_property, application_context, approval_status, assembly_component_usage, configuration_item, contract, document_type, feature_definition, general_property, material_designation, organizational_project, product, product_concept, product_concept_feature_category, product_definition, product_definition_formation, property_definition, resource_property, security_classification_level, shape_aspect, or versioned_action_request shall be in the set of items.
WR2: If the assigned_class is of type group with name 'E' and a description 'dimensioning principle', only items of type plus_minus_tolerance shall be in the set of items.
WR3: If the assigned_class is of type class_system and the role has a name of 'class system membership', only items of type approval_status, class, descriptive_representation_item, document_type, or security_classification_level shall be in the set of items.
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the applied_classification_assignment entity:
EXPRESS specification:
*) ENTITY applied_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contract_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the contract is assigned.
EXPRESS specification:
*) ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the date_and_time is assigned.
EXPRESS specification:
*) ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; WHERE WR1: (NOT (SELF.role.name = 'actual end')) OR item_correlation (SELF.items, ['ACTION', 'ORGANIZATIONAL_PROJECT', 'EFFECTIVITY']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the date is assigned.
Formal Propositions:
WR1: If the role has a name of 'actual end', only items of type action, organizational_project, or effectivity shall be in the set of items.
EXPRESS specification:
*) ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_reference_item; WHERE WR1: (NOT (SELF.role.name = 'general tolerance definition')) OR item_correlation (SELF.items, ['REPRESENTATION']); WR2: (SELF.role.name = 'general tolerance definition') OR item_correlation (SELF.items, ['ACTION','ACTION_DIRECTIVE','ACTION_METHOD','ACTION_RELATIONSHIP', 'APPLIED_ACTION_ASSIGNMENT','APPROVAL','CERTIFICATION','CLASS','CLASS_SYSTEM','CONFIGURATION_DESIGN', 'CONFIGURATION_ITEM','CONTRACT','FEATURE_DEFINITION','GENERAL_PROPERTY','MATERIAL_DESIGNATION', 'ORGANIZATION','ORGANIZATIONAL_PROJECT','PERSON','PRODUCT_CONCEPT','PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_CATEGORY','PRODUCT_DEFINITION','PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_FORMATION_RELATIONSHIP','PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE','PRODUCT_RELATED_PRODUCT_CATEGORY','PROPERTY_DEFINITION', 'REPRESENTATION','RESOURCE_REQUIREMENT_TYPE','SECURITY_CLASSIFICATION','SHAPE_ASPECT', 'SHAPE_ASPECT_RELATIONSHIP','VERSIONED_ACTION_REQUEST']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the document is assigned.
Formal Propositions:
WR1: If the role has a name of 'general tolerance definition', only items of type representation shall be in the set of items.
WR2: If the name of the role is not 'general tolerance definition', only items of type action, action_directive, action_method, action_relationship, applied_action_assignment, approval, certification, class, class_system, configuration_design, configuration_item, contract, feature_definition, general_property, material_designation, organization, organizational_project, person, product_concept, product_concept_feature, product_concept_feature_category, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, product_related_product_category, property_definition, representation, resource_requirement_type, security_classification, shape_aspect, shape_aspect_relationship, or versioned_action_request shall be in the set of items.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the applied_document_reference entity:
EXPRESS specification:
*) ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_reference_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the document_usage_constraint is assigned.
EXPRESS specification:
*) ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; WHERE WR1: SIZEOF(['AUTOMOTIVE_DESIGN.LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 0; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the effectivity is assigned.
Formal Propositions:
WR1: An applied_effectivity_assignment shall have an assigned_effectivity which is not of type lot_effectivity, serial_numbered_effectivity, or product_definition_effectivity.
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the applied_effectivity_assignment entity:
EXPRESS specification:
*) ENTITY applied_event_occurrence_assignment SUBTYPE OF (event_occurrence_assignment); items : SET [1:?] OF event_occurrence_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the event_occurrence is assigned.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the applied_event_occurrence_assignment entity:
EXPRESS specification:
*) ENTITY applied_external_identification_assignment SUBTYPE OF (external_identification_assignment); items : SET [1:?] OF external_identification_item; WHERE WR1: (NOT (SELF.role.name = 'alternative document id and location')) OR item_correlation (SELF.items, ['DOCUMENT_FILE']); WR2: (NOT (SELF.role.name = 'version')) OR item_correlation (SELF.items, ['EXTERNALLY_DEFINED_CLASS', 'EXTERNALLY_DEFINED_GENERAL_PROPERTY']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the identifier is assigned.
Formal Propositions:
WR1: If the role has a name of 'alternative document id and location', only items of type document_file shall be in the set of items.
WR2: If the role has a name of 'version', only items of type externally_defined_class, or externally_defined_general_property shall be in the set of items.
EXPRESS specification:
*) ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF group_item; WHERE WR1: (NOT (SELF.role.name = 'exclusiveness')) OR item_correlation (SELF.items, ['ACTION']); WR2: (NOT (SELF.role.name = 'simultaneity')) OR item_correlation (SELF.items, ['ACTION']); WR3: (NOT (SELF.role.name = 'specification category member')) OR item_correlation (SELF.items, ['PRODUCT_CONCEPT_FEATURE']); WR4: (NOT (SELF.role.name = 'group membership')) OR item_correlation (SELF.items, ['GEOMETRIC_REPRESENTATION_ITEM', 'SHAPE_ASPECT']); WR5: (NOT (SELF.role.name = 'group membership')) OR ((SIZEOF(SELF.items) = SIZEOF( QUERY( i <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(i)))) OR (SIZEOF(SELF.items) = SIZEOF( QUERY( i <* SELF.items | 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT' IN TYPEOF(i))))); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the group is assigned.
Formal Propositions:
WR1: If the role has a name of 'exclusiveness', only items of type action shall be in the set of items.
WR2: If the role has a name of 'simultaneity', only items of type action shall be in the set of items.
WR3: If the role has a name of 'specification category member', only items of type product_concept_feature shall be in the set of items.
WR4: If the role has a name of 'group membership', only items of type geometric_representation_item or shape_aspect shall be in the set of items.
WR5: If the role has a name of 'group membership', the set of items shall include either objects of type geometric_representation_item or shape_aspect.
EXPRESS specification:
*) ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identification_item; WHERE WR1: (NOT (SELF.role.name = 'version')) OR item_correlation (SELF.items, ['ACTION', 'ACTION_DIRECTIVE', 'SHAPE_REPRESENTATION', 'EFFECTIVITY', 'PRODUCT_CONCEPT', 'CONFIGURATION_ITEM', 'PRODUCT_DEFINITION', 'PRODUCT_CONCEPT_FEATURE', 'DOCUMENT_FILE', 'CLASS', 'APPLIED_IDENTIFICATION_ASSIGNMENT', 'DRAUGHTING_MODEL', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'PRESENTATION_AREA']); WR2: (NOT (SELF.role.name = 'lot context')) OR item_correlation (SELF.items, ['PRODUCT ']); WR3: (NOT (SELF.role.name = 'property change id context')) OR item_correlation (SELF.items, ['PROPERTY_DEFINITION_RELATIONSHIP', 'SHAPE_ASPECT_RELATIONSHIP', 'ACTION_PROPERTY']); WR4: (NOT (SELF.role.name = 'size id')) OR item_correlation (SELF.items, ['DIMENSIONAL_SIZE']); WR5: (NOT (SELF.role.name = 'model change id')) OR item_correlation (SELF.items, ['PROPERTY_DEFINITION', 'ACTION_PROPERTY']); WR6: (NOT (SELF.role.name = 'alias')) OR item_correlation (SELF.items, ['APPLICATION_CONTEXT', 'APPROVAL_STATUS', 'ASSEMBLY_COMPONENT_USAGE', 'CLASS', 'CLASS_SYSTEM','DOCUMENT_TYPE', 'DRAUGHTING_MODEL', 'GENERAL_PROPERTY', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'ORGANIZATION', 'PRODUCT', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PROPERTY_DEFINITION', 'SECURITY_CLASSIFICATION_LEVEL', 'SHAPE_REPRESENTATION']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the identifier is assigned.
Formal Propositions:
WR1: If the role has a name of 'version', only items of type action, action_directive, shape_representation, effectivity, product_concept, configuration_item, product_definition, product_concept_feature, document_file, class, applied_identification_assignment, draughting_model, mechanical_design_geometric_presentation_representation, or presentation_area shall be in the set of items.
WR2: If the role has a name of 'lot context', only items of type product shall be in the set of items.
WR3: If the role has a name of 'property change id context', only items of type property_definition_relationship, shape_aspect_relationship, or action_property shall be in the set of items.
WR4: If the role has a name of 'size id', only items of type dimensional_size shall be in the set of items.
WR5: If the role has a name of 'model change id', only items of type property_definition, or action_property shall be in the set of items.
WR6: If the role has a name of 'alias', only items of type application_context, approval_status, assembly_component_usage, class, class_system, document_type, draughting_model, general_property, mechanical_design_geometric_presentation_representation, organization, product, product_concept, product_concept_feature, product_concept_feature_category, product_definition, product_definition_formation, property_definition, security_classification_level, or shape_representation shall be in the set of items.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the applied_identification_assignment entity:
EXPRESS specification:
*) ENTITY applied_ineffectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; WHERE WR1: SIZEOF(['AUTOMOTIVE_DESIGN.LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 0; END_ENTITY; (*
Attribute definitions:
items: the set of items that are set ineffective by the applied_ineffectivity_assignment.
Formal Propositions:
WR1: An applied_ineffectivity_assignment shall have an assigned_effectivity which is not of type lot_effectivity, serial_numbered_effectivity, or product_definition_effectivity.
EXPRESS specification:
*) ENTITY applied_name_assignment SUBTYPE OF (name_assignment); items : SET [1:?] OF name_item; WHERE WR1: (NOT (SELF.role.name = 'kinematic element name')) OR item_correlation (SELF.items, ['KINEMATIC_STRUCTURE', 'KINEMATIC_JOINT', 'KINEMATIC_LINK']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the name is assigned.
Formal Propositions:
WR1: If the role has a name of 'kinematic element name', only items of type kinematic_structure, kinematic_joint, or kinematic_link shall be in the set of items.
EXPRESS specification:
*) ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; WHERE WR1: (NOT (SELF.role.name = 'organization in contract')) OR item_correlation (SELF.items, ['CONTRACT']); WR2: (NOT (SELF.role.name = 'signing for contract')) OR item_correlation (SELF.items, ['APPLIED_ORGANIZATION_ASSIGNMENT']); WR3: (NOT (SELF.role.name = 'validity context')) OR item_correlation (SELF.items, ['ACTION_PROPERTY', 'RESOURCE_PROPERTY', 'PROPERTY_DEFINITION']); WR4: (NOT (SELF.role.name = 'alias scope')) OR item_correlation (SELF.items, ['APPLIED_IDENTIFICATION_ASSIGNMENT']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the organization is assigned.
Formal Propositions:
WR1: If the role has a name of 'organization in contract', only items of type contract shall be in the set of items.
WR2: If the role has a name of 'signing for contract', only items of type applied_organization_assignment shall be in the set of items.
WR3: If the role has a name of 'validity context', only items of type action_property, resource_property, or property_definition shall be in the set of items.
WR4: If the role has a name of 'alias scope', only items of type applied_identification_assignment shall be in the set of items.
EXPRESS specification:
*) ENTITY applied_organizational_project_assignment SUBTYPE OF (organizational_project_assignment); items : SET [1:?] OF organizational_project_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the organizational_project is assigned.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the applied_organizational_project_assignment entity:
EXPRESS specification:
*) ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; WHERE WR1: (NOT (SELF.role.name = 'signing for contract')) OR item_correlation (SELF.items, ['APPLIED_ORGANIZATION_ASSIGNMENT']); END_ENTITY; (*
Attribute definitions:
items: the set of items to which the person_and_organization is assigned.
Formal Propositions:
WR1: If the role has a name of 'signing for contract', only items of type applied_organization_assignment shall be in the set of items.
EXPRESS specification:
*) ENTITY applied_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF presented_item_select; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the presentation_representation or presentation_area is assigned.
EXPRESS specification:
*) ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the security_classification is assigned.
EXPRESS specification:
*) ENTITY applied_time_interval_assignment SUBTYPE OF (time_interval_assignment); items : SET [1:?] OF time_interval_item; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the time_interval is assigned.
EXPRESS specification:
*) ENTITY attribute_language_assignment SUBTYPE OF (attribute_classification_assignment); items : SET [1:?] OF attribute_language_item; DERIVE language : label := SELF\attribute_classification_assignment. assigned_class.name; WHERE WR1: SELF\attribute_classification_assignment.role.name IN ['primary','translated']; WR2: 'AUTOMOTIVE_DESIGN.'+ 'LANGUAGE' IN TYPEOF(SELF\attribute_classification_assignment.assigned_class ); END_ENTITY; (*
Attribute definitions:
items: the set of objects to which the language classification is assigned.
language: The language specifies the name of the assigned_class that provides an identification for the language in which an attribute value is specified.
Formal Propositions:
WR1: The language used to specify the string valued attributes in the set of items shall be marked either as the 'primary' language or as 'translated'.
WR2: The instance referenced as assigned_class shall be of type language.
EXPRESS specification:
*) ENTITY barring_hole SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'barring profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') )) = 1 ) )) = 1; WR3: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) = 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 2} )) = 1); WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT( i.name IN ['orientation','base radius']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <> 1) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The barring_hole shall be the basis shape for exactly one shape_aspect with a name of 'hole profile' and a description of 'closed profile occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' and a relating_shape_aspect that references a circular_closed_profile, ngon_closed_profile, rectangular_closed_profile, or closed_path_profile.
WR2: The barring_hole shall be the basis shape for exactly one shape_aspect with a name of 'barring profile' and a description of 'closed profile occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of of 'profile usage'.
WR3: The barring_hole shall contain exactly one implicit representation of type shape_representation_with_parameters. This implicit representation of the barring_hole shall contain between one and two representation_item in its set of items.
WR4: The implicit representation of a barring_hole shall contain only representation_items with a name of either 'orientation' or 'base radius'.
WR5: The implicit representation of a barring_hole shall contain exactly one representation_item that has a name of 'base radius' and is of type measure_representation_item and length_measure_with_unit.
Informal Propositions:
IP1: The barring profile shall lie in the same plane as the hole profile.
IP2: The barring profile shall lie completely inside the hole profile.
EXPRESS specification:
*) ENTITY bead SUBTYPE OF (feature_definition); WHERE WR1: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) > 2) )) = 0); WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT( i.name IN ['orientation','base radius']) )) > 0) )) = 0; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) > 1) )) = 0; WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'sweep path') AND (sa.description = 'path feature component occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'bead profile') AND (sa.description = 'open profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1; WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'starting' ) AND ('AUTOMOTIVE_DESIGN.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'ending' ) AND ('AUTOMOTIVE_DESIGN.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The bead shall contain at most one implicit representation of type shape_representation_with_parameters. If present, this implicit representation of the bead shall contain at most two representation_items in its set of items.
WR2: The implicit representation of a bead shall only contain representation_items in its set of items that have a name of either 'orientation' or 'base radius'.
WR3: The implicit representation of the bead shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'base radius'.
WR4: The bead shall be the basis shape for exactly one shape_aspect with a name of 'sweep path' and a description of 'path feature component occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'path feature component usage' in which the relating_shape_aspect is a path_feature_component.
WR5: The bead shall be the basis shape for exactly one shape_aspect with a name of 'bead profile' and a description of 'open profile occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is an open_path_profile, a partial_circular_profile, a rounded_u_profile, a square_u_profile, a tee_profile, or a vee_profile.
WR6: The bead shall be the basis shape for exactly one shape_aspect with a name of 'end condition' and a description of 'bead end occurrence' that is the related_shape_aspect in exactly one feature_component_relationship with a name of 'bead end usage' and a description of 'starting' in which the relating_shape_aspect is a bead_end.
WR7: The bead shall be the basis shape for exactly one shape_aspect with a name of 'end condition' and a description of 'bead end occurrence' that is the related_shape_aspect in exactly one feature_component_relationship with a name of 'bead end usage' and a description of 'ending' in which the relating_shape_aspect is a bead_end.
EXPRESS specification:
*) ENTITY bead_end SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['linear','open','radiused']; WR3: (SELF.description <> 'linear') XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) > 0); WR4: (SELF.description <> 'linear') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR5: (SELF.description <> 'linear') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='end length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR6: (SELF.description <> 'linear') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'end shape') AND (i\descriptive_representation_item.description IN ['straight','tapered']) AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) = 1); WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description IN ['starting' ,'ending' ]) AND ('AUTOMOTIVE_DESIGN.BEAD' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition') AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'bead end occurrence') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The bead_end shall be an aspect of the shape of a feature_component_definition.
WR2: The description for the bead_end shall be either 'linear', 'open', or 'radiused'.
WR3: A bead_end has an implicit representation if and only if it has a description of 'linear'.
WR4: If the description of the bead_end is 'linear', its implicit representation shall contain exactly two representation_items in its set of items.
WR5: If the description of the bead_end is 'linear', exactly one representation_item used for the implicit representation of the bead_end shall be of type measure_representation_item and length_measure_with_unit with a name of 'end length'.
WR6: If the description of the bead_end is 'linear', exactly one representation_item used for the implicit representation of the bead_end shall be of type descriptive_representation_item with a name of 'end shape' and a description of either 'straight' or 'tapered'.
WR7: The bead_end shall be the relating_shape_aspect in exactly one feature_component_relationship with a name of 'bead end usage' and a description of either 'starting' or 'ending' in which the related_shape_aspect is a shape_aspect of a bead with a name of 'end condition' and a description of 'bead end occurrence'.
EXPRESS specification:
*) ENTITY boss SUBTYPE OF (feature_definition); WHERE WR1: SELF.description IN ['circular','rectangular','complex']; WR2: (SELF.description <> 'circular') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'circular profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1); WR3: (SELF.description <> 'complex') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1); WR4: (SELF.description <> 'rectangular') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'rectangular profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1); WR5: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation.items) <= 2}) )) = 0); WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT( i.name IN ['orientation','fillet radius']) )) > 0) )) = 0; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='fillet radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) > 1) )) = 0; WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'boss hight occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'boss hight') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'linear') )) = 1 ) )) = 1; WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'top condition occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'boss top usage') AND ('AUTOMOTIVE_DESIGN.BOSS_TOP' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR10: NOT(SELF.description IN ['rectangular','complex']) OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description IN ['angle taper','directed taper']) )) = 1 ) )) <= 1); WR11: (SELF.description <> 'circular') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in diameter occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description IN ['angle taper','diameter taper']) )) = 1 ) )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The description for the boss shall be either 'circular', 'rectangular', or 'complex'.
WR2: If the boss has a description of 'circular' the boss shall be the basis shape for exactly one shape_aspect with a description of 'circular profile occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is a circular_closed_profile.
WR3: If the boss has a description of 'complex', the boss shall be the basis shape for exactly one shape_aspect with a description of 'enclosed boundary occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is either a closed_path_profile or a ngon_closed_profile.
WR4: If the boss has a description of 'rectangular' the boss shall be the basis shape for exactly one shape_aspect with a description of 'rectangular profile occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is a rectangular_closed_profile.
WR5: The boss shall contain at most one implicit representation of type shape_representation_with_parameters. If present, this representation shall contain between one and two representation_items in its set of items.
WR6: The implicit representation of the boss shall contain only representation_items that have a name of either 'orientation' or 'fillet radius'.
WR7: At most one representation_item used for the implicit representation of the boss shall have a name of 'fillet radius'. This representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR8: The boss shall be the basis shape for exactly one shape_aspect with a description of 'boss height occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'boss height' and a description of ' path feature component usage' in which the relating_shape_aspect is a path_feature_component with a description of 'linear'.
WR9: The boss shall be the basis shape for exactly one shape_aspect with a description of 'top condition occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'boss top usage' in which the relating_shape_aspect is a boss_top.
WR10: If the boss has a description of 'rectangular' or 'complex', the boss shall be the basis shape for at most one shape_aspect with a description of 'change in boundary occurrence' that is the related_shape_aspect in exactly one feature_component_relationship with a description of 'taper usage' in which the relating_shape_aspect is a taper with a description of either 'angle taper' or 'directed taper'.
WR11: If the boss has a description of 'circular', the boss shall be the basis shape for at most one shape_aspect with a description of 'change in diameter occurrence' that is the related_shape_aspect in exactly one feature_component_relationship with a description of 'taper usage' in which the relating_shape_aspect is a taper with a description of either 'angle taper' or 'diameter taper'.
EXPRESS specification:
*) ENTITY boss_top SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['planar','complex']; WR3: (SELF.description <> 'planar') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1); WR4: (SELF.description <> 'planar') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1); WR5: (SELF.description <> 'complex') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1); WR6: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'boss top usage') AND (sar.description IN ['starting', 'ending' ]) AND ('AUTOMOTIVE_DESIGN.BOSS' IN TYPEOF(sar.related_shape_aspect)) AND (sar.related_shape_aspect.name = 'top condition occurrence') )) = 1; WR7: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) > 1) )) = 0); WR8: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((SIZEOF(pdr.used_representation.items) = 0) XOR (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='top radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1)) )) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The boss_top shall be an aspect of the shape of a feature_component_definition.
WR2: The description of the boss_top shall be either 'planar' or 'complex'.
WR3: If the description of the boss_top is 'planar', the boss_top shall have exactly one direction_shape_representation.
WR4: If the description of the boss_top is 'planar', the boss_top shall have exactly one location_shape_representation.
WR5: If the description of the boss_top is 'complex', the boss_top shall have exactly one face_shape_representation.
WR6: The boss_top shall be the relating_shape_aspect in exactly one feature_component_relationship with a name of 'boss top usage' and a description of either 'starting' or 'ending' in which the related_shape_aspect is a shape_aspect of a boss with a name of 'top condition occurrence'.
WR7: The boss_top shall have at most one shape_representation_with_parameters to specify its implicit representation. If present, this implicit representation shall contain at most one representation_item it its set of items.
WR8: If present, the representation_item shall be of type measure_representation_item and length_measure_with_unit and shall have a name of 'top radius'.
NOTE 1 The viewport specifies the rectangular boundary of the view as it is depicted in the drawing sheet.
NOTE 2 The definition of this entity is identical to the definition in ISO 10303-202.
EXPRESS specification:
*) ENTITY camera_image_2d_with_scale SUBTYPE OF (camera_image); DERIVE scale: positive_ratio_measure := (SELF\mapped_item.mapping_target\planar_extent.size_in_x) / (SELF\mapped_item.mapping_source.mapping_origin\ camera_model_d2.view_window\planar_extent.size_in_x); WHERE WR1: ('AUTOMOTIVE_DESIGN.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin)); WR2: aspect_ratio (SELF\mapped_item.mapping_target) = aspect_ratio (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window); WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; END_ENTITY; (*
Attribute definitions:
scale: The positive_ratio_measure derived from the rectangular size of the viewport and the rectangular size of the view_window of the camera_model_d2.
Formal Propositions:
WR1: The source of the projection shall be a camera_model_d2.
WR2: The aspect ratio of the viewport shall equal the aspect ratio of the view_window of the camera_model.
WR3: The view_window_clipping attribute of the camera_model_d2 shall be true.
EXPRESS specification:
*) ENTITY chamfer SUBTYPE OF (transition_feature); WHERE WR1: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.CHAMFER_OFFSET' IN TYPEOF(sar.related_shape_aspect)) AND (sar.related_shape_aspect.description = 'first offset') )) = 1; WR2: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.CHAMFER_OFFSET' IN TYPEOF(sar.related_shape_aspect)) AND (sar.related_shape_aspect.description = 'second offset') )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The chamfer shall be the relating_shape_aspect in exactly one feature_component_relationship, where the related_shape_aspect is a chamfer_offset with a description of 'first offset'.
WR2: The chamfer shall be the relating_shape_aspect in exactly one feature_component_relationship where the related_shape_aspect is a chamfer_offset with a description of 'second offset'.
WR3: The chamfer shall contain exactly one face_shape_representation of its resulting chamfer face. This representation shall have a name of 'chamfer face'.
EXPRESS specification:
*) ENTITY chamfer_offset SUBTYPE OF (shape_aspect); WHERE WR1: SELF.description IN ['first offset','second offset']; WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1; WR4: (SELF.description <> 'first offset') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='offset amount') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR5: (SELF.description <> 'second offset') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='offset amount') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) OR (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='offset angle') AND ('AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(i)) )) = 1)) )) = 1); WR6: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.CHAMFER' IN TYPEOF(sar.relating_shape_aspect)) )) >= 1; WR7: (SELF.description <> 'first offset') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape') )) = 1); WR8: (SELF.description <> 'second offset') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape') )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The description for the chamfer_offset shall be either 'first offset' or 'second offset'.
WR2: The chamfer_offset shall have its implicit representation specified by exactly one shape_representation_with_parameters.
WR3: The chamfer_offset shall have an implicit representation that contains exactly one representation_item in its set of items.
WR4: If the description of the chamfer_offset is 'first offset', exactly one representation_item used for the implicit representation of the chamfer_offset shall be of type measure_representation_item and length_measure_with_unit with a name of 'offset amount'.
WR5: If the description of the chamfer_offset is 'second offset', the implicit representation shall contain a representation_item that is of type measure_representation_item with either a name of 'offset amount' and of type length_measure_with_unit or a name of 'offset angle' that is of type plane_angle_measure_with_unit.
WR6: The chamfer_offset shall be the related_shape_aspect in at least one feature_component_relationship that refers to a chamfer as its relating_shape_aspect.
WR7: If the chamfer_offset has a description of 'first offset', it shall contain exactly one face_shape_representation with a name of 'first face shape'.
WR8: If the chamfer_offset has a description of 'second offset', it shall contain exactly one face_shape_representation with a name of 'second face shape'.
EXPRESS specification:
*) ENTITY characterized_class SUBTYPE OF (characterized_object, class); END_ENTITY; (*
EXPRESS specification:
*) ENTITY circular_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The circular_closed_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The circular_closed_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the circular_closed_profile shall contain two representation_items in its set of items.
WR4: Exactly one representation_item used for the implicit representation of a circular_closed_profile shall be of type placement with a name of 'orientation'.
WR5: Exactly one representation_item used for the implicit representation of a circular_closed_profile shall be of type measure_representation_item and length_measure_with_unit with a name of 'diameter'.
Informal Propositions:
IP1: The circular_closed_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the circular_closed_profile is defined at the centre of the circle.
EXPRESS specification:
*) ENTITY circular_pattern SUBTYPE OF (replicate_feature); WHERE WR1: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {2 <= SIZEOF(pdr.used_representation.items) <= 5} )) = 1); WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base feature rotation') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='number of features') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='angular spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The circular_pattern shall have exactly one implicit representation of type shape_representation_with_parameters. This representation shall contain between two and five representation_items in its set of items.
WR2: The implicit representation of the circular_pattern shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'diameter'.
WR3: The implicit representation of the circular_pattern shall contain at most one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'base feature rotation'.
WR4: The implicit representation of the circular_pattern shall contain exactly one representation_item of type measure_representation_item with a value_component of type count_measure and a name of 'number of features'.
WR5: The implicit representation of the circular_pattern shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'angular spacing'.
Informal Propositions:
IP1: The location of the circular_pattern shall be defined at the centre of the circle.
IP2: The circular_pattern shall be defined in the X-Y plane, with the X direction intersecting the placement position of the first base feature.
EXPRESS specification:
*) ENTITY class SUBTYPE OF (group); END_ENTITY; (*
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the class entity:
EXPRESS specification:
*) ENTITY class_system SUBTYPE OF (group); END_ENTITY; (*
EXPRESS specification:
*) ENTITY class_usage_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF class_usage_effectivity_context_item; WHERE WR1: SELF.role.name = 'class usage influence'; WR2: SIZEOF( QUERY( i <* SELF.items | NOT ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0; WR3: ('AUTOMOTIVE_DESIGN.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND (SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity) ) = 1) AND (SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND (SIZEOF( QUERY( i <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items | NOT('AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0); END_ENTITY; (*
Attribute definitions:
items: the set of items for which the applied_effectivity_assignment identifies a design impact.
Formal Propositions:
WR1: The class_usage_effectivity_context_assignment shall have a role with a name of 'class usage influence'.
WR2: The class_usage_effectivity_context_assignment shall only have product_definitions in its set of items which reference as frame_of_reference a product_definition_context with a name of 'conceptual definition'.
WR3: The class_usage_effectivity_context_assignment shall reference an applied_effectivity_assignment with an assigned_effectivity which is not of an effectivity subtype and which has an id of 'class usage' and which has only product_concept_feature_category_usage objects in the set of items.
EXPRESS specification:
*) ENTITY closed_path_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='profile shape') )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The closed_path_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The closed_path_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the closed_path_profile shall contain one representation_item in its set of items.
WR4: Exactly one representation_item used for the implicit representation of a closed_path_profile shall be of type placement with a name of 'orientation'.
WR5: The closed_path_profile shall have exactly one path_shape_representation.
WR6: The representation_item contained in the path_shape_representation shall have a name of 'profile shape'.
Informal Propositions:
IP1: The closed_path_profile shall be planar and shall lie in the X-Y plane of the reference system if this is present.
EXPRESS specification:
*) ENTITY composite_hole SUBTYPE OF (compound_feature); WHERE WR1: SELF\characterized_object.description IN ['counterbore', 'countersunk']; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar) )) = 2) )) = 1; WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar) )) = 2) AND (SIZEOF (get_round_holes_for_composite_hole(bag_to_set( USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) ) = 2) )) = 1; WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF ( QUERY( rh2 <* get_round_holes_for_composite_hole(bag_to_set( USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) | (SIZEOF ( QUERY( rh3 <* get_round_holes_for_composite_hole(bag_to_set( USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) | (rh2 :<>: rh3) AND (get_diameter_for_round_hole(rh2) = get_diameter_for_round_hole(rh3)) )) = 0) )) = 0) )) = 1; WR5: (SELF.description <> 'countersunk') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF ( QUERY( rh <* get_round_holes_for_composite_hole(bag_to_set( USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) | (SIZEOF( QUERY( sa1 <* get_shape_aspects(rh) | (sa.description = 'change in diameter occurrence') AND (SIZEOF( QUERY( sar <* USEDIN(sa1,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) )) = 1) )) = 1) )) = 1) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The description of the composite_hole shall be either 'counterbore' or 'countersunk'.
WR2: The basis shape of the composite_hole shall be refered to by a composite_shape_aspect with a name of 'compound feature in solid'. This shape_aspect shall be the relating_shape_aspect of exactly two instances of feature_component_relationship.
WR3: The feature_component_relationships refering to the basis shape shall refer both either to instances of instanced_feature or to instances of placed_feature as their related_shape_aspect. In case the related_shape_aspects are of type instanced_feature they shall be of type round_hole, else the placed_features shall refer to round_holes as their base features.
WR4: The round_holes that comprise the composite_hole shall not have diameters that are equal in length.
WR5: If the description of the composite_hole is 'countersunk', exactly one round_hole that comprises it shall be a tapered hole.
EXPRESS specification:
*) ENTITY compound_feature SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name IN ['compound feature in solid','compound feature in panel']) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) )) = 1; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| NOT('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) )) > 0) )) = 0; WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| NOT(SIZEOF(['AUTOMOTIVE_DESIGN.INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.PLACED_FEATURE', 'AUTOMOTIVE_DESIGN.APPLIED_AREA', 'AUTOMOTIVE_DESIGN.TRANSITION_FEATURE'] *TYPEOF(sar.related_shape_aspect) ) = 1) )) > 0) )) = 0; WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('AUTOMOTIVE_DESIGN.PLACED_FEATURE' IN TYPEOF(sar.related_shape_aspect)) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(sar.related_shape_aspect.of_shape.definition) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='element placement') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) <> 1) )) > 0) )) > 0) )) = 0; WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in solid') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF(['AUTOMOTIVE_DESIGN.TRANSITION_FEATURE', 'AUTOMOTIVE_DESIGN.BOSS', 'AUTOMOTIVE_DESIGN.APPLIED_AREA'] *TYPEOF(sar.related_shape_aspect)) + SIZEOF(['AUTOMOTIVE_DESIGN.SLOT', 'AUTOMOTIVE_DESIGN.POCKET', 'AUTOMOTIVE_DESIGN.ROUND_HOLE', 'AUTOMOTIVE_DESIGN.RIB', 'AUTOMOTIVE_DESIGN.COMPOUND_FEATURE'] *TYPEOF(sar.related_shape_aspect.of_shape.definition)) = 0 ) )) > 0) )) = 0; WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in panel') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF(['AUTOMOTIVE_DESIGN.TRANSITION_FEATURE'] *TYPEOF(sar.related_shape_aspect)) + SIZEOF(['AUTOMOTIVE_DESIGN.BEAD', 'AUTOMOTIVE_DESIGN.HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.JOGGLE', 'AUTOMOTIVE_DESIGN.LOCATOR', 'AUTOMOTIVE_DESIGN.COMPOUND_FEATURE'] *TYPEOF(sar.related_shape_aspect.of_shape.definition)) = 0 ) )) > 0) )) = 0; WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in panel') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('AUTOMOTIVE_DESIGN.COMPOUND_FEATURE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.name = 'compound feature in solid') )) > 0) )) + SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in solid') AND (SIZEOF (QUERY (sar <* USEDIN (sa,'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('AUTOMOTIVE_DESIGN.COMPOUND_FEATURE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.name = 'compound feature in panel') )) > 0) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: Each instance of compound_feature shall have a basis shape that has exactly one shape_aspect identified on it that is of type composite_shape_aspect. The composite_shape_aspect shall have a name of either 'compound feature in solid' or 'compound feature in panel'.
WR2: The shape_aspect_relationships that are used to relate the single features with the composite_shape_aspect shall be of type feature_component_relationship.
WR3: The composite_shape_aspect defining a compound_feature shall be the relating_shape_aspect only in shape_aspect_relationships with a related_shape_aspect that is of type instanced_feature, placed_feature, applied_area, or transition_feature.
WR4: Each placed_feature that is specified by the component_relationships of a composite_shape_aspect of a compound_feature shall have a representation_item of type placement with a name of 'element placement' in its shape_representation_with_parameters.
WR5: If the compound_feature is a solid feature, its constituents shall only be of type transition_feature, slot, pocket, boss, round_hole, rib, applied_area, or another compound_feature.
WR6: If the compound_feature is a panel feature, its constituents shall only be of type transition_feature, bead, hole_in_panel, feature_in_panel, joggle, locator, or another compound_feature.
WR7: The compound_feature shall only have constituent compound_features of the same type (i.e. solid feature or panel feature).
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the compound_feature entity:
EXPRESS specification:
*) ENTITY compound_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: ('AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND (SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3); WR2: SIZEOF( QUERY( cbsr_i <* SELF.items | SIZEOF( ['AUTOMOTIVE_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(cbsr_i) ) <> 1 )) = 0; WR3: SIZEOF( QUERY( cbsr_i <* SELF.items | SIZEOF( ['AUTOMOTIVE_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(cbsr_i) ) = 1 )) > 0; WR4: SIZEOF( QUERY( cbsr_i <* SELF.items | ('AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(cbsr_i)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.COMPOUND_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF(cbsr_i\mapped_item.mapping_source) ) <> 1 ) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The compound_shape_representation shall have a coordinate_space_dimension equal to three.
WR2: The items in the compound_shape_representation shall be of type edge_based_wireframe_model, face_based_surface_model, mapped_item or axis2_placement_3d.
WR3: The items of a compound_shape_representation shall include at least one mapped_item or one edge_based_wireframe_model or one face_based_surface_model.
WR4: If there is a mapped_item in a compound_shape_representation, the source of the mapped_item shall be a compound_shape_representation, a edge_based_wireframe_shape_representation, or a non_manifold_surface_shape_representation.
Informal Propositions:
IP1: All elements in a compound_shape_representation shall be topologically connected.
EXPRESS specification:
*) ENTITY configured_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF configured_effectivity_item; WHERE WR1: (SIZEOF(['AUTOMOTIVE_DESIGN.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 1) AND (SELF.assigned_effectivity.id = 'configuration validity'); WR2: SIZEOF(SELF.items) = 1; WR3: SIZEOF( QUERY( i <* SELF.items | NOT ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(i)) OR NOT (i\product_definition.frame_of_reference.name IN ['conceptual definition','part occurrence', 'functional definition','alternative definition']) )) = 0; WR4: SELF.role.name IN ['design','usage']; WR5: (SELF.role.name <> 'design') OR (SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'part occurrence') )) = 0); WR6: (SELF.role.name <> 'usage') OR (SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'conceptual definition') )) = 0); WR7: SELF.role.description IN ['exception','inherited','local']; WR8: SIZEOF( QUERY( x <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AUTOMOTIVE_DESIGN.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x) )) = 1; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the configuration information is assigned.
Formal Propositions:
WR1: The configured_effectivity_assignment shall have an assigned_effectivity which is not of an effectivity subtype and which has an id of 'configuration validity'.
WR2: The configured_effectivity_assignment shall have exactly one item in its set of items.
WR3: The configured_effectivity_assignment shall only have product_definitions in its set of items which reference as frame_of_reference a product_definition_context with a name of 'conceptual definition', 'part occurrence', 'functional definition', or 'alternative definition'.
WR4: The configured_effectivity_assignment shall have as role an object_role with a name of 'design' or 'usage'.
WR5: If the configured_effectivity_assignment has as role an object_role with a name of 'design', it may not have product_definitions in its set of items which reference as frame_of_reference a product_definition_context with a name of 'part occurrence'.
WR6: If the configured_effectivity_assignment has as role an object_role with a name of 'usage', it may not have product_definitions in its set of items which reference as frame_of_reference a product_definition_context with a name of 'conceptual definition', or 'functional definition'.
WR7: The configured_effectivity_assignment shall have as role an object_role with a description of 'exception', 'inherited', or 'local'.
WR8: The configured_effectivity_assignment shall be referenced as assigned_effectivity_assignment by exactly one configured_effectivity_context_assignment.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the configured_effectivity_assignment entity:
EXPRESS specification:
*) ENTITY configured_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF configured_effectivity_context_item; WHERE WR1: 'AUTOMOTIVE_DESIGN.CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment); WR2: SIZEOF(SELF.items) = 1; END_ENTITY; (*
Attribute definitions:
items: the set of items that specify the characteristic or combination of characteristics for which the configured_effectivity_items in the set of items of the assigned_effectivity_assignment provide a solution.
Formal Propositions:
WR1: The configured_effectivity_context_assignment shall reference as assigned_effectivity_assignment a configured_effectivity_assignment.
WR2: The configured_effectivity_context_assignment shall have exactly one item in its set of items.
EXPRESS specification:
*) ENTITY constructive_geometry_representation SUBTYPE OF (representation); WHERE WR1: ('AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ({2 <= SELF.context_of_items\geometric_representation_context. coordinate_space_dimension <= 3}); WR2: SIZEOF( QUERY( cgr_i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.PLACEMENT', 'AUTOMOTIVE_DESIGN.CURVE', 'AUTOMOTIVE_DESIGN.EDGE', 'AUTOMOTIVE_DESIGN.FACE', 'AUTOMOTIVE_DESIGN.POINT', 'AUTOMOTIVE_DESIGN.SURFACE', 'AUTOMOTIVE_DESIGN.FACE_SURFACE', 'AUTOMOTIVE_DESIGN.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0; WR3: SIZEOF( USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0; WR4: SIZEOF( USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The constructive_geometry_representation shall have a geometric_representation_context as context_of_items. This geometric_representation_context shall have a coordinate_space_dimension of value '2' or '3'.
WR2: The items in the constructive_geometry_representation shall be of type placement, curve, edge, face, point, surface, face_surface or vertex_point.
WR3: The constructive_geometry_representation shall play the role of rep_2 for at least one constructive_geometry_representation_relationship.
WR4: The constructive_geometry_representation shall not play the role of mapped_representation for a representation_map.
EXPRESS specification:
*) ENTITY constructive_geometry_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1: (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ('AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); WR2: 'AUTOMOTIVE_DESIGN.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(SELF.rep_2); WR3: SIZEOF(['AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.CONSTRUCTIVE_GEOMETRY_REPRESENTATION'] * TYPEOF(SELF.rep_1)) = 1; WR4: NOT('AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; (*
Formal Propositions:
WR1: Both representations playing the roles of rep_1 and rep_2 of the constructive_geometry_representation_relationship shall share the same geometric_representation_context.
WR2: The representation playing the role of rep_2 of the constructive_geometry_representation_relationship shall be of type constructive_geometry_representation.
WR3: The representation playing the role of rep_1 of the constructive_geometry_representation_relationship shall be of type shape_representation or constructive_geometry_representation.
WR4: The constructive_geometry_representation_relationship shall not be of type representation_relationship_with_transformation.
EXPRESS specification:
*) ENTITY contact_ratio_representation SUBTYPE OF (representation); WHERE WR1: (SIZEOF(SELF.items) = 1) AND (SIZEOF( QUERY( i <* SELF.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE'] * TYPEOF(i) ) = 1) AND (i.name = 'ratio value') )) = 1); WR2: (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | pdr.name = 'contact ratio reference' )) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | (pdr.name = 'contact ratio reference') AND ('AUTOMOTIVE_DESIGN.PHYSICALLY_MODELLED_PRODUCT_DEFINITION' IN TYPEOF(pdr.definition.definition)) )) = 1); WR3: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') ) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( gpa <* USEDIN(pdr.definition,'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AUTOMOTIVE_DESIGN.GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition)) AND (gpa.base_definition.name = 'surface_texture') )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: Each instance of contact_ratio_representation shall contain exactly one representation_item in its set of items. This representation_item shall be of type measure_representation_item or of type value_range and it shall have a name of 'ratio value'.
WR2: Each instance of contact_ratio_representation shall be referenced as the used_representation by exactly one property_definition_representation that has a name of 'contact ratio reference'. This property_definition_representation shall relate the representation with a physically_modelled_product_definition.
WR3: Each instance of contact_ratio_representation shall be referenced by exactly one property_definition_representation. This property_definition_representation shall relate the representation with a property_definition that is the derived_definition of a general_property_association that refers as base_definition to a general_property with a name of 'surface_texture'.
EXPRESS specification:
*) ENTITY default_tolerance_table SUBTYPE OF (representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | NOT('AUTOMOTIVE_DESIGN.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0; WR2: (SIZEOF( QUERY( rr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name <> 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name <> 'default tolerances') )) = 0) AND (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0); END_ENTITY; (*
Formal Propositions:
WR1: An instance of default_tolerance_table shall contain only representation_items of type default_tolerance_table_cell in its set or items.
WR2: An instance of default_tolerance_table shall not be referenced by any representation_relationship except as rep_1 by zero or more representation_relationships with a name of 'general tolerance definition'. If such representation_relationships exist, they shall reference as rep_2 representations with a name of 'default tolerances'.
EXPRESS specification:
*) ENTITY default_tolerance_table_cell SUBTYPE OF (compound_representation_item); WHERE WR1: SIZEOF( QUERY( x <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x)))=1; WR2: default_tolerance_table_cell_wr2(SELF\ compound_representation_item.item_element); WR3: default_tolerance_table_cell_wr3(SELF\ compound_representation_item.item_element); WR4: default_tolerance_table_cell_wr4(SELF\ compound_representation_item.item_element); WR5: default_tolerance_table_cell_wr5(SELF\ compound_representation_item.item_element); END_ENTITY; (*
Formal Propositions:
WR1: A default_tolerance_table_cell shall be in the set of items of exactly one default_tolerance_table.
WR2: Each instance of default_tolerance_table_cell shall refer to at most five representation_items as item_element.
WR3: Either exactly one representation_item in the set of item_elements shall be a measure_representation_item with the name of 'significant number of digits' or there shall be two representation_items of type measure_representation_item where one of them has the name of 'lower limit' and the other one has the name of 'upper limit'.
WR4: Either exactly one representation_item in the set of item_elements shall be a measure_representation_item with the name of 'plus minus tolerance value' or there shall be two representation_items of type measure_representation_item where one of them has the name of 'lower tolerance value' and the other one has the name of 'upper tolerance value'.
WR5: At most one representation_item in the set of item_elements shall be of type descriptive_representation_item. If present, this descriptive_representation_item shall have a name of 'cell description'.
EXPRESS specification:
*) ENTITY derived_unit_variable SUBTYPE OF (derived_unit, variable_semantics); INVERSE associated_variable_environment: environment FOR semantics; END_ENTITY; (*
Attribute definitions:
associated_variable_environment: the environment that specifies the representation for the derived unit.
EXPRESS specification:
*) ENTITY directed_angle SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1; WR4: SELF.description IN ['punch direction','profile normal','surface normal']; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The directed_angle shall be an aspect of the shape of a feature_component_definition.
WR2: The directed_angle shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the shape of the directed_angle shall contain exactly one representation_item in its set of items.
WR4: The description of the directed_angle shall be either 'punch direction', 'profile normal', or 'surface normal'.
WR5: The implicit representation of the directed_angle shall have exactly one representation_item in its set of items. This representation_item shall be of type measure_representation_item and plane_angle_measure_with_unit and shall have a name of 'angle'.
EXPRESS specification:
*) ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; (*
EXPRESS specification:
*) ENTITY direction_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF( QUERY( i <* SELF.items | 'AUTOMOTIVE_DESIGN.DIRECTION' IN TYPEOF(i) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The direction_shape_representation shall have exactly one representation_item in its set of items.
WR2: The geometric element that is used to represent the direction_shape_representation shall be a direction.
EXPRESS specification:
*) ENTITY document_file SUBTYPE OF (document,characterized_object); WHERE WR1: SELF\characterized_object.name = ''; WR2: NOT EXISTS(SELF\characterized_object.description); WR3: SIZEOF( QUERY( drt <* SELF\document.representation_types | drt.name IN ['digital','physical'] )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The name of the characterized_object shall not be used, use name of document.
WR2: The description of the characterized_object shall not be used, use description of document.
WR3: The document shall have exactly one document_representation_type with a name of either 'digital' or 'physical'.
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the document_file entity:
EXPRESS specification:
*) ENTITY document_product_equivalence SUBTYPE OF (document_product_association); WHERE WR1: SELF.name = 'equivalence'; WR2: NOT('AUTOMOTIVE_DESIGN.PRODUCT' IN TYPEOF(SELF.related_product)) OR ((SELF.relating_document.kind. product_data_type = 'configuration controlled document') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product,'AUTOMOTIVE_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1)); WR3: NOT('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR ((SELF.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product\ product_definition_formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); WR4: NOT('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR ((SELF.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product\ product_definition.formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1)); END_ENTITY; (*
Formal Propositions:
WR1: The name of the document_product_association shall be 'equivalence'.
WR2: If the related_product is a product then the relating_document shall have a document_type with product_data_type 'configuration controlled document' and there is exactly one product_related_product_category with a name of 'document' for the product.
WR3: If the related_product is a product_definition_formation then the relating_document shall have a document_type with product_data_type 'configuration controlled document version' and there is exactly one product_related_product_category with a name of 'document' for the product of the related product_definition_formation.
WR4: If the related_product is a product_definition then the relating_document shall have a document_type with product_data_type 'configuration controlled document definition' and there is exactly one product_related_product_category with a name of 'document' for the product of the related product_definition.
EXPRESS specification:
*) ENTITY draughting_model_item_association SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_aspect; SELF\item_identified_representation_usage.used_representation : draughting_model; SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; WHERE WR1: (NOT('AIC_DRAUGHTING_ELEMENTS.'+'DATUM_FEATURE_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('SHAPE_ASPECT_DEFINITION_SCHEMA.'+'DATUM_FEATURE' IN TYPEOF(SELF\item_identified_representation_usage.definition))); WR2: (NOT('AIC_DRAUGHTING_ELEMENTS.'+'DATUM_TARGET_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('SHAPE_ASPECT_DEFINITION_SCHEMA.'+'DATUM_TARGET' IN TYPEOF(SELF\item_identified_representation_usage.definition))); WR3: (NOT('AIC_DRAUGHTING_ELEMENTS.'+'ANGULAR_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('SHAPE_DIMENSION_SCHEMA.'+'ANGULAR_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition))); WR4: ((NOT('AIC_DRAUGHTING_ELEMENTS.'+'CURVE_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item))) OR (('SHAPE_DIMENSION_SCHEMA.'+'DIMENSIONAL_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition)) AND (SELF\item_identified_representation_usage.definition.name = 'curve dimension'))); WR5: ((NOT('AIC_DRAUGHTING_ELEMENTS.'+'DIAMETER_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item))) OR (('SHAPE_DIMENSION_SCHEMA.'+'DIMENSIONAL_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition)) AND (SELF\item_identified_representation_usage.definition.name = 'diameter'))); WR6: ((NOT('AIC_DRAUGHTING_ELEMENTS.'+'LINEAR_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item))) OR (('SHAPE_DIMENSION_SCHEMA.'+'DIMENSIONAL_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition)) AND ((SELF\item_identified_representation_usage.definition.name = 'heigth') OR (SELF\item_identified_representation_usage.definition.name = 'length') OR (SELF\item_identified_representation_usage.definition.name = 'width')))); WR7: ((NOT('AIC_DRAUGHTING_ELEMENTS.'+'RADIUS_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item))) OR (('SHAPE_DIMENSION_SCHEMA.'+'DIMENSIONAL_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition)) AND (SELF\item_identified_representation_usage.definition.name = 'radius'))); WR8: (NOT('AIC_DRAUGHTING_ELEMENTS.'+'GEOMETRICAL_TOLERANCE_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('SHAPE_TOLERANCE_SCHEMA.'+'GEOMETRIC_TOLERANCE' IN TYPEOF(SELF\item_identified_representation_usage.definition))); WR9: (NOT('SHAPE_DIMENSION_SCHEMA.'+'DIMENSIONAL_SIZE' IN TYPEOF(SELF\item_identified_representation_usage.definition)) OR (('DRAUGHTING_DIMENSION_SCHEMA.'+'DIMENSION_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('DRAUGHTING_ELEMENT_SCHEMA.'+'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('AIC_DRAUGHTING_ELEMENTS.'+'LEADER_DIRECTED_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('AIC_DRAUGHTING_ELEMENTS.'+'ORDINATE_DIMENSION' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ('AIC_DRAUGHTING_ELEMENTS.'+'STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)))); END_ENTITY; (*
Attribute definitions:
definition: an attribute inherited from the item_identified_represented_usage shall be redeclared as the shape_aspect for the draughting_model_association.
used_representation: an attribute_inherited from the item_identified_represented_usage shall be redeclared as the draughting_model for the draughting_model_item_association.
identified_item: an attribute inherited from the item_identified_represented_usage shall be redeclared as the draughting_model_item_association_select for the draughting_model_item_association.
Formal Propositions:
WR1: If identified_item is of type datum_feature_callout, associated definition must be of type datum_feature.
WR2: If identified_item is of type datum_target_callout, associated definition must be of type datum_target.
WR3: If identified_item is of type angular_dimension, associated definition must be of type angular_size.
WR4: If identified_item is of type curve_dimension, associated definition must be of type dimensional_size and its name must be equal to 'curve dimension'.
WR5: If identified_item is of type diameter_dimension, associated definition must be of type dimensional_size and its name must be equal to 'diameter'.
WR6: If identified_item is of type linear_dimension, associated definition must be of type dimensional_size and its name must be equal to either 'heigth' or 'length' or 'width'.
WR7: If identified_item is of type radius_dimension, associated definition must be of type dimensional_size and its name must be equal to either 'radius'.
WR8: If identified_item is of type geometrical_tolerance_callout, associated definition must be of type geometric_tolerance.
WR9: If associated definition is of type dimensional_size, identified_item must be of type dimension_callout or dimension_curve_directed_callout or leader_directed_dimension or ordinate_dimension or structured_dimension_callout.
The draughting_pre_defined_text_font entity is removed in this revision.
NOTE See entity definition in ISO 10303-46 TC2.
NOTE The definition of this entity is identical to the definition in ISO~10303-505.
EXPRESS specification:
*) ENTITY draughting_specification_reference SUBTYPE OF (document_reference); specified_items : SET [1:?] OF specified_item; WHERE WR1: (SELF.assigned_document.kind.product_data_type = 'draughting specification'); END_ENTITY; (*
Attribute definitions:
specified_items: The drawing_revisions to which a draughting specification is applied.
Formal Propositions:
WR1: Each document assigned shall be a draughting specification.
EXPRESS specification:
*) ENTITY drawing_sheet_layout SUBTYPE OF (draughting_symbol_representation); END_ENTITY; (*
EXPRESS specification:
*) ENTITY edge_round SUBTYPE OF (transition_feature); WHERE WR1: (SELF.description <> 'constant radius') XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1); WR2: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 3} )) = 1); WR3: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['radius','first offset','second offset']) )) > 0) )) = 0); WR4: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR5: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='first offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <= 1) )) = 1); WR6: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='second offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <= 1) )) = 1); WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape') )) = 1; WR8: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape') )) = 1; WR9: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: An edge_round has an implicit representation of type shape_representation_with_parameters if and only if it has a description of 'constant radius'.
WR2: If the description of the edge_round is 'constant radius', the implicit representation shall contain between one and three representation_items in its set of items.
WR3: If the description of the edge_round is 'constant radius', the implicit representation shall only contain representation_items in its set of items that have a name of either 'radius', 'first offset', or 'second offset'.
WR4: If the description of the edge_round is 'constant radius', exactly one representation_item used for the implicit representation of the edge_round shall be of type measure_representation_item and length_measure_with_unit with a name of 'radius'.
WR5: If the description of the edge_round is 'constant radius', at most one representation_item used for the implicit representation of the edge_round shall be of type measure_representation_item and length_measure_with_unit with a name of 'first offset'.
WR6: If the description of the edge_round is 'constant radius', at most one representation_item used for the implicit representation of the edge_round shall be of type measure_representation_item and length_measure_with_unit with a name of 'second offset'.
WR7: The edge_round shall be defined by exactly one representation of type face_shape_representation with a name of 'first face shape'.
WR8: The edge_round shall be defined by exactly one representation of type face_shape_representation with a name of 'second face shape'.
WR9: The edge_round shall be defined by exactly one representation of type face_shape_representation with a name of 'edge round face'.
EXPRESS specification:
*) ENTITY element_delivery SUBTYPE OF (action); WHERE WR1: (SIZEOF( QUERY ( aa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | 'AUTOMOTIVE_DESIGN.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF ( aa ) ) ) = 1) AND (SIZEOF( QUERY( aaa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ('AUTOMOTIVE_DESIGN.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF ( aaa ) ) AND (aaa.role.name = 'deliverable element') AND (SIZEOF(aaa.items) = 1) AND (SIZEOF( QUERY( i <* aaa.items | ('AUTOMOTIVE_DESIGN.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) AND (SIZEOF(i\applied_action_assignment.items) = 1) AND (SIZEOF( QUERY( i1 <* aaa\applied_action_assignment.items | ('AUTOMOTIVE_DESIGN.CONFIGURATION_ITEM' IN TYPEOF(i1)) OR (('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(i1)) AND (i1\product_definition.frame_of_reference.name = 'physical occurrence')) OR (('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(i1)) AND (SIZEOF( QUERY( prpc <* USEDIN(i1,'AUTOMOTIVE_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name IN ['part','raw material','tool'] )) = 1)) )) = 1) )) = 1) )) = 1); WR2: (SIZEOF( USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') ) = 1) AND (SIZEOF( QUERY( aoa <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa.role.name = 'destination' )) = 1 ); WR3: (SIZEOF( USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY.DEFINITION')) = 1) AND (SIZEOF( QUERY( ap <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY.DEFINITION') | SIZEOF( USEDIN( ap, 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') ) = 1 )) = 1) AND (SIZEOF( QUERY( ap <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY.DEFINITION') | SIZEOF( QUERY( apr <* USEDIN( ap, 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr.representation.name = 'delivery quantity') AND (SIZEOF(apr.representation.items) = 1) AND (SIZEOF( QUERY( i <* apr.representation.items | SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE'] * TYPEOF(i) ) = 1 )) = 1) )) = 1 )) = 1); WR4: SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The element_delivery shall be referenced as assigned_action by exactly one applied_action_assignment. This applied_action_assignment shall reference as its role an object_role that has a name of 'deliverable element' and shall have exactly one element in its set of items. This element shall be of type applied_action_assignment and shall have exactly one element in its set of items. This element shall be of type configuration_item, or shall be a product_definition which references as frame_of_reference a product_definition_context with a name of 'physical occurrence', or shall be a product_definition_formation which references as of_product a product which is referenced by a product_related_product_category with a name of either 'part', 'raw material', or 'tool'.
WR2: There shall be exactly one instance of applied_organization_assignment that contains the element_delivery in its set of items. This applied_organization_assignment shall reference as its role an organization_role that has a name of 'destination'.
WR3: There shall be exactly one instance of action_property that references the element_delivery as its definition. This action_property shall be referenced as the property by exactly one instance of action_property_representation. This action_property_representation shall reference as its representation a representation that has a name of 'delivery quantity' and that contains exactly one representation_item in its set of items. This representation_item shall be a measure_representation_item, or a value_range.
WR4: The element_delivery shall not be referenced by an action_relationship.
EXPRESS specification:
*) ENTITY exclusive_product_concept_feature_category SUBTYPE OF (product_concept_feature_category); END_ENTITY; (*
EXPRESS specification:
*) ENTITY expression_conversion_based_unit SUBTYPE OF (context_dependent_unit, variable_semantics); INVERSE associated_variable_environment: environment FOR semantics; END_ENTITY; (*
Attribute definitions:
associated_variable_environment: the environment that specifies the representation for the derived unit.
EXPRESS specification:
*) ENTITY externally_defined_class SUBTYPE OF (class,externally_defined_item); END_ENTITY; (*
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the externally_defined_class entity:
An externally_defined_dimension_definition is a type of dimensional_size and externally_defined_item that enables the specification of a kind of dimension that is not defined in this standard.
EXPRESS specification:
*) ENTITY externally_defined_dimension_definition SUBTYPE OF (dimensional_size, externally_defined_item); WHERE WR1: (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification'); WR2: 1 >= SIZEOF(QUERY ( adr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') )); END_ENTITY; (*
Formal Propositions:
WR1: The item_id shall be 'external size dimension' and the source attribute shall reference an external_source with a source_id of 'externally defined dimension specification'.
WR2: The externally_defined_dimension_definition shall be referenced by the items attribute of type applied_document_reference that references through the assigned_document attribute a document with description of 'externally defined dimension specification'.
EXPRESS specification:
*) ENTITY externally_defined_feature_definition SUBTYPE OF (feature_definition,externally_defined_item); WHERE WR1: (SELF\externally_defined_item.item_id = 'external thread') AND (SELF\externally_defined_item.source.source_id = 'external feature specification'); WR2: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') ) = 1) OR (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_REFERENCE.ITEMS')) + SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT.ITEMS')) = 1); WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({6 <= SIZEOF(pdr.used_representation.items) <= 7}) )) = 0; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'thread side') AND (i\descriptive_representation_item.description IN ['internal','external']) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'major diameter') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.RATIO_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'number of threads') )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'fit class') )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'form') )) = 1) )) = 1; WR9: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'hand') AND (i\descriptive_representation_item.description IN ['left hand','right hand']) )) = 1) )) = 1; WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'qualifier') )) = 1) )) <= 1; WR11: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (NOT (i.name IN ['thread side','major diameter','number of threads', 'fit class','form','hand','qualifier'] )) )) > 0 ) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The externally_defined_feature_definition shall have a item_id of 'external thread' and a source of 'external feature specification'.
WR2: The externally_defined_feature_definition shall be referenced in the role of items by an applied_classification_assignment or either an applied_document_reference or an applied_document_usage_constraint_assignment.
WR3: The shape_representation_with_parameters that represents the externally_defined_feature_definition shall contain between six and seven representation_items in its set of items.
WR4: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type descriptive_representation_item with a name of 'thread side' and a description of either 'internal' or 'external'.
WR5: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type measure_representation_item and length_measure_with_unit with a name of 'major diameter'.
WR6: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type measure_representation_item and ratio_measure_with_unit with a name of 'number of threads'.
WR7: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type descriptive_representation_item with a name of 'fit class'.
WR8: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type descriptive_representation_item with a name of 'form'.
WR9: Exactly one representation_item used for the implicit representation of the externally_defined_feature_definition shall be of type descriptive_representation_item with a name of 'hand'. The descriptive_representation_item shall have a description of either 'left hand' or 'right hand'.
WR10: The implicit representation of the externally_defined_feature_definition shall contain at most one representation_item of type descriptive_representation_item that has a name of 'qualifier'.
WR11: The implicit representation of a externally_defined_feature_definition shall contain only representation_items with a name of either 'thread side', 'major diameter', 'number of threads', 'fit class', 'form', 'hand', or 'qualifier'.
EXPRESS specification:
*) ENTITY externally_defined_general_property SUBTYPE OF (general_property,externally_defined_item); END_ENTITY; (*
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the externally_defined_general_property entity:
EXPRESS specification:
*) ENTITY face_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF (SELF.items) = 1; WR2: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.FACE', 'AUTOMOTIVE_DESIGN.CLOSED_SHELL', 'AUTOMOTIVE_DESIGN.OPEN_SHELL']*TYPEOF(i) ) = 1 )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The face_shape_representation shall have exactly one representation_item in its set of items.
WR2: The item that is used to represent the face_shape_representation shall be a either a face, a closed_shell, or an open_shell.
EXPRESS specification:
*) ENTITY feature_component_definition SUBTYPE OF (characterized_object); WHERE WR1: SIZEOF(get_shape_aspects(SELF)) = 1; END_ENTITY; (*
Formal Propositions:
WR1: A feature_component_definition shall be the basis shape for exactly one shape_aspect.
Informal Propositions:
IP1: The feature_component_definitions that serve as definitions for modifications of a circular_pattern or a rectangular_pattern shall be used in at least one definition of a pattern.
NOTE See definition for Circular_offset_pattern, for Circular_omit_pattern, for Rectangular_offset_pattern, and for Rectangular_omit_pattern for further information.
EXAMPLE A chamfer may have the implicit chamfer offset amount defined with a feature_component_relationship
.EXPRESS specification:
.*) ENTITY feature_component_relationship SUBTYPE OF (shape_aspect_relationship); WHERE WR1: ('AUTOMOTIVE_DESIGN.TRANSITION_FEATURE' IN TYPEOF(SELF.related_shape_aspect)) OR (SIZEOF(['AUTOMOTIVE_DESIGN.FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION'] *TYPEOF(SELF.related_shape_aspect.of_shape.definition)) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The feature_component_relationship shall reference as related_shape_aspect an aspect of the shape of a transition_feature, a feature_definition or a feature_component_definition.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the feature_component_relationship entity:
EXPRESS specification:
*) ENTITY feature_definition SUBTYPE OF (characterized_object); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) <= 1; WR2: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) = 0) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) <= 1) )) = 1); WR3: NOT((SIZEOF(['AUTOMOTIVE_DESIGN.BARRING_HOLE', 'AUTOMOTIVE_DESIGN.BEAD', 'AUTOMOTIVE_DESIGN.HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.JOGGLE', 'AUTOMOTIVE_DESIGN.LOCATOR'] *TYPEOF(SELF) ) = 1) OR ('AUTOMOTIVE_DESIGN.COMPOUND_FEATURE' IN TYPEOF(SELF)) AND (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in panel') )) = 1)) OR ((SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation) )) <= 1) AND ((SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation) )) = 0) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'punch direction') )) = 1))); WR4: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) = 0) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ('AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(pdr.used_representation.context_of_items)) AND (pdr.used_representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 3) )) = 1); WR5: NOT((SIZEOF(['AUTOMOTIVE_DESIGN.BOSS', 'AUTOMOTIVE_DESIGN.RIB', 'AUTOMOTIVE_DESIGN.SLOT', 'AUTOMOTIVE_DESIGN.ROUND_HOLE', 'AUTOMOTIVE_DESIGN.POCKET'] *TYPEOF(SELF) ) = 1) OR ('AUTOMOTIVE_DESIGN.COMPOUND_FEATURE' IN TYPEOF(SELF)) AND (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') )) = 1)) OR ((SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation) )) = 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1)); WR6: SIZEOF(['AUTOMOTIVE_DESIGN.BEAD', 'AUTOMOTIVE_DESIGN.BARRING_HOLE', 'AUTOMOTIVE_DESIGN.BOSS', 'AUTOMOTIVE_DESIGN.COMPOUND_FEATURE', 'AUTOMOTIVE_DESIGN.EXTERNALLY_DEFINED_FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.GENERAL_FEATURE', 'AUTOMOTIVE_DESIGN.HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.JOGGLE', 'AUTOMOTIVE_DESIGN.LOCATOR', 'AUTOMOTIVE_DESIGN.POCKET', 'AUTOMOTIVE_DESIGN.RIB', 'AUTOMOTIVE_DESIGN.REPLICATE_FEATURE', 'AUTOMOTIVE_DESIGN.ROUND_HOLE', 'AUTOMOTIVE_DESIGN.SLOT', 'AUTOMOTIVE_DESIGN.THREAD'] * TYPEOF(SELF)) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The feature_definition shall have at most one implicit representation of type shape_representation_with_parameters.
WR2: If a implicit representation is present, at most one representation_item in this representation of the feature_definition shall be a placement with a name of 'orientation'. This placement shall define a reference location and orientation for the origin of the feature_definition.
WR3: If the feature_definition is of type barring_hole, bead, hole_in_panel, feature_in_panel, joggle, or locator, or is a compound_feature with a basis shape of an shape_aspect with a name of 'compound feature in panel', it shall be represented by at most one direction_shape_representation. If present, this representation shall have a name of 'punch direction'.
WR4: If an implicit representation is present, it shall have a geometric_representation_context as its context_of_items that has a coordinate_space_dimension equal to 3.
WR5: If the feature_definition is of type boss, rib, slot, round_hole, or pocket, or is a compound_feature that has a basis shape refered to by a composite_shape_aspect with a name of 'compound feature in solid', The feature_definition shall have exactly one implicit representation, and this representation shall contain a representation_item of type placement and a name of 'orientation'.
WR6: The subtypes bead, barring_hole, boss, compound_feature, externally_defined_feature_definition, feature_in_panel, general_feature, hole_in_panel, joggle, locator, pocket, rib, replicate_feature, round_hole, slot, and thread of feature_definition shall be mutually exclusive.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the feature_definition entity:
EXPRESS specification:
*) ENTITY feature_in_panel SUBTYPE OF (feature_definition); WHERE WR1: SELF.description IN ['pocket','boss','stairstep']; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 3}) )) = 0; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT( i.name IN ['orientation','base radius','target radius']) )) > 0) )) = 0; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='target radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'base boundary') AND (sa.description IN ['directed angle occurrence','closed profile occurrence']) )) = 1; WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'target boundary') AND (sa.description IN ['directed angle occurrence','closed profile occurrence']) )) = 1; WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'directed angle occurrence') )) <= 1; WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'directed angle occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'directed angle usage') AND ('AUTOMOTIVE_DESIGN.DIRECTED_ANGLE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'directed angle occurrence'))); WR10: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'closed profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'closed profile occurrence'))); WR11: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND NOT(pdr.used_representation.name = 'target face') )) = 0); WR12: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'target boundary') AND (sa.description = 'directed angle occurrence') )) = 0) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The feature_in_panel shall have a description of either 'pocket', 'boss', or 'stairstep'.
WR2: The implicit representation of the feature_in_panel shall contain two or three representation_items in its set of items.
WR3: The implicit representation of the feature_in_panel shall contain only representation_items with a name of 'orientation', 'base radius', or 'target radius'.
WR4: The implicit representation of a feature_in_panel shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'base radius'.
WR5: The implicit representation of a feature_in_panel shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'target radius'.
WR6: The feature_in_panel shall be the basis shape for exactly one shape_aspect with a name of 'base boundary' and a description of either 'directed angle occurrence' or 'closed profile occurrence'.
WR7: The feature_in_panel shall be the basis shape for exactly one shape_aspect with a name of 'target boundary' and a description of either 'directed angle occurrence' or 'closed profile occurrence'.
WR8: The feature_in_panel shall be the basis shape for at most one shape_aspect with a description of 'directed angle occurrence'.
WR9: Each shape_aspect of a feature_in_panel with a description of 'directed angle occurrence' shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'directed angle usage' in which the relating_shape_aspect is a directed_angle.
WR10: Each shape_aspect of a feature_in_panel with a description of 'closed profile occurrence' shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' and a relating_shape_aspect that references a circular_closed_profile, ngon_closed_profile, rectangular_closed_profile, or closed_path_profile.
WR11: The feature_in_panel shall have at most one face_shape_representation. If present, this face_shape_representation shall have a name of 'target face'.
WR12: Each feature_in_panel that is the basis shape for a shape_aspect with a name of 'target boundary' and a description of 'directed angle occurrence' shall have a face_shape_representation.
EXPRESS specification:
*) ENTITY feature_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'added instance placement') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) > 1) )) = 1; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) > 0) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The implicit representation of a feature_pattern shall contain one or more representation_items in its set of items of type placement with a name of 'added instance placement'.
WR2: The implicit representation of a feature_pattern shall only contain representation_items in its set of items that are of type placement.
EXPRESS specification:
*) ENTITY featured_shape SUBTYPE OF (product_definition_shape); WHERE WR1: 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(SELF.definition); WR2: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.' + 'RELATED_PROPERTY_DEFINITION') ) = 1 ) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION') | (pdr.name = 'featured shape sequence') AND ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr.relating_property_definition)) AND (pdr.relating_property_definition :<>: SELF) )) = 1 ); WR3: SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION') | SELF.definition :=: pdr.relating_property_definition.definition )) = 1; WR4: SIZEOF( QUERY( sa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | SIZEOF(['AUTOMOTIVE_DESIGN.PLACED_FEATURE', 'AUTOMOTIVE_DESIGN.INSTANCED_FEATURE'] * TYPEOF(sa) ) =1 )) >= 1; END_ENTITY; (*
Formal Propositions:
WR1: The featured_shape shall be the shape of a product_definition.
WR2: The featured_shape shall be the related_property_definition in exactly one property_definition_relationship. This property_definition_relationship shall have a name of 'featured shape sequence' and shall reference as relating_property_definition a different instance of product_definition_shape.
WR3: The featured_shape shall refer as definition to the same instance of product_definition as the product_definition_shape it is related with.
WR4: The featured_shape shall have at least one shape_aspect of type placed_feature or instanced_feature.
Informal Propositions:
IP1: If an featured_shape has a shape_representation and if the product_definition_shape it is related with has a shape_representation then these shape_representations shall have the same geometric_representation_context.
EXPRESS specification:
*) ENTITY fillet SUBTYPE OF (transition_feature); WHERE WR1: (SELF.description <> 'constant radius') XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1); WR2: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 3} )) = 1); WR3: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT( i.name IN ['radius','first offset','second offset']) )) > 0) )) = 0); WR4: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR5: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='first offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <= 1) )) = 1); WR6: (SELF.description <> 'constant radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='second offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <= 1) )) = 1); WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='first face shape') )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='second face shape') )) = 1) )) = 1; WR9: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='fillet face') )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: A fillet has an implicit representation if and only if it has a description of 'constant radius'.
WR2: If the description of the fillet is 'constant radius', the implicit representation shall contain between one and three representation_items in its set of items.
WR3: If the description of the fillet is 'constant radius', the implicit representation shall only contain representation_items in its set of items that have a name of either 'radius', 'first offset', or 'second offset'.
WR4: If the description of the fillet is 'constant radius', exactly one representation_item used for the implicit representation of the fillet shall be of type measure_representation_item and length_measure_with_unit with a name of 'radius'.
WR5: If the description of the fillet is 'constant radius', at most one representation_item used for the implicit representation of the fillet shall be of type measure_representation_item and length_measure_with_unit with a name of 'first offset'.
WR6: If the description of the fillet is 'constant radius', at most one representation_item used for the implicit representation of the fillet shall be of type measure_representation_item and length_measure_with_unit with a name of 'second offset'.
WR7: The fillet shall be defined by exactly representation of type face_shape_representation with a name of 'first face shape'.
WR8: The fillet shall be defined by exactly representation of type face_shape_representation with a name of 'second face shape'.
WR9: The fillet shall be defined by exactly representation of type face_shape_representation with a name of 'fillet face'.
EXPRESS specification:
*) ENTITY general_feature SUBTYPE OF (feature_definition); WHERE WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation) )) <= 1); WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | sa.description = 'course of travel occurrence')) = SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel') )) = 1 ))); WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | sa.description = 'course of travel occurrence')) = SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ))); WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | sa.description = 'boundary occurrence')) = SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') )) = 1 ))); WR5: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) )) <= 1 ) AND (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'general compound feature') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.INSTANCED_FEATURE' IN TYPEOF(sar.related_shape_aspect)) )) >= 2 ) )) <= 1 ); END_ENTITY; (*
Formal Propositions:
WR1: The general_feature shall represented by at most one implicit representation. If present, this representation shall be of type shape_representation_with_parameters.
WR2: If the general_feature is the basis shape for one or more occurrences of shape_aspect with a description of 'course of travel occurrence', these shape_aspects shall be the related_shape_aspect of a shape_defining_relationship that has a name of 'course of travel'.
WR3: The aspects of the basis shape that have a description of 'course of travel occurrence' shall be the related_shape_aspect of a shape_defining_relationship that refers to a path_feature_component as relating_shape_aspect.
WR4: If the general_feature is the basis shape for one or more occurrences of shape_aspect with a description of 'boundary occurrence', these shape_aspects shall be the related_shape_aspect of a shape_defining_relationship that has a description of 'profile usage'.
WR5: The basis shape of a general_feature shall be refered to by at most one shape_aspect that is of type composite_shape_aspect. If present, this shape_aspect shall have a name of 'general compound feature' and shall be the relating_shape_aspect of at least two feature_component_relationships. These feature_component_relationships shall refer to instanced_feature instances as their related_shape_aspect.
EXPRESS specification:
*) ENTITY general_material_property SUBTYPE OF (general_property); WHERE WR1: SIZEOF( QUERY( gpa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.' + 'BASE_DEFINITION') | NOT ('AUTOMOTIVE_DESIGN.MATERIAL_PROPERTY' IN TYPEOF(gpa.derived_definition)) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: A general_material_property may only be referenced as the base_definition by general_property_association instances which reference as derived_definition a property_definition of type material_property.
EXPRESS specification:
*) ENTITY geometric_item_specific_usage SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition:shape_aspect; SELF\item_identified_representation_usage.used_representation:shape_representation; SELF\item_identified_representation_usage.identified_item:geometric_representation_item; END_ENTITY; (*
Attribute definitions:
definition: an attribute inherited from the item_identified_representation_usage shall be redeclared as the shape_aspect for the geometric_item_specific_usage.
used_representation: an attribute inherited from the item_identified_representation_usage shall be redeclared as the shape_representation for the geometric_item_specific_usage.
identified_item: an attribute inherited from the item_identified_representation_usage shall be redeclared as the geometric_representation_item for the geometric_item_specific_usage.
EXPRESS specification:
*) ENTITY hardness_representation SUBTYPE OF (representation); WHERE WR1: ({2 <= SIZEOF(SELF.items) <= 4}) AND (SIZEOF( QUERY( i <* items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['measuring method','measuring position']) )) + SIZEOF( QUERY( i <* items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE'] * TYPEOF(i) ) = 1) AND (i.name IN ['depth','hardness']) )) = SIZEOF(SELF.items)); WR2: SIZEOF( QUERY( i <* SELF.items | i.name = 'measuring method') ) = 1; WR3: SIZEOF( QUERY( i <* SELF.items | i.name = 'hardness') ) = 1; WR4: SIZEOF( QUERY( i <* SELF.items | i.name = 'measuring position') ) <= 1; WR5: SIZEOF( QUERY( i <* SELF.items | i.name = 'depth') ) <= 1; WR6: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') ) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( gpa <* USEDIN(pdr.definition,'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AUTOMOTIVE_DESIGN.GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition)) AND (gpa.base_definition.name = 'surface_texture') )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: Each instance of hardness_representation shall contain between two and four representation_items in its set of items. These representation_items shall either be of type descriptive_representation_item and have a name of either 'measuring method' or 'measuring position', or shall be of type measure_representation_item or value_range and have a name of either 'depth' or 'hardness'.
WR2: Each instance of hardness_representation shall contain exactly one representation_item in its set of items that has a name of 'measuring method'.
WR3: Each instance of hardness_representation shall contain exactly one representation_item in its set of items that has a name of 'hardness'.
WR4: Each instance of hardness_representation shall contain at most one representation_item in its set of items that has a name of 'measuring position'.
WR5: Each instance of hardness_representation shall contain at most one representation_item in its set of items that has a name of 'depth'.
WR6: Each instance of hardness_representation shall be referenced by exactly one property_definition_representation. This property_definition_representation shall relate the representation with a property_definition that is the derived_definition of a general_property_association that refers as base_definition to a general_property with a name of 'surface_texture'.
Informal Propositions:
IP1: If the hardness_representation contains qualified_representation_items that refer to a type_qualifier representing the value determination then all of the representation_items shall also be qualified_representation_items that refer to the same instance of type_qualifier.
EXPRESS specification:
*) ENTITY hidden_element_over_riding_styled_item SUBTYPE OF (context_dependent_over_riding_styled_item); WHERE WR1: SIZEOF(SELF.style_context) = 1; WR2: 'AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF (SELF.style_context[1]); WR3: 'AUTOMOTIVE_DESIGN.CAMERA_IMAGE' IN TYPEOF (SELF.item); WR4: 'AUTOMOTIVE_DESIGN.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF (SELF.item\mapped_item.mapping_source.mapping_origin); WR5: SIZEOF( QUERY( rep <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF(rep) )) > 0; END_ENTITY; (*
Formal Propositions:
WR1: There shall be exactly one style_context.
WR2: The style_context shall be a presentation_view.
WR3: The item where the overriding style is applied for all hidden elements shall be a camera_image.
WR4: The mapping_origin of the item shall be a camera_model_d3_with_hlhsr.
WR5: The hidden_element_over_riding_styled_item shall be included in the set of items of a presentation_view.
EXPRESS specification:
*) ENTITY hole_bottom SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['through','flat','flat with taper', 'flat with radius','spherical','conical']; WR3: NOT (SELF.description IN ['through','flat']) OR (SIZEOF(get_shape_aspect_property_definition_representations(SELF) ) = 0); WR4: NOT (SELF.description IN ['flat with radius','flat with taper','spherical','conical']) OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1); WR5: (SELF.description <> 'flat with taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR6: (SELF.description <> 'conical') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 2} )) = 1); WR7: NOT (SELF.description IN ['flat with radius','spherical']) OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1); WR8: (SELF.description <> 'flat with radius') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='corner radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR9: (SELF.description <> 'spherical') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR10: (SELF.description <> 'conical') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='tip radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) <= 1) )) = 1); WR11: (SELF.description <> 'conical') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='tip angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR12: (SELF.description <> 'flat with taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='final diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR13: (SELF.description <> 'flat with taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='taper diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR14: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'hole bottom usage') AND (sar.related_shape_aspect.description = 'bottom condition occurrence') )) = 1; WR15: (SELF.description = 'through') OR (SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting','ending' ]) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The hole_bottom shall be an aspect of the shape of a feature_component_definition.
WR2: The description of the hole_bottom shall be either 'through', 'flat', 'flat with taper', 'flat with radius', 'spherical', or 'conical'.
WR3: If the description of the hole_bottom is 'flat' or 'through', the hole_bottom shall not have any representation.
WR4: If the description of the hole_bottom is 'flat with radius', 'flat with taper', 'spherical', or 'conical', the hole_bottom shall have exactly one shape_representation_with_parameters to specify its implicit representation.
WR5: If the description of the hole_bottom is 'flat with taper' the shape_representation_with_parameters that represents the hole_bottom shall contain exactly two representation_items in its set of items.
WR6: If the description of the hole_bottom is 'conical', the shape_representation_with_parameters that represents the hole_bottom shall contain one or two representation_items in its set of items.
WR7: If the description of the hole_bottom is 'flat with radius' or 'spherical', there shall be exactly one implicit representation, and it shall contain exactly one representation_item.
WR8: If the description of the hole_bottom is 'flat with radius', exactly one representation_item used for the implicit representation of a hole_bottom shall have a name of 'corner radius'. This representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR9: If the description of the hole_bottom is 'spherical', exactly one representation_item used for the implicit representation of a hole_bottom shall have a name of 'radius'. This representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR10: If the description of the hole_bottom is 'conical', at most one representation_item used for the implicit representation of a hole_bottom shall have a name of 'tip radius'. This representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR11: If the description of the hole_bottom is 'conical', exactly one representation_item used for the implicit representation of a hole_bottom shall have a name of 'tip angle'. This representation_item shall be of type measure_representation_item and plane_angle_measure_with_unit.
WR12: If the description of the hole_bottom is 'flat with taper', the implicit representation shall contain exactly one representation_item that has a name of 'final diameter' and is of type measure_representation_item and length_measure_with_unit.
WR13: If the description of the hole_bottom is 'flat with taper', the implicit representation shall contain exactly one representation_item that has a name of 'taper diameter' and is of type measure_representation_item and plane_angle_measure_with_unit.
WR14: The hole_bottom shall be the relating_shape_aspect in exactly one feature_component_relationship with a description of 'hole bottom usage'. The related_shape_aspect of this feature_component_relationship shall have a description of 'bottom condition occurrence'.
WR15: If the description of the hole_bottom is not 'through', the feature_component_relationship that refers to it, shall have a name of either 'hole depth start' or 'hole depth end'.
EXPRESS specification:
*) ENTITY hole_in_panel SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1; WR2: SIZEOF( get_property_definition_representations(SELF)) = SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | SIZEOF( pdr.used_representation.items) = 1)); END_ENTITY; (*
Formal Propositions:
WR1: The hole_in_panel shall be the basis shape for exactly one shape_aspect with a name of 'hole profile' and a description of 'closed profile occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' and a relating_shape_aspect that references a circular_closed_profile, ngon_closed_profile, rectangular_closed_profile, or closed_path_profile.
WR2: If an implicit representation of the hole_in_panel is present, it shall contain at most one representation_item in its set of items.
EXPRESS specification:
*) ENTITY homokinetic_pair SUBTYPE OF (universal_pair); WHERE WR1: NOT EXISTS(SELF.input_skew_angle); END_ENTITY; (*
Formal Propositions:
WR1: For a homokinetic_pair the input_skew_angle shall be omitted.
EXPRESS specification:
*) ENTITY inclusion_product_concept_feature SUBTYPE OF (conditional_concept_feature); WHERE WR1: NOT ('AUTOMOTIVE_DESIGN.PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF)); WR2: SIZEOF( QUERY( cfr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE') | 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr) )) + SIZEOF( QUERY( cfr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATED_PRODUCT_CONCEPT_FEATURE') | 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr) )) = 0; WR3: SELF.condition.conditional_operator.name = 'implication'; END_ENTITY; (*
Formal Propositions:
WR1: An inclusion_product_concept_feature shall not be of type package_product_concept_feature.
WR2: An inclusion_product_concept_feature shall not be referenced as relating_product_concept_feature nor as related_product_concept_feature by concept_feature_relationship_with_condition instances.
WR3: An inclusion_product_concept_feature shall reference as condition a concept_feature_relationship_with_condition which references a concept_feature_operator with a name of 'implication'.
EXPRESS specification:
*) ENTITY instanced_feature SUBTYPE OF (shape_aspect,feature_definition); WHERE WR1: 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.product_definitional; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The instanced_feature shall be an aspect of the shape of a product_definition.
WR2: The instanced_feature shall lie on the boundary of the part.
WR3: The instanced_feature shall be represented_by exactly one planar_shape_representation. This planar_shape_representation shall have a name of 'maximum feature limit'.
EXPRESS specification:
*) ENTITY joggle SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT({5 <= SIZEOF(pdr.used_representation.items) <= 10}) )) = 0; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','base radius 1','base radius 2','direction angle 1', 'direction angle 2','height','slope angle 1','slope angle 2', 'top radius 1','top radius 2']) )) > 0) )) = 0; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='direction angle 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='direction angle 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='height') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='slope angle 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='slope angle 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'defining path') AND (sa.description = 'path feature component occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'linear') )) = 1 ) )) = 1; WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.name = 'termination') AND (sa.description = 'joggle termination occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AUTOMOTIVE_DESIGN.JOGGLE_TERMINATION' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR11: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR12: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='top radius 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR13: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='top radius 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The implicit representation of a joggle shall contain between five and ten representation_items in its set of items.
WR2: The implicit_representation shall contain only representation_items wit a name of 'orientation', 'base radius 1', 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', 'slope angle 2', 'top radius 1', or 'top radius 2'.
WR3: The implicit representation of a joggle shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'direction angle 1'.
WR4: The implicit representation of a joggle shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'direction angle 2'.
WR5: The implicit representation of a joggle shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'height'.
WR6: The implicit representation of a joggle shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'slope angle 1'.
WR7: The implicit representation of a joggle shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'slope angle 2'.
WR8: The joggle shall be the basis shape for exactly one shape_aspect with a name of 'defining path' and a description of 'path feature component occurrence' that is the related_shape_aspect in exactly one shape_defining_relationship with a description of 'path feature component usage' in which the relating_shape_aspect is a path_feature_component with a description of 'linear'.
WR9: The joggle shall be the basis shape for exactly one shape_aspect with a name of 'termination' and a description of 'joggle termination occurrence' that is the related_shape_aspect in exactly one feature_component_relationship with a name of 'joggle termination usage' in which the relating_shape_aspect is a joggle_termination.
WR10: The implicit representation of a joggle shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'base radius 1'.
WR11: The implicit representation of a joggle shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'base radius 2'.
WR12: The implicit representation of a joggle shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'top radius 1'.
WR13: The implicit representation of a joggle shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'top radius 2'.
EXPRESS specification:
*) ENTITY joggle_termination SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['value termination','face termination']; WR3: (SELF.description = 'value termination') XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 0); WR4: (SELF.description <> 'value termination') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR5: (SELF.description <> 'value termination') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='depth') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR6: (SELF.description <> 'value termination') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AUTOMOTIVE_DESIGN.JOGGLE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination') AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The joggle_termination shall be an aspect of the shape of a feature_component_definition.
WR2: The description for the joggle_termination shall be either 'value termination' or 'face termination'.
WR3: A joggle_termination has an implicit representation if and only if it has a description of 'value termination'.
WR4: If the description of the joggle_termination is 'value termination', its implicit representation shall contain exactly two representation_items in its set of items.
WR5: If the description of the joggle_termination is 'value termination', exactly one representation_item used for the implicit representation of the joggle_termination shall be of type measure_representation_item and length_measure_with_unit with a name of 'depth'.
WR6: If the description of the joggle_termination is 'value termination', exactly one representation_item used for the implicit representation of the joggle_termination shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of 'angle'.
WR7: The joggle_termination shall be the relating_shape_aspect in exactly one feature_component_relationship with a name of 'joggle termination usage' in which the related_shape_aspect is a shape_aspect of a joggle with a name of 'termination' and a description of 'joggle termination occurrence'.
EXPRESS specification:
*) ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); END_ENTITY; (*
Informal Propositions:
IP1: The contents of the item_id attribute of externally_defined_items that reference a known_source as their source has to be formatted according to the rules specified for this known_source.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the known_source entity:
EXPRESS specification:
*) ENTITY language SUBTYPE OF (group); END_ENTITY; (*
Informal Propositions:
IP1: The name shall specify a language code according to ISO 639-2.
IP2: If present, the description shall specify a country code according to to ISO 3166-1.
EXPRESS specification:
*) ENTITY language_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF language_item; WHERE WR1: 'AUTOMOTIVE_DESIGN.LANGUAGE' IN TYPEOF(SELF.assigned_class); WR2: SELF.role.name = 'language'; WR3: SIZEOF( SELF.items ) = SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.REPRESENTATION' IN TYPEOF(i)) AND (i\representation.name = 'document content') )); END_ENTITY; (*
Attribute definitions:
items: the set of items to which a language is assigned.
Formal Propositions:
WR1: The instance referenced as assigned_class shall be of type language.
WR2: The name of the classification_role referenced as role shall be 'language'.
WR3: The representations in the set of items shall be of name 'document content'.
EXPRESS specification:
*) ENTITY location_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF( QUERY( i <* SELF.items| 'AUTOMOTIVE_DESIGN.POINT' IN TYPEOF(i) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The location_shape_representation shall have exactly one representation_item in its set of items.
WR2: The geometric element that is used to represent the location_shape_representation shall be a point.
EXPRESS specification:
*) ENTITY locator SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 5}) )) = 0; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='tip radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='tip angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The implicit representation of the locator shall contain between two and five representation_items in its set of items.
WR2: The implicit representation of the locator shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'diameter'.
WR3: The implicit representation of the locator shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'tip radius'.
WR4: The implicit representation of the locator shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'tip angle'.
WR5: The implicit representation of the locator shall contain at most one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'base radius'.
EXPRESS specification:
*) ENTITY modified_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'base pattern') AND (SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN'] * TYPEOF(sar.related_shape_aspect.of_shape.definition) ) = 1) )) = 1) )) = 1; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (SIZEOF( QUERY( sar1 <* USEDIN( sar.related_shape_aspect, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.related_shape_aspect :<>: sar1.related_shape_aspect) AND (SIZEOF(['AUTOMOTIVE_DESIGN.PATTERN_OFFSET_MEMBERSHIP', 'AUTOMOTIVE_DESIGN.PATTERN_OMIT_MEMBERSHIP'] * TYPEOF(sar1) ) = 1) )) = 1) )) >= 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The basis shape of the modified_pattern shall have an aspect of shape that is the relating_shape_aspect in exactly one shape_aspect_relationship that has a description of 'base pattern'. This shape_aspect_relationship shall refer as related_shape_aspect to an shape_aspect that is an aspect of the basis shape of either a circular_pattern or a rectangular_pattern.
WR2: The basis shape of the modified_pattern shall have an aspect of shape that is the relating_shape_aspect in at least one shape_aspect_relationship in which the related_shape_aspect is the related_shape_aspect in a different instance of shape_aspect_relationship that is either a pattern_offset_membership or pattern_omit_membership.
EXPRESS specification:
*) ENTITY moments_of_inertia_representation SUBTYPE OF (representation); WHERE WR1: (SIZEOF(SELF.items) = 1) AND (SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'moments of inertia matrix') )) = 1); WR2: SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (SIZEOF(i\compound_representation_item.item_element) = 3) AND ('AUTOMOTIVE_DESIGN.LIST_REPRESENTATION_ITEM' IN TYPEOF(i\compound_representation_item.item_element)) AND value_range_aggregate_rep_item (i\compound_representation_item.item_element) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The moments_of_inertia_representation contains exactly one representation_item in its set of items. This representation_item is of type compound_representation_item and has a name of 'moments of inertia matrix'.
WR2: The compound_representation_item that is contained in the moments_of_inertia_representation references exactly three representation_items. These representation_items are of type compound_representation_item and reached through list_representation_item. Each of these compound_representation_items references three measure_representation_items through list_representation_item.
EXPRESS specification:
*) ENTITY multi_language_attribute_assignment SUBTYPE OF (attribute_value_assignment); items : SET [1:?] OF multi_language_attribute_item; DERIVE language : label := get_multi_language(SELF); WHERE WR1: SELF\attribute_value_assignment.role.name = 'alternate language'; WR2: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') ) = 1 ) AND (SIZEOF( QUERY( ala <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name = 'attribute_value' )) = 1 ); END_ENTITY; (*
Attribute definitions:
items: the set of items for which an alternative string value is specified.
language: The language specifies the attribute_language_assignment that refers as items to this object and provides the information concerning the language, in which an attribute value is specified.
Formal Propositions:
WR1: The attribute_value_role specified by the multi_language_attribute_assignment shall have a name of 'alternate language'.
WR2: The multi_language_attribute_assignment shall be used exactly one time in role of items by an attribute_language_assignment. This attribute_language_assignment shall have a attribute_name of 'attribute_value'.
Informal Propositions:
IP1: The attribute_name shall be the name of the attribute for which an alternative value is specified.
EXPRESS specification:
*) ENTITY named_unit_variable SUBTYPE OF (named_unit, variable_semantics); INVERSE associated_variable_environment: environment FOR semantics; END_ENTITY; (*
Attribute definitions:
associated_variable_environment: the environment that specifies the representation for the derived unit.
EXPRESS specification:
*) ENTITY ngon_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {3 <= SIZEOF( pdr.used_representation.items) <= 4} )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','number of sides','circumscribed diameter', 'diameter across flats','corner radius']) )) = 0) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='number of sides') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name IN ['circumscribed diameter','diameter across flats']) AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'corner radius') )) <= 1) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'corner radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'corner radius') ))) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The ngon_closed_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The ngon_closed_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the ngon_closed_profile shall contain three or four representation_items in its set of items.
WR4: The implicit representation of an ngon_closed_profile shall contain only representation_items in its set of items that have a name of either 'orientation', 'number of sides', 'circumscribed diameter', 'diameter across flats', or 'corner radius'.
WR5: Exactly one representation_item used for the implicit representation of an ngon_closed_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of an ngon_closed_profile shall be of type measure_representation_item with a value_component of type count_measure and a name of `number of sides'.
WR7: Exactly one representation_item used for the implicit representation of an ngon_closed_profile shall be of type measure_representation_item and length_measure_with_unit with a name of either `circumscribed diameter' or 'diameter across flats'.
WR8: At most one representation_item used for the implicit representation of an ngon_closed_profile shall have a name of 'corner radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
Informal Propositions:
IP1: The ngon_closed_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the ngon_closed_profile is defined at the centre of the defining circle.
IP3: One of the sides of the ngon shall be parallel to the X direction intersecting the negative Y direction.
EXPRESS specification:
*) ENTITY open_path_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( pdr.used_representation.items) = 1) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1; WR6: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') ))); END_ENTITY; (*
Formal Propositions:
WR1: The open_path_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The open_path_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the open_path_profile shall contain exactly one representation_items in its set of items.
WR4: Exactly one representation_item used for the implicit representation of an open_path_profile shall be of type placement with a name of 'orientation'.
WR5: The open_path_profile shall have exactly one path_shape_representation.
WR6: The open_path_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The open_path_profile shall be planar and shall lie in the X-Y plane of the reference system.
EXPRESS specification:
*) ENTITY package_product_concept_feature SUBTYPE OF (product_concept_feature); WHERE WR1: NOT ('AUTOMOTIVE_DESIGN.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF)); WR2: SIZEOF( QUERY( cfr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE') | ('AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)) AND (SIZEOF( QUERY( ipcf <* USEDIN(cfr,'AUTOMOTIVE_DESIGN.CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION') | 'AUTOMOTIVE_DESIGN.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ipcf) )) = 1) )) > 0; END_ENTITY; (*
Formal Propositions:
WR1: An package_product_concept_feature shall not be of type conditional_concept_feature.
WR2: A package_product_concept_feature shall be referenced as relating_product_concept_feature by at least one concept_feature_relationship_with_condition which is referenced as condition by a conditional_concept_feature of type inclusion_product_concept_feature.
EXPRESS specification:
*) ENTITY partial_circular_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( pdr.used_representation.items) = 3) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','sweep angle','radius']) )) = 0) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='sweep angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR8: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') ))); END_ENTITY; (*
Formal Propositions:
WR1: The partial_circular_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The partial_circular_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the partial_circular_profile shall contain exactly three representation_items in its set of items.
WR4: The implicit representation of the partial_circular_profile shall contain only representation_items that have a name of 'orientation', 'sweep angle', or 'radius'.
WR5: Exactly one representation_item used for the implicit representation of a partial_circular_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a partial_circular_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `radius'.
WR7: Exactly one representation_item used for the implicit representation of a partial_circular_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `sweep angle'.
WR8: The partial_circular_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The partial_circular_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the partial_circular_profile is defined at the arc origin.
IP3: The arc that defines the partial_circular_profile shall start at the X axis.
EXPRESS specification:
*) ENTITY path_feature_component SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['partial circular','complete circular', 'linear','complex']; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR5: (SELF.description <> 'partial circular') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3) )) = 1); WR6: (SELF.description <> 'partial circular') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR7: (SELF.description <> 'partial circular') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='sweep angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR8: (SELF.description <> 'complete circular') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR9: (SELF.description <> 'complete circular') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR10: (SELF.description <> 'linear') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR11: (SELF.description <> 'linear') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='distance') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR12: (SELF.description <> 'complex') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.name='sweep path') )) = 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.name='sweep path') AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='path curve') AND ('AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(i)) )) = 1) )) = 1); WR13: (SELF.description <> 'complex') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The path_feature_component shall be an aspect of the shape of a feature_component_definition.
WR2: The description for the path_feature_component shall be either 'partial circular', 'complete circular', 'linear', or 'complex'.
WR3: The path_feature_component shall have exactly one implicit representation of type shape_representation_with_parameters.
WR4: The implicit representation of the path_feature_component shall contain one representation_item of type placement and a name of 'orientation'.
WR5: If the description of the path_feature_component is 'partial circular', the implicit representation of the path_feature_component shall contain exactly three representation_items in its set of items.
WR6: If the description of the path_feature_component is 'partial circular', exactly one representation_item used for the implicit representation of the path_feature_component shall be of type measure_representation_item and length_measure_with_unit with a name of 'radius'.
WR7: If the description of the path_feature_component is 'partial circular', exactly one representation_item used for the implicit representation of the path_feature_component shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of 'sweep angle'.
WR8: If the description of the path_feature_component is 'complete circular', the implicit representation of the path_feature_component shall contain exactly two representation_items in its set of items.
WR9: If the description of the path_feature_component is 'complete circular', exactly one representation_item used for the implicit representation of the path_feature_component shall be of type measure_representation_item and length_measure_with_unit with a name of 'radius'.
WR10: If the description of the path_feature_component is 'linear', the implicit representation of the path_feature_component shall contain exactly two representation_items in its set of items.
WR11: If the description of the path_feature_component is 'linear', exactly one representation_item used for the implicit representation of the path_feature_component shall be of type measure_representation_item and length_measure_with_unit with a name of 'distance'.
WR12: If the description of the path_feature_component is 'complex', the path_feature_component shall have exactly one path_shape_representation with a name of 'sweep path'. This path_shape_representation shall contain a curve with a name of 'path curve'.
WR13: If the description of the path_feature_component is 'complex', the implicit representation of the path_feature_component shall contain exactly one representation_items in its set of items.
EXPRESS specification:
*) ENTITY path_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF( QUERY( i <* SELF.items | (SIZEOF(['AUTOMOTIVE_DESIGN.BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.EDGE_CURVE', 'AUTOMOTIVE_DESIGN.PATH'] * TYPEOF(i) ) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The path_shape_representation shall have exactly one representation_item in its set of items.
WR2: The geometric element that is used to represent the path_shape_representation shall be a bounded_curve, an edge_curve, or a path.
EXPRESS specification:
*) ENTITY pattern_offset_membership SUBTYPE OF (feature_component_relationship); WHERE WR1: SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN'] * TYPEOF(SELF.relating_shape_aspect.of_shape.definition) ) = 1; WR2: SIZEOF( QUERY( sar <* USEDIN(SELF.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.MODIFIED_PATTERN' IN TYPEOF(sar.relating_shape_aspect.of_shape.definition)) AND (sar.description = 'modified pattern') )) >= 1; WR3: SIZEOF( get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) ) = 1; WR4: NOT('AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( pdr.used_representation.items) = 2) )) = 1); WR5: NOT('AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='index number') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); WR6: NOT('AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR7: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( pdr.used_representation.items) = 3) )) = 1); WR8: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='row index') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); WR9: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='column index') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); WR10: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='offset distance') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR11: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'offset direction') )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The pattern_offset_membership shall refer as relating_shape_aspect to an aspect of the basis shape of either a circular_pattern or a rectangular_pattern.
WR2: The related_shape_aspect that defines the offset in the pattern_offset_membership shall be incorporated in at least one basis shape of a modified_pattern by a feature_component_relationship with a description of 'modified pattern'.
WR3: The shape_aspect that is referenced as related_shape_aspect of the pattern_offset_membership shall have exactly one representation.
WR4: If the shape_aspect referenced by the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a circular_pattern, the representation of the shape_aspect referenced as the related_shape_aspect of the pattern_offset_membership shall contain two representation_items in its set of items.
WR5: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a circular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'index number'.
WR6: If the shape_aspect referenced by the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a circular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of 'offset'.
WR7: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a rectangular_pattern, the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall contain three representation_items in its set of items.
WR8: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a rectangular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'row index'.
WR9: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a rectangular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'column index'.
WR10: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a rectangular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall be of type measure_representation_item and length_measure_with_unit with a name of 'offset distance'.
WR11: If the shape_aspect referenced as the relating_shape_aspect of the pattern_offset_membership is an aspect of the basis shape of a rectangular_pattern, the shape_aspect referenced by the related_shape_aspect of the pattern_offset_membership shall have exactly one direction_shape_representation with a name of 'offset direction'.
EXPRESS specification:
*) ENTITY pattern_omit_membership SUBTYPE OF (feature_component_relationship); WHERE WR1: SIZEOF(['AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN'] * TYPEOF(SELF.relating_shape_aspect.of_shape.definition) ) = 1; WR2: SIZEOF( QUERY( sar <* USEDIN(SELF.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.MODIFIED_PATTERN' IN TYPEOF(sar.relating_shape_aspect.of_shape.definition)) AND (sar.description = 'modified pattern') )) >= 1; WR3: SIZEOF( get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) ) = 1; WR4: NOT('AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( pdr.used_representation.items) = 1) )) = 1); WR5: NOT('AUTOMOTIVE_DESIGN.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='index number') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); WR6: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( pdr.used_representation.items) = 2) )) = 1); WR7: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='row index') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); WR8: NOT('AUTOMOTIVE_DESIGN.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape.definition) | (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='column index') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The pattern_omit_membership shall refer as relating_shape_aspect to an aspect of the basis shape of either a circular_pattern or a rectangular_pattern.
WR2: The related_shape_aspect that defines the omission in the pattern_offset_membership shall be incorporated in at least one basis shape of a modified_pattern by a feature_component_relationship with a description of 'modified pattern'.
WR3: The shape_aspect that is referenced by related_shape_aspect of the pattern_omit_membership shall have exactly one representation.
WR4: If the shape_aspect referenced as the relating_shape_aspect of the pattern_omit_membership is an aspect of the shape of the basis shape of a circular_pattern, the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_omit_membership shall contain one representation_item in its set of items.
WR5: If the shape_aspect referenced by the relating_shape_aspect of the pattern_omit_membership is an aspect of the basis shape of a circular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_omit_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'index number'.
WR6: If the shape_aspect referenced by the relating_shape_aspect of the pattern_omit_membership is an aspect of the basis shape of a rectangular_pattern, the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_omit_membership shall contain two representation_items in its set of items.
WR7: If the shape_aspect referenced by the relating_shape_aspect of the pattern_omit_membership is an aspect of the basis shape of a rectangular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_omit_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'row index'.
WR8: If the shape_aspect referenced by the relating_shape_aspect of the pattern_omit_membership is an aspect of the basis shape of a rectangular_pattern, exactly one representation_item used for the representation of the shape_aspect referenced by the related_shape_aspect of the pattern_omit_membership shall be of type measure_representation_item with a value_component of type count_measure and a name of 'column index'.
EXPRESS specification:
*) ENTITY person_and_organization_address SUBTYPE OF (organizational_address,personal_address); WHERE WR1: SIZEOF(SELF\personal_address.people) = 1; WR2: SIZEOF (SELF\organizational_address.organizations) = 1; WR3: SIZEOF(QUERY(pao <* USEDIN (SELF.people[1], 'AUTOMOTIVE_DESIGN.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1; END_ENTITY; (*
Formal Propositions:
WR1: There shall be exactly one item of type person in the set of people.
WR2: There shall be exactly one item of type organization in the set of organizations.
WR3: For each instance of type person_and_organization_address there exist a corresponding instance of type person_and_organization. The instance referenced by the attribute people of the instance of type person_and_organization_address is identical to the instance referenced by the attribute the_person of the instance of type person_and_organization. The instance referenced by the attribute organizations of the instance of type person_and_organization_address is identical to the instance referenced by the attribute the_organization of the instance of type person_and_organization.
EXPRESS specification:
*) ENTITY physically_modelled_product_definition SUBTYPE OF (product_definition_with_associated_documents); WHERE WR1: SELF.frame_of_reference\application_context_element.name = 'physical model occurrence'; WR2: (SIZEOF(documentation_ids) = 1) AND (SIZEOF(QUERY ( d <* documentation_ids | (SIZEOF(QUERY ( drt <* d.representation_types | (drt.name = 'physical') )) = 1) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The physically_modelled_product_definition shall reference as its frame_of_reference a product_definition_context that has a name of 'physical model occurrence'.
WR2: The physically_modelled_product_definition shall have exactly one document in its set of documentation_ids. This document shall reference as its representation_type a document_representation_type that has a name of 'physical'.
Informal Propositions:
IP1: In case the physically_modelled_product_definition is not referenced by a product_definition_shape as the definition, the scale shall be 1:1.
EXPRESS specification:
*) ENTITY placed_datum_target_feature SUBTYPE OF (datum_target); WHERE WR1: SELF.description IN ['point','line','rectangle','circle']; WR2: SIZEOF (QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1; WR4: (SELF.description <> 'point') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1); WR5: (SELF.description <> 'circle') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR6: (SELF.description <> 'rectangle') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3) )) = 1); WR7: (SELF.description <> 'circle') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='target diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR8: (SELF.description <> 'line') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='target length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR9: (SELF.description <> 'rectangle') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='target length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR10: (SELF.description <> 'rectangle') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='target width') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The description for the placed_datum_target_feature shall be either 'point', 'line', 'rectangle' or 'circle'.
WR2: A placed_datum_target_feature shall have exactly one implicit representation.
WR3: Exactly one representation_item used for the implicit representation of the placed_datum_target_feature shall be of type placement with a name of 'orientation'.
WR4: If the placed_datum_target_feature is a point, the representation shall contain exactly one representation_item in its set of items.
WR5: If the placed_datum_target_feature is a line or circle, the representation shall contain exactly two representation_items in its set of items.
WR6: If the placed_datum_target_feature is a rectangle, the representation shall contain exactly three representation_items in its set of items.
WR7: If the description of the placed_datum_target_feature is 'circle', exactly one representation_item used for the implicit representation of the placed_datum_target_feature shall be of type measure_representation_item and length_measure_with_unit with a name of 'target diameter'.
WR8: If the description of the placed_datum_target_feature is 'line', exactly one representation_item used for the implicit representation of the placed_datum_target_feature shall be of type measure_representation_item and length_measure_with_unit with a name of 'target length'.
WR9: If the description of the placed_datum_target_feature is 'rectangle', exactly one representation_item used for the implicit representation of the placed_datum_target_feature shall be of type measure_representation_item and length_measure_with_unit with a name of 'target length'.
WR10: If the description of the placed_datum_target_feature is 'rectangle', exactly one representation_item used for the implicit representation of the placed_datum_target_feature shall be of type measure_representation_item and length_measure_with_unit with a name of 'target width'.
EXPRESS specification:
*) ENTITY placed_feature SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'feature definition placement') AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(i)) AND (SIZEOF( QUERY( pdr1 <* USEDIN(i\mapped_item.mapping_source.mapped_representation, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ('AUTOMOTIVE_DESIGN.FEATURE_DEFINITION' IN TYPEOF(pdr1.definition\property_definition.definition)) )) = 1) )) = 1) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The placed_feature shall be an aspect of the shape of a product_definition.
WR2: The placed_feature shall have a shape_representation with a name of 'feature definition placement' that contains a mapped_item in its set of items. This mapped_item shall reference a representation_map that references the shape_representation of a feature_definition as mapped_representation.
WR3: The placed_feature shall be represented by exactly one planar_shape_representation. This planar_shape_representation shall have a name of 'maximum feature limit'.
Informal Propositions:
IP1: If an placed_feature has a shape_representation and if the product_definition_shape that is referenced as of_shape by the placed_feature has a shape_representation then these shape_representations shall have the same geometric_representation_context.
EXPRESS specification:
*) ENTITY planar_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF( QUERY( i <* SELF.items | 'AUTOMOTIVE_DESIGN.PLANE' IN TYPEOF(i) )) = 1; WR3: SELF.name IN ['profile limit','maximum feature limit']; WR4: (SELF.name <> 'maximum feature limit') OR (SIZEOF( QUERY( pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( sa <* get_shape_aspects(pdr.definition\property_definition.definition) | SIZEOF(['AUTOMOTIVE_DESIGN.INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.PLACED_FEATURE'] * TYPEOF(sa) ) = 1 )) = 1 )) = 1); WR5: (SELF.name <> 'profile limit') OR (SIZEOF( QUERY( pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( sa <* get_shape_aspects(pdr.definition\property_definition.definition) | SIZEOF(['AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE'] * TYPEOF(sa) ) = 1 )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The planar_shape_representation shall contain exactly one representation_item in its set of items.
WR2: The planar_shape_representation shall refer to a plane as its representation.
WR3: The planar_shape_representation shall have a name of either 'profile limit' or 'maximum feature limit'.
WR4: If the planar_shape_representation has a name of 'maximum feature limit', it shall be the representation of a shape_aspect that is either of type instanced_feature or placed_feature.
WR5: If the planar_shape_representation has a name of 'profile limit', it shall be the representation of a shape_aspect that is of type open_path_profile, partial_circular_profile, rounded_u_profile, square_u_profile, tee_profile, or vee_profile.
EXPRESS specification:
*) ENTITY pocket SUBTYPE OF (feature_definition); WHERE WR1: SELF.description IN ['open rectangular','closed rectangular', 'complex']; WR2: (SELF.description <> 'complex') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF (['AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE'] * TYPEOF (sar.relating_shape_aspect) ) =1) )) = 1 ) )) = 1); WR3: (SELF.description <> 'closed rectangular') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'closed boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1); WR4: (SELF.description <> 'open rectangular') OR (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'open boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1); WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'pocket depth occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'pocket depth') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'linear') )) = 1 ) )) = 1; WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'bottom condition occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'pocket bottom usage') AND ('AUTOMOTIVE_DESIGN.POCKET_BOTTOM' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description IN ['angle taper','directed taper']) )) = 1 ) )) <= 1; WR8: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation.items) <= 2}) )) = 0; WR9: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','fillet radius 1']) )) > 0) )) = 0; WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The pocket shall have a description of 'open rectangular', 'closed rectangular', or 'complex'.
WR2: If the pocket has a description of 'complex', the pocket shall be the basis shape for exactly one shape_aspect with a description of 'boundary occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage'in which the relating_shape_aspect is a circular_closed_profile, ngon_closed_profile, closed_path_profile, partial_circular_profile, rounded_u_profile, vee_profile, tee_profile, or open_path_profile.
WR3: If the pocket has a description of 'closed rectangular', the pocket shall be the basis shape for exactly one shape_aspect with a description of 'closed boundary occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is a rectangular_closed_profile.
WR4: If the pocket has a description of 'open rectangular', the pocket shall be the basis shape for exactly one shape_aspect with a description of 'open boundary occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' in which the relating_shape_aspect is a square_u_profile.
WR5: The pocket shall be the basis shape for exactly one shape_aspect with a description of 'pocket depth occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'pocket depth' and a description of 'path feature component usage' in which the relating_shape_aspect is a path_feature_component with a description of 'linear'.
WR6: The pocket shall be the basis shape for exactly one shape_aspect with adescription of 'bottom condition occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'pocket bottom usage' in which the relating_shape_aspect is a pocket_bottom.
WR7: The pocket shall be the basis shape for at most one shape_aspect with a description of 'change in boundary occurrence'. If present, this shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'taper usage' in which the relating_shape_aspect is a taper with a description of either 'angle taper' or 'directed taper'.
WR8: The implicit representation of the pocket shall contain between one and two representation_items in its set of items.
WR9: The implicit representation of the pocket shall only contain representation_items in its set of items that have a name of either 'orientation' or 'fillet radius'.
WR10: The implicit representation of the pocket shall contain at most one representation_items in its set of items that has a name of 'base radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
EXPRESS specification:
*) ENTITY pocket_bottom SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['planar','complex','through']; WR3: NOT(SELF.description IN ['planar','complex']) OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1); WR4: NOT(SELF.description IN ['planar','complex']) OR (SIZEOF( QUERY( sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting','ending' ]) )) = 1); WR5: (SELF.description <> 'complex') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor') )) = 1); WR6: (SELF.description <> 'planar') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor location') )) = 1); WR7: (SELF.description <> 'planar') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor normal') )) = 1); WR8: (SELF.description <> 'through') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 0); WR9: (SIZEOF( QUERY( sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) )) = 1) AND (SIZEOF( QUERY( sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'pocket bottom usage') AND ('AUTOMOTIVE_DESIGN.POCKET' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'bottom condition occurrence') )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The pocket_bottom shall be an aspect of the shape of a feature_component_definition.
WR2: The description of the pocket_bottom shall be either 'planar', 'complex', or 'through'.
WR3: If the pocket_bottom has a description of 'planar' or 'complex', the pocket_bottom shall have its implicit representation specified by at most one shape_representation_with_parameters. If present, the implicit representation shall contain exactly one representation_item in its set of items. It shall be of type measure_representation_item and length_measure_with_unit and shall have a name of 'radius'.
WR4: If the pocket_bottom has a description of 'planar' or 'complex', the feature_component_relationship that refers to the pocket_bottom as the relating_shape_aspect shall have a name of either 'starting' or 'ending' .
WR5: If the description of the pocket_bottom is 'complex', the pocket_bottom shall be represented by exactly one face_shape_representation. This representation shall have a name of 'floor'.
WR6: If the description of the pocket_bottom is 'planar', the pocket_bottom shall be represented by exactly one location_shape_representation. This representation shall have a name of 'floor location'.
WR7: If the description of the pocket_bottom is 'planar', the pocket_bottom shall be represented by exactly one direction_shape_representation. This representation shall have a name of 'floor normal'.
WR8: If the description of the pocket_bottom is 'through', the pocket_bottom shall not be represented implicitly by a shape_representation_with_parameters.
WR9: The pocket_bottom shall be the relating_shape_aspect in exactly one feature_component_relationship. This feature_component_relationship shall have a description of 'pocket bottom usage' and shall reference as the related_shape_aspect an aspect of the shape of a pocket that has a description of 'bottom condition occurrence'.
EXPRESS specification:
*) ENTITY point_placement_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.COMPOUND_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(i)) <> 1 )) = 0; WR2: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.COMPOUND_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(i)) = 1 )) > 0; END_ENTITY; (*
Formal Propositions:
WR1: The items in a point_placement_shape_representation shall be of type compound_representation_item, mapped_item, or axis2_placement_3d.
WR2: At least one of the items in a point_placement_shape_representation shall be either a compound_representation_item or a mapped_item.
Informal Propositions:
IP1: For each compound_representation_item in the set of items the item_element shall be of type list_representation_item.
IP2: For each compound_representation_item in the set of items the list_representation_item shall include only representation_items of type placement or point.
EXPRESS specification:
*) ENTITY pre_defined_dimension_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN ['arc length','conical taper','counterbore','countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square']; END_ENTITY; (*
Formal Propositions:
WR1: The name of the pre_defined_dimension_symbol shall be 'arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', or 'square'.
EXPRESS specification:
*) ENTITY pre_defined_geometrical_tolerance_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN ['angularity','basic dimension','blanked datum reference', 'circular runout','circularity','concentricity','cylindricity', 'datum target identification','diameter','filled datum reference', 'flatness','least material condition','maximum material condition', 'parallelism','perpendicularity','position','profile of a line', 'profile of a surface','projected tolerance zone', 'regardless of feature size','straightness','symmetry','total runout']; END_ENTITY; (*
Formal Propositions:
WR1: The name of the pre_defined_geometrical_tolerance_symbol shall be 'angularity', 'basic dimension', 'blanked datum reference', 'circular runout', 'circularity', 'concentricity', 'cylindricity', 'datum target identification', 'diameter', 'filled datum reference', 'flatness', 'least material condition', 'maximum material condition', 'parallelism', 'perpendicularity', 'position', 'profile of a line', 'profile of a surface', 'projected tolerance zone', 'regardless of feature size', 'straightness', 'symmetry', or 'total runout'.
EXPRESS specification:
*) ENTITY pre_defined_point_marker_symbol SUBTYPE OF (pre_defined_marker,pre_defined_symbol); WHERE WR1: SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x']; END_ENTITY; (*
Formal Propositions:
WR1: The name of the pre_defined_point_marker_symbol shall be 'asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', or 'x'.
EXPRESS specification:
*) ENTITY pre_defined_surface_condition_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN ['000', '010', '020', '030', '040', '050', '060', '070', '001', '011', '021', '031', '041', '051', '061', '071', '100', '110', '120', '130', '140', '150', '160', '170', '101', '111', '121', '131', '141', '151', '161', '171', '200', '210', '220', '230', '240', '250', '260', '270', '201', '211', '221', '231', '241', '251', '261', '271']; END_ENTITY; (*
Formal Propositions:
WR1: The name of the pre_defined_surface_condition_symbol shall be '000', '010', '020', '030', '040', '050', '060', '070', '001', '011', '021', '031', '041', '051', '061', '071', '100', '110', '120', '130', '140', '150', '160', '170', '101', '111', '121', '131', '141', '151', '161', '171', '200', '210', '220', '230', '240', '250', '260', '270', '201', '211', '221', '231', '241', '251', '261', or '271'.
EXPRESS specification:
*) ENTITY pre_defined_terminator_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN ['blanked arrow','blanked box','blanked dot','dimension origin', 'filled arrow','filled box','filled dot','integral symbol', 'open arrow','slash','unfilled arrow']; END_ENTITY; (*
Formal Propositions:
WR1: The name of the pre_defined_terminator_symbol shall be 'blanked arrow', 'blanked box', 'blanked dot', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', or 'unfilled arrow'.
EXPRESS specification:
*) ENTITY process_operation SUBTYPE OF (action_method); WHERE WR1: SIZEOF( QUERY( amr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.ACTION_METHOD_RELATIONSHIP.' + 'RELATING_METHOD') | NOT('AUTOMOTIVE_DESIGN.PROCESS_OPERATION' IN TYPEOF(amr.related_method)) OR (SELF :=: amr.related_method) )) = 0; WR2: SIZEOF( QUERY( amr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD') | NOT('AUTOMOTIVE_DESIGN.PROCESS_OPERATION' IN TYPEOF(amr.relating_method)) OR (SELF :=: amr.relating_method) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: A process_operation shall only be refered to by action_method_relationships as relating_method, where the related_method refers to another instance of process_operation.
WR2: A process_operation shall only be refered to by action_method_relationships as related_method, where the relating_method refers to another instance of process_operation.
EXPRESS specification:
*) ENTITY process_plan SUBTYPE OF (action); WHERE WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF(['AUTOMOTIVE_DESIGN.PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action)) <> 1 )) = 0; WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF(['AUTOMOTIVE_DESIGN.PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR ((ar.name = 'process operation occurrence') AND ('AUTOMOTIVE_DESIGN.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method))) )) = SIZEOF(USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')); END_ENTITY; (*
Formal Propositions:
WR1: The process_plan shall only be referenced as the related_action by action_relationships that reference as the relating_action a process_plan or a product_process_plan.
WR2: The process_plan shall only be referenced as the relating_action by action_relationships that reference as the related_action a process_plan, or a product_process_plan, or by action_relationships that have a name of 'process operation occurrence' and that reference as the related_action an action that refers to a process_operation as its chosen_method.
EXPRESS specification:
*) ENTITY product_class SUBTYPE OF (product_concept,characterized_object); END_ENTITY; (*
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the product_class entity:
EXPRESS specification:
*) ENTITY product_concept_feature_category SUBTYPE OF (group); WHERE WR1: SIZEOF( QUERY( aga <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ('AUTOMOTIVE_DESIGN.APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND ((aga.role.name <> 'specification category member') OR (SIZEOF( QUERY( i <* aga.items | ('AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE' IN TYPEOF(i)) AND NOT ('AUTOMOTIVE_DESIGN.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(i)) )) <> SIZEOF(aga.items))) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: A product_concept_feature_category shall only be referenced as assigned_group by applied_group_assignment instances which reference as role an object_role with a name of 'specification category member' and which only contain product_concept_features in their set of items which are not of type conditional_concept_feature.
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the product_concept_feature_category entity:
EXPRESS specification:
*) ENTITY product_concept_feature_category_usage SUBTYPE OF (group_assignment); items : SET [1:?] OF category_usage_item; WHERE WR1: 'AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(SELF.assigned_group); WR2: SELF.role.name IN ['mandatory category usage', 'optional category usage']; END_ENTITY; (*
Attribute definitions:
items: the set of items to which the product_concept_feature_category is assigned.
Formal Propositions:
WR1: The product_concept_feature_category_usage shall have an assigned_group which is of type product_concept_feature_category.
WR2: The product_concept_feature_category_usage shall have as role an object_role with a name of 'mandatory category usage' or 'optional category usage'.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the product_concept_feature_category_usage entity:
EXPRESS specification:
*) ENTITY product_definition_resource SUBTYPE OF (action_resource,product_definition); WHERE WR1: SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') ) > 0; WR2: SELF.frame_of_reference.name IN ['part_definition','part occurrence','physical occurrence']; END_ENTITY; (*
Formal Propositions:
WR1: A product_definition_resource is contained in the set of resources of at least one requirement_for_action_resource.
WR2: A product_definition_resource shall reference as its frame_of_reference a product_definition_context with a name of 'part_definition', 'part occurrence', or 'physical occurrence'.
EXPRESS specification:
*) ENTITY product_identification SUBTYPE OF (configuration_item,characterized_object); WHERE WR1: SIZEOF( QUERY( cd <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.CONFIGURATION_DESIGN.CONFIGURATION') | ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(cd.design)) AND (SIZEOF( QUERY( prpc <* USEDIN(cd.design\product_definition_formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name IN ['part','raw material','tool'] )) > 0) )) <= 1; WR2: 'AUTOMOTIVE_DESIGN.PRODUCT_CLASS' IN TYPEOF(SELF.item_concept); WR3: NOT ('AUTOMOTIVE_DESIGN.CONFIGURABLE_ITEM' IN TYPEOF(SELF)) OR ('AUTOMOTIVE_DESIGN.PRODUCT_SPECIFICATION' IN TYPEOF(SELF)); END_ENTITY; (*
Formal Propositions:
WR1: Each product_identification shall be referenced as the configuration by at most one instance of configuration_design that references as design a product_definition_formation which references as of_product a product which is contained in the of products set of a product_related_product_category with a name of either 'part', 'raw material', or 'tool'.
WR2: Each product_identification shall reference as its item_concept a product_class.
WR3: If a product_identification is of type configurable_item it shall also be of type product_specification. If a product_identification is of type product_specification it shall also be of type configurable_item.
EXPRESS specification:
*) ENTITY product_process_plan SUBTYPE OF (product_definition_process); WHERE WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF(['AUTOMOTIVE_DESIGN.PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action) ) <> 1 )) = 0; WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF(['AUTOMOTIVE_DESIGN.PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR ((ar.name = 'process operation occurrence') AND ('AUTOMOTIVE_DESIGN.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method))) )) = SIZEOF(USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')); WR3: SIZEOF( QUERY( ppa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS') | (ppa.name <> 'produced output') OR NOT('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The product_process_plan shall only be referenced as the related_action by action_relationships that reference as the relating_action a process_plan or a product_process_plan.
WR2: The product_process_plan shall only be referenced as the relating_action by action_relationships that reference as the related_action a process_plan or a product_process_plan, or by action_relationships that have a name of 'process operation occurrence' and that reference as the related_action an action that refers to a process_operation as its chosen_method.
WR3: The product_process_plan shall only be referenced as process by process_product_associations that have a name of 'produced output' and that reference as defined_product a product_definition.
EXPRESS specification:
*) ENTITY product_specification SUBTYPE OF (product_identification,configurable_item); END_ENTITY; (*
EXPRESS specification:
*) ENTITY rectangular_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {3 <= SIZEOF( pdr.used_representation.items) <= 4} )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','length','width','corner radius']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'width') )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'length') )) = 1) )) = 1; WR8: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'corner radius') )) = 1) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The rectangular_closed_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The rectangular_closed_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the rectangular_closed_profile shall contain three or four representation_items in its set of items.
WR4: The implicit representation of a rectangular_closed_profile shall contain only representation_items in its set of items that have a name of either 'orientation', 'length', 'width', or 'corner radius'.
WR5: Exactly one representation_item used for the implicit representation of a rectangular_closed_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a rectangular_closed_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `width'.
WR7: Exactly one representation_item used for the implicit representation of a rectangular_closed_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `length'.
WR8: At most one representation_item used for the implicit representation of a rectangular_closed_profile shall have a name of `corner radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
Informal Propositions:
IP1: The rectangular_closed_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the rectangular_closed_profile is defined at the centre of the rectangle.
IP3: The length of the rectangular_closed_profile is defined in the X direction and the width is defined in the Y direction of the reference system.
EXPRESS specification:
*) ENTITY rectangular_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'row layout direction') )) = 1; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'column layout direction') )) = 1; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 5) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='number of rows') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='number of columns') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)) )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='row spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='column spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The rectangular_pattern shall have exactly one direction_shape_representation with a name of 'row layout direction'.
WR2: The rectangular_pattern shall have exactly one direction_shape_representation with a name of 'column layout direction'.
WR3: The implicit representation of the rectangular_pattern shall contain five representation_items in its set of items.
WR4: The implicit representation of the rectangular_pattern shall contain exactly one representation_item of type measure_representation_item with a value_component of type count_measure and a name of 'number of rows'.
WR5: The implicit representation of the rectangular_pattern shall contain exactly one representation_item of type measure_representation_item with a value_component of type count_measure and a name of 'number of columns'.
WR6: The implicit representation of the rectangular_pattern shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'row spacing'.
WR7: The implicit representation of the rectangular_pattern shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'column spacing'.
Informal Propositions:
IP1: The location of the rectangular_pattern shall be defined at the position of the first base feature.
IP2: The rectangular_pattern shall be defined in the X-Y plane.
EXPRESS specification:
*) ENTITY rep_item_group SUBTYPE OF (group,representation_item); WHERE WR1: SIZEOF( USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS') ) > 0; WR2: SIZEOF( QUERY( r <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION.ITEMS') | r.name = 'group representation' )) > 0; WR3: SIZEOF( QUERY( ga <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ga.role.name <> 'group membership' )) = 0; WR4: SIZEOF(['AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.TOPOLOGICAL_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.STYLED_ITEM'] * TYPEOF(SELF) ) = 1; END_ENTITY; (*
Formal Propositions:
WR1: A rep_item_group shall be contained in the set of assigned_items of a presentation_layer_assignment.
WR2: A rep_item_group shall be contained in the set of items of a representation with a name of 'group representation'.
WR3: The rep_item_group shall only be referenced by group_assignments that reference as role an object_role that has a name of 'group membership'.
WR4: The items in a rep_item_group shall be of type geometric_representation_item, topological_representation_item, mapped_item, or styled_item.
EXPRESS specification:
*) ENTITY replicate_feature SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='orientation') AND ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) )) = 1) )) = 1; WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'pattern basis') AND ('AUTOMOTIVE_DESIGN.FEATURE_DEFINITION' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) )) = 1 ) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The replicate_feature shall have exactly one implicit representation of type shape_representation_with_parameters.
WR2: The implicit representation of the replicate_feature shall contain exactly one representation_item that is of type placement and a name of 'orientation'
WR3: The basis shape of the replicate_feature shall have an aspect of shape that is the relating_shape_aspect of a feature_component_relationship with a name of 'pattern basis' and a related_shape_aspect that is an aspect of the basis shape of a feature_definition.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the replicate_feature entity:
EXPRESS specification:
*) ENTITY retention SUBTYPE OF (action); WHERE WR1: SIZEOF( QUERY( aa <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ('AUTOMOTIVE_DESIGN.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND (aa.role.name = 'retention') )) >= 1; WR2: (SIZEOF( QUERY( atia <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia.role.name = 'minimum retention period') )) = 1) AND (SIZEOF( QUERY( atia <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia.role.name = 'maximum retention period') )) = 1) AND (SIZEOF( QUERY( atia1 <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia1.role.name = 'minimum retention period') AND ('AUTOMOTIVE_DESIGN.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia1.assigned_time_interval)) AND (EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.duration)) AND (SIZEOF( QUERY( atia2 <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia2.role.name = 'maximum retention period') AND ('AUTOMOTIVE_DESIGN.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia2.assigned_time_interval)) AND (EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.duration)) AND (atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: atia2.assigned_time_interval\time_interval_with_bounds.primary_bound) )) = 1) )) = 1); WR3: SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The retention shall be referenced as the assigned_action by at least one instance of applied_action_assignment that has a role with name 'retention'.
WR2: The retention shall be contained in the set of items of exactly one applied_time_interval_assignment that references as its role a time_interval_role with a name of 'minimum retention period', and shall be contained in the set of items of exactly one applied_time_interval_assignment that references as its role a time_interval_role with a name of 'maximum retention period'. Both applied_time_interval_assignment instances shall reference as assigned_time_interval a time_interval_with_bounds that has its primary_bound and either one of secondary_bound or duration attributes instantiated. Both applied_time_interval_assignment instances shall have the same primary_bound.
WR3: The retention shall not be referenced by an action_relationship.
Associated global rules:
The following global rules defined in this part of ISO 10303 apply to the retention entity:
EXPRESS specification:
*) ENTITY rib SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation.items) <= 3}) )) = 0; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','fillet radius','shoulder radius']) )) > 0) )) = 0; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='fillet radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='shoulder radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'swept shape occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE', 'AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1; WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'directed taper') )) = 1 ) )) <= 1; END_ENTITY; (*
Formal Propositions:
WR1: The implicit representation of the rib shall contain between one and three representation_items in its set of items.
WR2: The implicit representation of a rib shall contain only representation_items in its set of items that have a name of either 'orientation', 'fillet radius', or 'shoulder radius'.
WR3: At most one representation_item used for the implicit representation of the rib shall have a name of 'fillet radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR4: At most one representation_item used for the implicit representation of the rib shall have a name of 'shoulder radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR5: The rib shall be the basis shape for exactly one shape_aspect with a description of 'swept shape occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'profile usage' and a relating_shape_aspect that is of type partial_circular_profile, square_u_profile, rounded_u_profile, vee_profile, tee_profile, or open_path_profile.
WR6: The rib shall be the basis shape for exactly one shape_aspect with a description of 'course of travel occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'course of travel' and a relating_shape_aspect that is of type path_feature_component.
WR7: The rib shall be the basis shape for at most one shape_aspect with a description of 'change in boundary occurrence'. If present, this shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'taper usage' and a relating_shape_aspect that is of type taper with a description of 'directed taper'.
Informal Propositions:
IP1: The ends of a rib shall disappear in the base shape.
EXPRESS specification:
*) ENTITY round_hole SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'diameter occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'diameter') AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'hole depth occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'hole depth') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'linear') )) = 1 ) )) = 1; WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'bottom condition occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'hole bottom usage') AND ('AUTOMOTIVE_DESIGN.HOLE_BOTTOM' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) <= 1; WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in diameter occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.TAPER' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) <> 1) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The round_hole shall be the basis shape for exactly one shape_aspect with a description of 'diameter occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'diameter', a description of 'profile usage', and a relating_shape_aspect of type circular_closed_profile.
WR2: The round_hole shall be the basis shape for exactly one shape_aspect with a description of 'hole depth occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'hole depth', a description of 'path feature component usage' and a relating_shape_aspect that is of type path_feature_component with a description of 'linear'.
WR3: The round_hole shall be the basis shape for exactly one shape_aspect with a description of 'bottom condition occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'hole bottom usage' and a relating_shape_aspect of type hole_bottom.
WR4: The round_hole shall be the basis shape for at most one shape_aspect with a description of 'change in diameter occurrence'. If present, this shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'taper usage' and a relating_shape_aspect of type taper.
WR5: The implicit representation of a round_hole shall contain exactly one representation_item.
EXPRESS specification:
*) ENTITY rounded_u_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['width','orientation']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'width') )) = 1) )) = 1; WR7: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The rounded_u_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The rounded_u_profile shall have exactly one implicit representation defined by a relationship to a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the rounded_u_profile shall contain exactly two representation_items in its set of items.
WR4: The implicit representation of the rounded_u_profile shall only contain representation_items that have a name of 'width' or 'orientation'.
WR5: Exactly one representation_item used for the implicit representation of a rounded_u_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a rounded_u_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `width'.
WR7: The rounded_u_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The rounded_u_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the rounded_u_profile is defined at the midpoint of the arc.
IP3: The rounded_u_profile is defined with the X direction tangent to the arc at the midpoint, and the Y direction in the direction of the open end of the profile.
EXPRESS specification:
*) ENTITY shape_aspect_transition SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SIZEOF( QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect) | SIZEOF( QUERY( pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect) | SIZEOF( QUERY( item_1 <* pdr_1.used_representation.items | SIZEOF( QUERY( item_2 <* pdr_2.used_representation.items | NOT ((('AUTOMOTIVE_DESIGN.EDGE' IN TYPEOF(item_1)) AND ('AUTOMOTIVE_DESIGN.EDGE' IN TYPEOF(item_2))) XOR (('AUTOMOTIVE_DESIGN.FACE' IN TYPEOF(item_1)) AND ('AUTOMOTIVE_DESIGN.FACE' IN TYPEOF(item_2)))) )) > 0 )) > 0 )) > 0 )) = 0; WR2: SIZEOF( QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect) | SIZEOF( QUERY( pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect) | SIZEOF( QUERY( item_1 <* pdr_1.used_representation.items | SIZEOF( QUERY( item_2 <* pdr_2.used_representation.items | ('AUTOMOTIVE_DESIGN.EDGE' IN TYPEOF(item_1)) AND ('AUTOMOTIVE_DESIGN.EDGE' IN TYPEOF(item_2)) AND NOT ((item_1\edge.edge_start :=: item_2\edge.edge_start) OR (item_1\edge.edge_start :=: item_2\edge.edge_end) OR (item_1\edge.edge_end :=: item_2\edge.edge_start) OR (item_1\edge.edge_end :=: item_2\edge.edge_end)) )) > 0 )) > 0 )) > 0 )) = 0; WR3: SIZEOF( QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect) | SIZEOF( QUERY( pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect) | SIZEOF( QUERY( item_1 <* pdr_1.used_representation.items | SIZEOF( QUERY( item_2 <* pdr_2.used_representation.items | ('AUTOMOTIVE_DESIGN.FACE' IN TYPEOF(item_1)) AND ('AUTOMOTIVE_DESIGN.FACE' IN TYPEOF(item_2)) AND (SIZEOF( QUERY( f_1 <* item_1\face.bounds | ('AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(f_1.bound)) AND (SIZEOF( QUERY( f_2 <* item_2\face.bounds | ('AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(f_2.bound)) AND (SIZEOF( QUERY( oe_1 <* f_1.bound\path.edge_list | SIZEOF( QUERY( oe_2 <* f_2.bound\path.edge_list | oe_1.edge_element :=: oe_2.edge_element )) = 0 )) = 0) )) = 0) )) = 0) )) = 0 )) = 0 )) = 0 )) = 0; WR4: SELF.name IN ['g0','g1','g2']; END_ENTITY; (*
Formal Propositions:
WR1: The shape_aspects that play the role of either relating_shape_aspect or related_shape_aspect shall be associated to representations that contain either an edge in both or a face in both.
WR2: If the representations contain edges they shall share at least one instance of vertex.
WR3: If the representations contain faces they shall share at least one instance of edge.
WR4: The shape_aspect_transition shall have a name of either 'g0','g1, or 'g2'.
EXPRESS specification:
*) ENTITY shape_defining_relationship SUBTYPE OF (shape_aspect_relationship); WHERE WR1: (SELF\shape_aspect_relationship.description <> 'profile usage') OR (SIZEOF( ['AUTOMOTIVE_DESIGN.RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE'] * TYPEOF(SELF\shape_aspect_relationship.relating_shape_aspect) ) = 1); WR2: (SELF\shape_aspect_relationship.description <> 'path feature component usage') OR ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(SELF\shape_aspect_relationship.relating_shape_aspect)); END_ENTITY; (*
Formal Propositions:
WR1: If the shape_defining_relationship has a description of 'profile usage', the relating_shape_aspect shall be of type rectangular_closed_profile, circular_closed_profile, ngon_closed_profile, closed_path_profile, open_path_profile, partial_circular_profile, rounded_u_profile, square_u_profile, tee_profile, or vee_profile.
WR2: If the shape_defining_relationship has a description of 'path feature component usage', the relating_shape_aspect shall be of type path_feature_component.
EXAMPLE The shape of a box may be specified by a shape_representation_with_parameters by giving measurements for its height, length, and width.
EXPRESS specification:
*) ENTITY shape_representation_with_parameters SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.PLACEMENT', 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1 )) = SIZEOF(SELF.items); END_ENTITY; (*
Formal Propositions:
WR1: The elements that specify the parameters for a shape_representation_with_parameters shall be of type placement, measure_representation_item, or descriptive_representation_item.
EXPRESS specification:
*) ENTITY slot SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1; WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'swept shape occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.VEE_PROFILE', 'AUTOMOTIVE_DESIGN.TEE_PROFILE', 'AUTOMOTIVE_DESIGN.OPEN_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect) ) = 1 ) )) = 1 ) )) = 1; WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'end condition occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'starting') AND (sar.description = 'slot end usage') AND ('AUTOMOTIVE_DESIGN.SLOT_END' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'end condition occurrence') AND (SIZEOF( QUERY( sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'ending' ) AND (sar.description = 'slot end usage') AND ('AUTOMOTIVE_DESIGN.SLOT_END' IN TYPEOF(sar.relating_shape_aspect)) )) = 1 ) )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The implicit representation of the slot shall contain exactly one representation_items in its set of items.
WR2: The slot shall be the basis shape for exactly one shape_aspect with a description of 'swept shape occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a description of 'profile usage' and a relating_shape_aspect of type square_u_profile, partial_circular_profile, rounded_u_profile, vee_profile, tee_profile, or open_path_profile.
WR3: The slot shall be the basis shape for exactly one shape_aspect with a description of 'course of travel occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one shape_defining_relationship with a name of 'course of travel', a description of 'path feature component usage' and a relating_shape_aspect of type path_feature_component.
WR4: The slot shall be the basis shape for exactly one shape_aspect with a description of 'end condition occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'slot end usage' and a a name of 'starting' in which the relating_shape_aspect is a slot_end.
WR5: The slot shall be the basis shape for exactly one shape_aspect with a description of 'end condition occurrence'. This shape_aspect shall be the related_shape_aspect in exactly one feature_component_relationship with a description of 'slot end usage' and a name of 'ending' in which the relating_shape_aspect is a slot_end.
EXPRESS specification:
*) ENTITY slot_end SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['open','radiused','flat','woodruff']; WR3: (SELF.description IN ['open','radiused']) XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 0); WR4: NOT(SELF.description IN ['flat','woodruff']) XOR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1); WR5: (SELF.description <> 'flat') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2) )) = 1); WR6: (SELF.description <> 'flat') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='first radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR7: (SELF.description <> 'flat') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='second radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR8: (SELF.description <> 'woodruff') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) )) = 1); WR9: (SELF.description <> ' woodruff ') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1); WR10: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting','ending' ]) AND (sar.description = 'slot end usage') AND ('AUTOMOTIVE_DESIGN.SLOT' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition') AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'slot end occurrence') )) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The slot_end shall be an aspect of the shape of a feature_component_definition.
WR2: The description for the slot_end shall be either 'open', 'radiused', 'flat', or 'woodruff'.
WR3: If the description of the slot_end is 'open' or 'radiused', the slot_end shall not have any implicit representation.
WR4: If the description of the slot_end is 'flat' or 'woodruff' the slot_end shall have its implicit representation specified by exactly one shape_representation_with_parameters.
WR5: If the description of the slot_end is 'flat', the slot_end shall have an implicit representation that contains exactly two representation_items in its set of items.
WR6: If the description of the slot_end is 'flat', exactly one representation_item used for the implicit representation of the slot_end shall be of type measure_representation_item and length_measure_with_unit with a name of 'first radius'.
WR7: If the description of the slot_end is 'flat', exactly one representation_item used for the implicit representation of the slot_end shall be of type measure_representation_item and length_measure_with_unit with a name of 'second radius'.
WR8: If the description of the slot_end is 'woodruff', the slot_end shall have an implicit representation that contains exactly one representation_item in its set of items.
WR9: If the description of the slot_end is 'woodruff', exactly one representation_item used for the implicit representation of the slot_end shall be of type measure_representation_item and length_measure_with_unit with a name of 'radius'.
WR10: The slot_end shall be the relating_shape_aspect in exactly one feature_component_relationship with a description of 'slot end usage' and a name of either 'starting' or 'ending' in which the related_shape_aspect is an aspect of the shape of a slot with a name of 'end condition' and a description of 'slot end occurrence'.
EXPRESS specification:
*) ENTITY square_u_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {4 <= SIZEOF( pdr.used_representation.items) <= 6} )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','width','first angle','second angle','first radius','second radius']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'width') )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'first angle') )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'second angle') )) = 1) )) = 1; WR9: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'first radius') )) = 1) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'first radius') )) = 1) )) <= 1); WR10: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'second radius') )) = 1) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'second radius') )) = 1) )) <= 1); WR11: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The square_u_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The square_u_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the square_u_profile shall contain between four and six representation_items in its set of items.
WR4: The implicit representation of a square_u_profile shall contain only representation_items in its set of items that have a name of either 'orientation', 'width', 'first angle', 'second angle', 'first radius', or 'second radius'.
WR5: Exactly one representation_item used for the implicit representation of a square_u_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a square_u_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `width'.
WR7: Exactly one representation_item used for the implicit representation of a square_u_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `first angle'.
WR8: Exactly one representation_item used for the implicit representation of a square_u_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `second angle'.
WR9: At most one representation_item used for the implicit representation of a square_u_profile shall have a name of 'first radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR10: At most one representation_item used for the implicit representation of a square_u_profile shall have a name of 'second radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR11: The square_u_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The square_u_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the square_u_profile is defined at the midpoint of the base line.
IP3: The square_u_profile is defined with the base line in the X direction and the Y direction in the direction of the open end of the profile.
EXPRESS specification:
*) ENTITY surface_condition_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF( QUERY( c <* SELF.contents | SIZEOF(['AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE'] * TYPEOF(c) ) <> 1 )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The elements in the inherited attribute contents shall be of type annotation_curve_occurrence, annotation_symbol_occurrence, or annotation_text_occurrence.
EXPRESS specification:
*) ENTITY surface_texture_representation SUBTYPE OF (representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE', 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i) ) <> 1) ) = 0; WR2: (SIZEOF( QUERY( i <* SELF.items | 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i) )) = 1) AND (SIZEOF( QUERY( i <* SELF.items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'measuring method') )) = 1); WR3: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE'] * TYPEOF(i) ) = 1) ) > 0; WR4: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1')) <= 1) AND (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_2')) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.rep_2.name = 'measuring direction')) = SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1'))); WR5: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') ) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( gpa <* USEDIN(pdr.definition,'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AUTOMOTIVE_DESIGN.GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition)) AND (gpa.base_definition.name = 'surface_texture') )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: Each instance of surface_texture_representation shall contain only representation_items that are of type measure_representation_item, value_range, or descriptive_representation_item.
WR2: Each instance of surface_texture_representation shall contain exactly one descriptive_representation_item. The name of this descriptive_representation_item shall be 'measuring method'.
WR3: Each instance of surface_texture_representation shall contain at least one measure_representation_item or value_range.
WR4: Each instance of surface_texture_representation shall be referenced by at most one representation_relationship. If such a relationship is present, the surface_texture_representation shall be the rep_1 and the rep_2 shall be a representation whose name is 'measuring direction'.
WR5: Each instance of surface_texture_representation shall be referenced by exactly one property_definition_representation. This property_definition_representation shall relate the representation with a property_definition that is the derived_definition of a general_property_association that refers as base_definition to a general_property with a name of 'surface_texture'.
Informal Propositions:
IP1: If the surface_texture_representation contains qualified_representation_items that refer to a type_qualifier representing the value determination then all of the representation_items except the descriptive_representation_item shall also be qualified_representation_items that refer to the same instance of type_qualifier.
EXPRESS specification:
*) ENTITY tactile_appearance_representation SUBTYPE OF (representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.VALUE_RANGE'] * TYPEOF(i) ) <> 1) ) = 0; WR2: SIZEOF( QUERY( i <* SELF.items | name = 'depth' )) <= 1; WR3: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') ) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( gpa <* USEDIN(pdr.definition,'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AUTOMOTIVE_DESIGN.GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition)) AND (gpa.base_definition.name = 'surface_texture') )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: Each instance of tactile_appearance_representation shall only representation_items of type measure_representation_item or value_range in its set of items.
WR2: At most one representation_item in the set of items shall have a name of 'depth'.
WR3: Each instance of tactile_appearance_representation shall be referenced by exactly one property_definition_representation. This property_definition_representation shall relate the representation with a property_definition that is the derived_definition of a general_property_association that refers as base_definition to a general_property with a name of 'surface_texture'.
Informal Propositions:
IP1: If the tactile_appearance_representation contains qualified_representation_items that refer to a type_qualifier representing the value determination then all of the representation_items shall also be qualified_representation_items that refer to the same instance of type_qualifier.
EXPRESS specification:
*) ENTITY taper SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['angle taper','diameter taper','directed taper']; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( pdr.used_representation.items) = 1) )) = 1; WR5: (SELF.description <> 'angle taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'taper angle') )) = 1) )) = 1); WR6: (SELF.description <> 'diameter taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'taper diameter') )) = 1) )) = 1); WR7: (SELF.description <> 'directed taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'angle') )) = 1) )) = 1); WR8: (SELF.description <> 'directed taper') OR (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'direction') )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: The taper shall be an aspect of the shape of a feature_component_definition.
WR2: The description of the taper shall be either 'angle taper', 'diameter taper', or 'directed taper'.
WR3: The taper shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR4: The shape_representation_with_parameters that represents the shape of the taper shall contain exactly one representation_item in its set of items.
WR5: If the description of the taper is 'angle taper', the implicit representation of the taper shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'taper angle'.
WR6: If the description of the taper is 'diameter taper', the implicit representation of the taper shall contain exactly one representation_item of type measure_representation_item and length_measure_with_unit with a name of 'taper diameter'.
WR7: If the description of the taper is 'directed taper', the implicit representation of the taper shall contain exactly one representation_item of type measure_representation_item and plane_angle_measure_with_unit with a name of 'angle'.
WR8: If the description of the taper is 'directed taper', its shape shall be represented by exactly one direction_shape_representation. This direction_shape_representation shall have a name of 'direction'.
EXPRESS specification:
*) ENTITY tee_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {9 <= SIZEOF( pdr.used_representation.items) <= 10} )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','width','depth','cross bar width','cross bar depth','first offset', 'second offset','first angle','second angle','radius']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'width') )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'depth') )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'cross bar width') )) = 1) )) = 1; WR9: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'cross bar depth') )) = 1) )) = 1; WR10: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'first offset') )) = 1) )) = 1; WR11: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'second offset') )) = 1) )) = 1; WR12: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'first angle') )) = 1) )) = 1; WR13: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'second angle') )) = 1) )) = 1; WR14: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'radius') )) = 1) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'radius') )) = 1) )) <= 1); WR15: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The tee_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The tee_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the tee_profile shall contain between nine and ten representation_items in its set of items.
WR4: The implicit representation of a tee_profile shall contain only representation_items in its set of items that have a name of either 'orientation', 'width', 'depth', 'cross bar width', 'cross bar depth', 'first offset', 'second offset', 'first angle', 'second angle', or 'radius'.
WR5: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `width'.
WR7: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `depth'.
WR8: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `cross bar width'.
WR9: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `cross bar depth'.
WR10: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `first offset'.
WR11: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and length_measure_with_unit with a name of `second offset'.
WR12: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `first angle'.
WR13: Exactly one representation_item used for the implicit representation of a tee_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `second angle'.
WR14: At most one representation_item used for the implicit representation of a tee_profile shall have a name of `radius'. If present, this representation_item shall be of type measure_representation_item and length_measure_with_unit.
WR15: The tee_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The tee_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the tee_profile is defined at the midpoint of the side of the crossbar opposite the stem.
IP3: The tee_profile is defined with the side of the crossbar opposite the stem in the X direction and the profile symmetric with respect to the Y direction.
EXPRESS specification:
*) ENTITY thread SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({7 <= SIZEOF(pdr.used_representation.items) <= 10}) )) = 0; WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i\descriptive_representation_item.description IN ['internal','external']) AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='major diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='minor diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='pitch diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='crest') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) <= 1; WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='number of threads') AND (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.RATIO_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1) )) = 1; WR8: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='fit class') AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) = 1; WR9: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='form') AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) = 1; WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='hand') AND (i\descriptive_representation_item.description IN ['left hand','right hand']) AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) = 1; WR11: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name='qualifier') AND ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = 1) )) <= 1; WR12: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['thread side','major diameter','minor diameter','pitch diameter', 'crest','number of threads','fit class','form','hand','qualifier']) )) > 0) )) = 0; END_ENTITY; (*
Formal Propositions:
WR1: The shape_representation_with_parameters that represents the thread shall contain between seven and ten representation_items in its set of items.
WR2: Exactly one representation_item used for the implicit representation of the thread shall be of type descriptive_representation_item with a name of 'thread side' and a description of either 'internal' or 'external'.
WR3: Exactly one representation_item used for the implicit representation of the thread shall be of type measure_representation_item and length_measure_with_unit with a name of 'major diameter'.
WR4: At most one representation_item used for the implicit representation of the thread shall be of type measure_representation_item and length_measure_with_unit with a name of 'minor diameter'.
WR5: Exactly one representation_item used for the implicit representation of the thread shall be of type measure_representation_item and length_measure_with_unit with a name of 'pitch diameter'.
WR6: At most one representation_item used for the implicit representation of the thread shall be of type measure_representation_item and length_measure_with_unit with a name of 'crest'.
WR7: Exactly one representation_item used for the implicit representation of the thread shall be of type measure_representation_item and ratio_measure_with_unit with a name of 'number of threads'.
WR8: Exactly one representation_item used for the implicit representation of the thread shall be of type descriptive_representation_item with a name of 'fit class'.
WR9: Exactly one representation_item used for the implicit representation of the thread shall be of type descriptive_representation_item with a name of 'form'.
WR10: Exactly one representation_item used for the implicit representation of the thread shall be of type descriptive_representation_item with a name of 'hand'. The descriptive_representation_item shall have a description of either 'left hand' or 'right hand'.
WR11: The implicit representation of the thread shall contain at most one representation_item of type descriptive_representation_item that has a name of 'qualifier'.
WR12: The implicit representation of a thread shall contain only representation_items with a name of either ''thread side', 'major diameter', 'minor diameter', 'pitch diameter', 'crest', 'number of threads', 'fit class', 'form', 'hand', or 'qualifier'.
EXPRESS specification:
*) ENTITY transition_feature SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(['AUTOMOTIVE_DESIGN.CHAMFER', 'AUTOMOTIVE_DESIGN.EDGE_ROUND', 'AUTOMOTIVE_DESIGN.FILLET'] * TYPEOF(SELF)) = 1; END_ENTITY; (*
Formal Propositions:
WR1: The transition_feature shall be an aspect of the shape of a product_definition.
WR2: Each instance of transition_feature shall be either a chamfer, an edge_round, or a fillet.
Associated global rule:
The following global rule defined in this part of ISO 10303 applies to the transition_feature entity:
EXPRESS specification:
*) ENTITY value_range SUBTYPE OF (compound_representation_item); WHERE WR1: ('AUTOMOTIVE_DESIGN.SET_REPRESENTATION_ITEM' IN TYPEOF(item_element)) AND value_range_wr1(item_element); WR2: value_range_wr2(item_element); WR3: value_range_wr3(item_element); END_ENTITY; (*
Formal Propositions:
WR1: The value_range shall have a set_representation_item as its item_element. This set_representation_item shall have exactly two representation_items of the same type in its set that are either measure_representation_items or value_representation_items.
WR2: One of the representation_items in the set specified by item_element shall have a name of 'upper limit', and the other a name of 'lower limit'.
WR3: If the set specified by item_element consists of measure_representation_items, then the measure_representation_items shall point to the same instance of named_unit or derived_unit as their respective unit_component.
EXPRESS specification:
*) ENTITY vector_style SUBTYPE OF (pre_defined_terminator_symbol,curve_style); END_ENTITY; (*
EXPRESS specification:
*) ENTITY vee_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'AUTOMOTIVE_DESIGN.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {3 <= SIZEOF( pdr.used_representation.items) <= 4} )) = 1; WR4: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | NOT(i.name IN ['orientation','profile angle','tilt angle','profile radius']) )) > 0) )) = 0; WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation') )) = 1) )) = 1; WR6: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'profile angle') )) = 1) )) = 1; WR7: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) AND (i.name = 'tilt angle') )) = 1) )) = 1; WR8: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'profile radius') )) = 1) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY( i <* pdr.used_representation.items | (i.name = 'profile radius') AND ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(i)) )) = 1) )) <= 1); WR9: (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) <= 1) AND (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit') )) <= 1); END_ENTITY; (*
Formal Propositions:
WR1: The vee_profile shall be an aspect of the shape of a feature_component_definition.
WR2: The vee_profile shall have exactly one implicit representation defined by a shape_representation_with_parameters.
WR3: The shape_representation_with_parameters that represents the vee_profile shall contain between three and four representation_items in its set of items.
WR4: The implicit representation of a vee_profile shall contain only representation_items in its set of items that have a name of either 'orientation', 'profile angle', 'tilt angle', or 'profile radius'.
WR5: Exactly one representation_item used for the implicit representation of a vee_profile shall be of type placement with a name of `orientation'.
WR6: Exactly one representation_item used for the implicit representation of a vee_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `profile angle'.
WR7: Exactly one representation_item used for the implicit representation of a vee_profile shall be of type measure_representation_item and plane_angle_measure_with_unit with a name of `tilt angle'.
WR8: At most one representation_item used for the implicit representation of a vee_profile shall have a name of `profile radius'. If present, this representation_item shall be of type measure_representation_item with a value_component of type length_measure_with_unit.
WR9: The vee_profile shall be represented by at most one planar_shape_representation. If present, this planar_shape_representation shall have a name of 'profile limit'.
Informal Propositions:
IP1: The vee_profile shall be planar and shall lie in the X-Y plane of the reference system.
IP2: The reference point of the vee_profile is defined at the position where the two lines connect.
EXPRESS specification:
*) ENTITY visual_appearance_representation SUBTYPE OF (representation); WHERE WR1: ({2 <= SIZEOF(SELF.items) <= 5}) AND (SIZEOF( QUERY( i <* items | ('AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['colour id','colour name','lustre','pattern','transparency']) )) = SIZEOF(SELF.items)); WR2: SIZEOF( QUERY( i <* SELF.items | i.name = 'colour id') ) = 1; WR3: SIZEOF( QUERY( i <* SELF.items | i.name = 'lustre') ) = 1; WR4: SIZEOF( QUERY( i <* SELF.items | i.name = 'colour name') ) <= 1; WR5: SIZEOF( QUERY( i <* SELF.items | i.name = 'pattern') ) <= 1; WR6: SIZEOF( QUERY( i <* SELF.items | i.name = 'transparency') ) <= 1; WR7: (SIZEOF( USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') ) = 1) AND (SIZEOF( QUERY( pdr <* USEDIN(SELF,'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF( QUERY( gpa <* USEDIN(pdr.definition,'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AUTOMOTIVE_DESIGN.GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition)) AND (gpa.base_definition.name = 'surface_texture') )) = 1 )) = 1); END_ENTITY; (*
Formal Propositions:
WR1: Each instance of visual_appearance_representation shall contain between two and five representation_items in its set of items. These representation_items shall be of type descriptive_representation_item and have a name of 'colour id', 'colour name', 'lustre', 'pattern', or 'transparency'.
WR2: Each instance of visual_appearance_representation shall contain exactly one representation_item in its set of items that has a name of 'colour id'.
WR3: Each instance of visual_appearance_representation shall contain exactly one representation_item in its set of items that has a name of 'lustre'.
WR4: Each instance of visual_appearance_representation shall contain at most one representation_item in its set of items that has a name of 'colour name'.
WR5: Each instance of visual_appearance_representation shall contain at most one representation_item in its set of items that has a name of 'pattern'.
WR6: Each instance of visual_appearance_representation shall contain at most one representation_item in its set of items that has a name of 'transparency'.
WR7: Each instance of visual_appearance_representation shall be referenced by exactly one property_definition_representation. This property_definition_representation shall relate the representation with a property_definition that is the derived_definition of a general_property_association that refers as base_definition to a general_property with a name of 'surface_texture'.
Informal Propositions:
IP1: If the visual_appearance_representation contains qualified_representation_items that refer to a type_qualifier representing the value determination then all of the representation_items shall also be qualified_representation_items that refer to the same instance of type_qualifier.
© ISO 2010 — All rights reserved