Hi Florian,
I'll give these questions a try.
1. The Data Dictionary is intended to completely replace the base workspace. For all intents and purposes, a Data Dictionary acts like the base workspace, but with the extra security level that prevents you from accidentally clearing or overriding parameters with other things you're working on.
The only exception/weird rule I've found is when your model configuration parameters require external input (in the Data Import/Export pane). In this situation, the base workspace seems to be still used. This facilitates injection of external inputs using MATLAB scripts.
2/3. Yes, you need to make sure the same variable is used in both dictionaries. It isn't sufficient to create the same variable in 2 separate dictionaries even if their values are exactly the same. This is a protection mechanism which prevents accidentally changing one variable definition, but not the other one. It's a best practice to single-source your code/data/etc., anyhow.
In general, you should take advantage of Data Dictionary referencing as much as possible. For example, you can have a dictionary "a.sldd" which contains data exclusively used by "a.slx". Similarly, you have a dictionary "b.sldd" which contains data exclusively used by "b.slx". If you have common data between the models (like your Bus object), create a "commonData.sldd" dictionary and reference it in both "a.sldd" and "b.sldd". Also, if you actually want to have 2 parameters named "mass" that take on different values, you can still do this across models by using their respective model workspaces . This is where you are allowed to do that kind of thing. Hope that helps.
- Sebastian
Best Answer