internal static void RunExample() { string path = Path.Combine( Tools.GetBaseFolder(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath, nameof(Femyou)), "FMU", "bin", "dist"); using IModel model = Model.Load($"{path}/Feedthrough.fmu"); Console.WriteLine("Loaded the model!"); using IInstance instance = model.CreateCoSimulationInstance("instance1", new ConsoleCallbacks()); Console.WriteLine("Created an instance of the model!"); Console.WriteLine("Reading a variable and then changing it's values and reading it again."); IVariable exampleString = model.Variables["string_param"]; Console.WriteLine($"default string_param value = {instance.ReadString(exampleString)}"); instance.WriteString((exampleString, "10.0 Fellows")); Console.WriteLine($"New value for string_param = {instance.ReadString(exampleString)}"); Console.WriteLine("Reading and writing over.\n\n"); Console.WriteLine("Printing all input variables and their values."); foreach ((string key, IVariable value) in model.Variables.Where(pair => pair.Value.Causality == Causality.Input)) { switch (value.VariableType.VariableType) { case VariableType.Real: Console.WriteLine($"{key} - {value.Description} - {instance.ReadReal(value)}"); break; case VariableType.Integer: Console.WriteLine($"{key} - {value.Description} - {instance.ReadInteger(value)}"); break; case VariableType.String: Console.WriteLine($"{key} - {value.Description} - {instance.ReadString(value)}"); break; case VariableType.Boolean: Console.WriteLine($"{key} - {value.Description} - {instance.ReadBoolean(value)}"); break; case VariableType.Enumeration: case VariableType.Unknown: default: throw new ArgumentOutOfRangeException(); } } Console.WriteLine("Done printing variables."); }