How can I migrate enumerated data types between data dictionaries?

I am rearchitecturing the data dictionaries (DD) of my model. the way that worked for me is opening each individual DD and use
exportToFile(sectionObj,fileName)
to export data to a .m file , then run all the files to load data into base workspace, and use the following command
importFromBaseWorkspace(myDictionaryObj, 'existingVarsAction','overwrite');
to import them into the new DD.
the mothod works fine for all data types except enumerted data type definitions (aka 'Simulink.data.dictionary.EnumTypeDefinition').
the question is a way to transfer the enumerted data type definitions between data dictionaries using a script (for reproduction)?
note I am using R2020b

 Accepted Answer

I solved the problem by changing the medthod to iterating over all old DDs, fetching their entries and adding them to the new one while both source and destination DDs are open
allEntries = find(DataSecObj_source);
for j=1:length(allEntries)
if ~exist(DataSecObj_destination,allEntries(j).Name)
addEntry(DataSecObj_destination,allEntries(j).Name,getValue(allEntries(j)));
end
end
saveChanges(mainDD_Obj)
Simulink.data.dictionary.closeAll(DDObj_source,'-discard')
this method transfer all the objects icluding enum data type defintions without the need for an intermediate stage of .m or .Mat files.

1 Comment

this seamed more intuitive but it did not work with me the first time so I thought about the other method mentioned in the question itself,m hopfully the thread is useful

Sign in to comment.

More Answers (0)

Categories

Find more on Manage Design Data in Help Center and File Exchange

Products

Release

R2020b

Asked:

on 15 Oct 2023

Commented:

on 18 Oct 2023

Community Treasure Hunt

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

Start Hunting!