MATLAB: Am I receiving errors when I change one of the virtual buses into a nonvirtual bus using Simulink

busconversionconvertnonvirtualsimulinkvirtual

I start with a model that has a network of working virtual buses. I want to change the output of one of my bus creators into a nonvirtual bus to take advantage of the Structure format in code as well as Storage Class abilities of nonvirtual buses. However when I do the same, I receive the following error:
Bus Selector 'for_dave2/Bus Selector' has some connected Bus Creators that are virtual (e.g. 'my_model/GML/Bus Creator1') and others that are nonvirtual (e.g. 'my_model/Bus Creator2'). All connected Bus Creators must be consistently virtual or nonvirtual

Best Answer

This enhancement has been incorporated in Release 14 Service Pack 3 (R14SP3). For previous product releases, read below for any possible workarounds:
When converting to a nonvirtual bus, all buses feeding the bus creator must have bus objects defined for them. Also if the bus you want to convert then feeds a bus creator block, that block must also output a nonvirtual bus. It is not possible to have nested buses of mixed type, virtual or nonvirtual.
Once all buses are converted appropriately, a valid update diagram will occur.
One can follow these steps in the conversion process:
1. Update the model containing the virtual buses
2. Identify bus (BUS_X) that will become non-virtual
3. Generate bus objects for that bus and all bus creators up stream from that Bus Creator
4. Populate bus objects for all bus creators upstream and the bus creator associated with BUS_X
5. Set Bus Creator associated with BUS_X to ‘output as nonvirtual’
6. Identify all Bus Creator blocks that BUS_X feeds
7. Identify all Buses to that Bus creator
8. Make sure all Buses are nonvirtual (make bus objects and set to nonvirtual for each)
9. Make the output of that Bus Creator nonvirtual (by creating bus objects)
10. Recursively do step 5 until no more Bus Creators are found, leaving behind only Bus Selectors.
11. Update diagram once again to make sure that the conversion has been successful.