Get list of libraries blocks that have "changes" in a model

4 visualizaciones (últimos 30 días)
langrg
langrg el 28 de Feb. de 2019
Respondida: Joe Rustan el 22 de Mayo de 2023
Hello,
I have a Simulink model with libraries blocks inside. I have modified some of those libraries (from my model) using "set_param". Now those modified blocks are still linked (LinkStatus = resolved) but have "changes". I mean that the blocks have now a "sheriff star" icon on bottom-left, like that :
LibraryIcon.PNG
There is also a new context menu on those blocks : "Library Link\View changes...".
My question is : how can I get a list of all those blocks in my model? (those blocks = libraries blocks with changes)
I thought I would use 'LinkStatus' parameter in a "find_system" command, but as they are still "resolved" it doesn't work... Is there an other modified parameter to look for?
Thanks!

Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 28 de Feb. de 2019
That is called parameterized library links. I couldn't find a way to get the list using find_system(). You could run Model Advisor, search "parameterized" and find and run the check "Identify parameterized library links". It will give a list.
I also tried a=ModelAdvisor.run('model','mathworks.design.ParameterizedLibLinks'). The list is in the returned result but it is hard to parse.
  2 comentarios
langrg
langrg el 28 de Feb. de 2019
Great! In fact, I was just missing the term "parameterized library links". With a Google search I found how to find thoses blocks:
Chapter "Find parameterized links in a model".
Thank you very much!
Fangjun Jiang
Fangjun Jiang el 28 de Feb. de 2019
Thank you! I am glad to learn this parameter. For whatever reason, it was not included in get(gcbh).
It's good to know the weblink for the example too!

Iniciar sesión para comentar.

Más respuestas (1)

Joe Rustan
Joe Rustan el 22 de Mayo de 2023
Similar question. My system model 'SYS' has several linked libraries such as LL1, LL2, LL3, which are in LL1.slx, LL2.slx, etc. in the SYS window, I change the name of a signal or port in LL3. So now LL3 is changed and I'd like to push/propagate these changes back to the original source file LL3.slx.
In general, I'd like to push all such changes back to the source files of the libraries .slx files. The ModelAdvisor.run command output is not particularly useful for scripting.
What I want to do is:
1) Get a list of all the 'changed' libraries in SYS
2) set_param(<library-file-path>, 'LinkStatus', 'propagate')
TIA for any advice.
JR

Categorías

Más información sobre Programmatic Model Editing en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by