The doc page here:
says: "To use a masked subsystem in a referenced model that uses model arguments, do not create in the mask workspace a variable that derives its value from a mask parameter. Instead, use blocks under the masked subsystem to perform the calculations for the mask workspace variable."
I think I recently learned the hard way about this, but I believe the wording above is incorrect. It seems to me that if the mask workspace variable derives its value from a mask parameter that is in turn derived from the base workspace, all is well (at least in Normal mode). The problem arises when the mask variable derives its value from a mask parameter that itself derives from a model argument. In this case, it appears that the mask variable will be defined by the value of the mask parameter based on value of the model argument in the referenced model workspace, and not the value of the argument passed in through the model argument list in the Model block.
Though this is a (apparently not quite correctly) documented limitation, it is pretty severe. I can think of all sorts of cases where I would want to have mask initialization define mask variables based on mask parameters set by model arguments. Furthermore, the recommendation to "use blocks under the masked subsystem" might not always be easy (or even possible?). Example: Masked subsystem contains a Sine Wave source block and the frequency of the sine wave is to be computed based on user input via model argument and then through a mask parameter. This should be easy to do, but it's not. Even if it were, I would have to know when I developed the masked subsystem that it will ultimately be used in a reference and take a different approach to developing it, which seems counter to the overall intent of model referencing.
Am I fully understanding this or am I misintepreting the intent and meaning of the documentation?