public void GetInitialValues(ONAction action, object[] arguments)
 {
     object[] lArgumentsActualValue = new object[arguments.Length];
     int j = 0;
     while (j <= arguments.Length - 1)
     {
         if (arguments[j] is ONOid)
             lArgumentsActualValue[j] = (arguments[j] as ONOid).GetInstance(action.OnContext);
         j++;
     }
     object lReturn = ONContext.InvoqueMethod(action, "CopyInstances", new object[] { lArgumentsActualValue });
     InstancesInitialValues = lReturn as Dictionary<ONOid, ONInstance>;
 }
 /// <summary>
 /// Puts the instance in the modified class list to check integrity constraints and trigger conditions
 /// The instance is putted thought it's not marked as modified (only in insert / deletion events)
 /// </summary>
 /// <param name="filter">Action component that represents the class that is modified</param>
 public void AddUnmodifiedClass(ONAction action)
 {
     ModifiedClass.Remove(action.Instance.Oid);
     ModifiedClass.Add(action.Instance.Oid, action);
 }