Filtering : Possible to apply derivation to an existing model?


I’m working on a Capella 1.4.2 environment.

On a methodology that I try to define, I would like to have:

  • 1 system model 150% with model elements for all options and variants
  • Many system model 100% (1 per variant) with only model elements corresponding to the variant
  • Possibility to create system model 100% from system model 150%
  • Possibility to update system model 100% from system model 150% (example : to push a new function from 150% model to the 100% models)

Using Filtering plugin answers well to the 3 first mentioned needs with the “Derivation” functionality. However, when applying derivation, it requires to create a new model. So that, my last need could not be complete for now.

What do you suggest to me to be able to update the 100% from 150% model?
(May be some improvements have been done on last versions)

Best regards,

Hello Benoit,
I guess in your use case, you have modified the system model 100% (the derived model from 150% model). In Thales, we call that iterative derivation. In this case, no choice you have to do a diffmerge. With Capella you have a 3 way diffmerge. It’s very usefull for this use case because it makes easier to take decision during diffmerge visaulizing the common ancestor ; it allows to know if a specific difference comes from the new derivation (the 150% model has been updated) or from the modified system model 100% or both:

  1. In your workspace, you have to have these 3 models (the 3 models have to have different names) : the model coming from the fisrt derivation (the common ancestor)/ the modified system model 100% / the model coming from the last derivation.
  2. Select the 3 .airds of these 3 odel and right-click and select Compare with/Each other as models
  3. Configure the popup (the ancestor is of course the common ancestor the model coming from the first derivation and only the the modified system model 100% has to be modifiable) and click on finish.
    I never tried the diffmerge with models coming from the filtering derivation (I use pure::variants) but it should work because I guess tthe derived model elements keep the same ids.
    The diffmerge is not easy to use but what you want to do is a complex operation.
    Hoping it helps you!


Copyright © Eclipse Capella, the Eclipse Capella logo, Eclipse and the Eclipse logo are Trademarks of The Eclipse Foundation.