@@ -684,9 +684,8 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
684684
685685 foreach ( var parameter in elementBasesToUpdate [ element ] )
686686 {
687- var sourceThing = this . CreateOrUpdateTransaction ( transaction , ( Parameter ) parameter , elementClone . Parameter ) ;
688- var targetThing = this . ParameterVariable [ parameter ] . SelectedCoordinateSystem ;
689- this . CreateOrUpdateRelationShip ( sourceThing , targetThing , iterationClone , transaction ) ;
687+ var sourceThing = this . CreateOrUpdateTransaction ( transaction , ( Parameter ) parameter , elementClone . Parameter ) ;
688+ this . VerifyRelationShip ( transaction , iterationClone , parameter , sourceThing ) ;
690689 }
691690
692691 break ;
@@ -698,9 +697,8 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
698697
699698 foreach ( var parameterOverride in elementBasesToUpdate [ element ] )
700699 {
701- var sourceThing = this . CreateOrUpdateTransaction ( transaction , ( ParameterOverride ) parameterOverride , elementUsageClone . ParameterOverride ) ;
702- var targetThing = this . ParameterVariable [ parameterOverride ] . SelectedCoordinateSystem ;
703- this . CreateOrUpdateRelationShip ( sourceThing , targetThing , iterationClone , transaction ) ;
700+ var sourceThing = this . CreateOrUpdateTransaction ( transaction , ( ParameterOverride ) parameterOverride , elementUsageClone . ParameterOverride ) ;
701+ this . VerifyRelationShip ( transaction , iterationClone , parameterOverride , sourceThing ) ;
704702 }
705703
706704 break ;
@@ -709,6 +707,26 @@ private void AddParameterOrOverrideToTransaction(Dictionary<Thing, List<Paramete
709707 }
710708 }
711709
710+ /// <summary>
711+ /// Verifies if the given <see cref="ParameterOrOverrideBase" /> has a Coordinate System linked and create the
712+ /// <see cref="Relationship" /> if applicable
713+ /// </summary>
714+ /// <param name="transaction">The <see cref="IThingTransaction" /></param>
715+ /// <param name="iterationClone">The <see cref="Iteration" /></param>
716+ /// <param name="parameter">The <see cref="ParameterOrOverrideBase" /></param>
717+ /// <param name="sourceThing">The source of the <see cref="Relationship" /></param>
718+ private void VerifyRelationShip ( IThingTransaction transaction , Iteration iterationClone ,
719+ ParameterOrOverrideBase parameter , Thing sourceThing )
720+ {
721+ var key = this . ParameterVariable . Keys . FirstOrDefault ( x => x . Iid == parameter . Iid ) ;
722+
723+ if ( key != null )
724+ {
725+ var targetThing = this . ParameterVariable [ key ] . SelectedCoordinateSystem ;
726+ this . CreateOrUpdateRelationShip ( sourceThing , targetThing , iterationClone , transaction ) ;
727+ }
728+ }
729+
712730 /// <summary>
713731 /// Transfer all values from the <see cref="IValueSet" /> of a <see cref="ParameterOrOverrideBase" /> of type
714732 /// <see cref="SampledFunctionParameterType" />
@@ -786,7 +804,7 @@ private TThing CreateOrUpdateTransaction<TThing>(IThingTransaction transaction,
786804 clone . Iid = Guid . NewGuid ( ) ;
787805 thing . Iid = clone . Iid ;
788806 transaction . Create ( clone ) ;
789- containerClone . Add ( ( TThing ) clone ) ;
807+ containerClone . Add ( ( TThing ) clone ) ;
790808 this . exchangeHistory . Append ( clone , ChangeKind . Create ) ;
791809 }
792810 else
@@ -795,7 +813,7 @@ private TThing CreateOrUpdateTransaction<TThing>(IThingTransaction transaction,
795813 this . exchangeHistory . Append ( clone , ChangeKind . Update ) ;
796814 }
797815
798- return ( TThing ) clone ;
816+ return ( TThing ) clone ;
799817 }
800818
801819 /// <summary>
@@ -1107,12 +1125,12 @@ private void UpdateVariable(IReactivePropertyChangedEventArgs<MatlabWorkspaceRow
11071125
11081126 try
11091127 {
1110- ( ( Array ) parentRowViewModel . ArrayValue ) . SetValue ( sender . ActualValue , rowIndex , columnIndex ) ;
1128+ ( ( Array ) parentRowViewModel . ArrayValue ) . SetValue ( sender . ActualValue , rowIndex , columnIndex ) ;
11111129 }
11121130 catch ( Exception )
11131131 {
11141132 this . statusBar . Append ( $ "The type of the value '{ sender . ActualValue } ' is not compatible", StatusBarMessageSeverity . Warning ) ;
1115- sender . ActualValue = ( ( Array ) parentRowViewModel . ArrayValue ) . GetValue ( rowIndex , columnIndex ) ;
1133+ sender . ActualValue = ( ( Array ) parentRowViewModel . ArrayValue ) . GetValue ( rowIndex , columnIndex ) ;
11161134 }
11171135
11181136 this . matlabConnector . PutVariable ( parentRowViewModel ) ;
0 commit comments