Предыдущий ответ хорош и работает, но в Modelica 3.4 раздел 12.6.1.была добавлена еще одна возможность, которая ближе к оригиналу.
record R
Real i,v;
end R;
function f
input R t;
output Real p;
algorithm
p:=t.i*t.v;
end f;
model test
Modelica.Electrical.Analog.Interfaces.Pin t;
Real V = f(R(t));
end test;
Это было в первую очередь мотивировано моделями, в которых у вас есть больше элементов, и перечислять их все становится утомительно.Поскольку это новая функциональность в Modelica 3.4, в настоящее время она активна только в Dymola, если вы установите флаг Advanced.RecordModelConstructor = true;