Here is one of multiple possible approaches to develop and provide components as part of a team. It works without selection sets and therefore is pre Virtools 4.0 compatible. We often used this one! (Today you may use selection sets which much more powerful and are maybe a result of this suggestion)
There are two major mechanisms that this approach is based on
- Level and therefore level scripts are not saved into NMOs
- Parameter shortcuts can be saved without it's source and are remapped by name and type when loaded
Handling differs a bit depending on how much elements you need in your component-development-cmo from the bigger context. If the complete content of your CMO needs to be provided and doesn't clash with existent elements and you only need access to global parameters (thus sources for parameter shortcuts), then you import or recreate them on a level script. Now if you want to export all your content except the level scripts you do the following:
- go to the level manager
- select global
- right-click and select "select children" from the context menu
- now open another category from the children of global. For example 3D Objects
- now right-click on the category you just opened and click on "select children"
You will now see that all the content of your level is selected. Now right-click on one item and choose "save as". Everything get saved except the level scripts where your test-framework for your component and the shared global parameter sources are.
If you don't want to save everything i.e. because you have imported stuff that you need for development but it's not part of the component, then script the save-logic i.e in a level script and activate it via a boolean parameter ("saveMode") or a key. To specify the elements to save you can use
- selection sets from the 3dLayout (limited to 3d entities)
- collections (ObjectArrays)
(Note: As mentioned this is for pre Dev 4.0 CMOs. With 4.0 there are the Selection Sets doing this for you.)
The way you import it, is another story and depends on project size and awaited component update frequency