FUNCTION invalidate_vrep_item

(* SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; *)
FUNCTION invalidate_vrep_item(item : representation_item) 
                                   : BOOLEAN;

  LOCAL
    reps    : SET[1:?] OF representation := using_representations(item);
    ri    : SET[1:?] OF variational_representation_item;
    iar     : instance_attribute_reference;
    i       : INTEGER;
    n       : INTEGER := HIINDEX(reps);
  END_LOCAL;

  IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item))
  THEN
    IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' 
      IN TYPEOF(item\generic_variable.interpretation\environment.semantics)
    THEN
      BEGIN
        iar := item\generic_variable.interpretation\environment.semantics;
        IF (reps <> using_representations(iar\instance_attribute_reference.owning_instance))
        THEN
          RETURN(TRUE);
        END_IF;
      END;
    ELSE RETURN(TRUE); -- parameter not attached to an instance attribute
    END_IF;
  END_IF;

  IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item))
  THEN
    BEGIN 
      REPEAT i := 1 TO n;
        ri := QUERY(q <* reps[i]\representation.items | 
          'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q));
        IF SIZEOF(QUERY(r <* ri | 
          item IN (r\free_form_constraint.reference_elements + r\free_form_constraint.constrained_elements))) = 0
        THEN 
          RETURN(TRUE);
        END_IF;
      END_REPEAT;
    END;
  END_IF;

  IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' 
    IN TYPEOF(item))
  THEN
    REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes);
--next line is previous
--      IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]))
--is this intent?
      IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance))
      THEN
        RETURN(TRUE);
      END_IF;
    END_REPEAT;
  END_IF;

  IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(item))
  THEN
    IF SIZEOF(QUERY(q <* 
      (item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements) |
      reps <> using_representations(q))) > 0
    THEN
      RETURN(TRUE);
    END_IF;
  END_IF;

  IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item))
  THEN
    BEGIN 
      REPEAT i := 1 TO n;
        ri := QUERY(q <* reps[i]\representation.items | 
          'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q));
        IF SIZEOF(QUERY(r <* ri | 
          item IN r\explicit_geometric_constraint.reference_elements)) = 0
        THEN
          RETURN(TRUE);
        END_IF;
      END_REPEAT;
    END;
  END_IF;

  RETURN(FALSE); -- no invalid cases have been found

END_FUNCTION;

Referenced By

Defintion invalidate_vrep_item is references by the following definitions:
DefinitionType
 variational_representation ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:20:10-04:00