MATLAB Answers

Is the Model Workspace dirty?

6 views (last 30 days)
Paul
Paul on 26 Jan 2011
Edited: MG on 8 Feb 2018
Is there a programatic way to determine if the model workspace is dirty, which is indicated by an asterisk next to "Model Workspace" in the model explorer?

  0 Comments

Sign in to comment.

Accepted Answer

Vieniava
Vieniava on 26 Jan 2011
Check this code out:
Z=get_param(gcs,'ModelWorkspace');
Z.isDirty

  3 Comments

Walter Roberson
Walter Roberson on 26 Jan 2011
Does requesting that parameter make the workspace dirty? ;-)
Paul
Paul on 27 Jan 2011
Excellent! Is this documented anywhere? Are there any other undocumented methods of the ModelWorkspace class? If this isn't documented, should I really count on it?
Vieniava
Vieniava on 27 Jan 2011
Your start point could from here http://www.mathworks.com/help/toolbox/simulink/slref/f23-7515.html

Sign in to comment.

More Answers (1)

MG
MG on 8 Feb 2018
Edited: MG on 8 Feb 2018
To determine if the model is dirty:
This means a model has changes that are unsaved.
x = get_param( gcs, 'ModelWorkspace' )
x.isDirty
or
bdIsDirty( gcs )
or
isDirtyOff = strcmp( get_param( gcs, 'Dirty' ), 'off' )
or
isDirtyOn = strcmp( get_param( gcs, 'Dirty' ), 'on' )
To set the dirty bit:
This will trick Simulink to think there are changes that are unsaved.
examples:
  • if you want to save a changed view when there has been no material changes to the model; or
  • you opened or closed some tabs and want to save that change in state when there has been no other material changes to the model.
x = get_param( gcs, 'ModelWorkspace' )
x.isDirty = 1;
or
set_param( gcs, 'Dirty', 'on' )
To save the model:
save_system( gcs )
To close the model:
close_system( gcs )
To save and close the model:
close_system( gcs, 1 )

  0 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!