﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
4674	Wrong return values for getParameterValue for inherited classes	Niklas Worschech	somebody	"For this model
{{{#!mo
package ParameterExtendsTest
  model BaseRecord
    parameter Real a = 1;
    parameter Real b = 1;
    parameter Real c = 1;
    annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(
            preserveAspectRatio=false)));
  end BaseRecord;

  model SpecialRecord
    extends ParameterExtendsTest.BaseRecord(
    a = 2.1,
    b = 4.1,
    c = 8.1);
    extends ParameterExtendsTest.Base2(d = 16.1);
    parameter Real e = 32.1;

    annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(
            preserveAspectRatio=false)));
  end SpecialRecord;

  model Base2
    parameter Real d = 1;
    annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(
            preserveAspectRatio=false)));
  end Base2;
end ParameterExtendsTest;
}}}
The OpenModelica API call for getting a parameter value returns not the overwritten value from the extended model

{{{#!mo
classes:= getInheritedClasses(ParameterExtendsTest.SpecialRecord);getErrorString();
for i in 1:size(classes,1) loop
  params := getParameterNames(classes[i]);getErrorString();
 for j in 1:size(params,1) loop
    print(""parameter = ""+params[j]+ "" value="" +getParameterValue(classes[i],params[j]) +""\n"");
  end for;
end for;

}}}
the output is:

parameter = a value=1
parameter = b value=1
parameter = c value=1
parameter = d value=1

for 
{{{#!mo
params:= getParameterNames(ParameterExtendsTest.SpecialRecord);getErrorString();
for i in 1:size(params,1) loop
    print(""parameter = ""+params[i]+ "" value="" +getParameterValue(ParameterExtendsTest.SpecialRecord,params[i]) +""\n"");
end for;

}}}

it only returns:
parameter = e value=32.1


But we expect:

parameter = a value=2.1
parameter = b value=4.1
parameter = c value=8.1
parameter = d value=16.1
parameter = e value=32.1



"	defect	new	critical	Future	Interactive Environment			getParameterValue	florian.werner@…
