Preventing Nesting Physical Architecure PAB

Hello all.

I am trying to create a PAB of only Node PCs, however I do not want Capella to automatically nest one Node PC into another when I drag one onto the other. In other words I want more control over when a Node PC is to be truly nested (i.e. hierarchically placed below another in the project explorer tree) or not. Sometimes it makes more sense to have the diagram illustrate one Node PC being part of (i.e. contained within) another, but not have it reflect that in the project explorer tree.

I know how to work around this by expanding the size of the ā€˜container’ Node PC ā€œoverā€ the ones that I want to illustrate as ā€˜inside’ the container Node PC, followed by a manual Format→Order→Send to Back action (or something similar) on the container Node PC (which is a little annoying). However, when any of the contained Node PCs are moved or repositioned in the PAB, Capella immediately executes a nesting action automatically, which ruins the tree in the explorer.

Is there perhaps some way (or setting) that prevents Capella from performing this automatic nesting?

Regards.

Estian.

Hi Estian,

Capella is a modeling tool (as opposed to a drawing tool) so there is a strong semantic meaning attached to its graphical representations, ie when a Node is represented as being inside a Node, then the actual nesting within the semantic modeled is implied.

The fact that it does the trick when expanding the size of the container is unfortunate… (or maybe fortunate in your case).

I am not sure I can imagine your use case where ā€œSometimes it makes more sense to have the diagram illustrate one Node PC being part of (i.e. contained within) another, but not have it reflect that in the project explorer tree.ā€, so I would be curious to know more, just out of curiosity.

Technically, there is no way of preventing this, beyond asking us (Obeo) to do a dedicated Capella customization for you. This customization may deactivate this behavior, but then you may still want to be activated in some cases… So the actual feature you need may not be as simple as ā€œdeactivate itā€.

Another idea could be to use ā€œNotesā€ instead. Note a great workaround though, but have a look at the ā€œ[LCBD] Architecture Driversā€ diagram in the IFE example that comes with Capella if you don’t see what I mean.

I hope this helps.

Stephane

There are a few different diagram editing modes. Standard Mode, Visibility Mode and Layouting Mode. In layouting mode no changes are made to the model i.e. what is in the project explorer. On the top of the diagram editor there is a symbol that looks like a breakdown (one splitting into two). You can select the mode using this dropdown menu. Perhaps you can do what you need to in the layouting mode.

Josh

1 Like

Thank you @StephaneLacrampe and @JoshWedgwood.

Apologies for the late response. I had to think this through for some time :wink:

@JoshWedgwood , your suggestion works great!! Your advice has expanded my knowledge about the use and purpose of the editing modes, which I have been wondering about for some time, thank you :slight_smile:

However, @StephaneLacrampe is correct. I was missing something more fundemental about the modelling process and the philosophy behind ā€œNestingā€.

I was trying to use Nesting as a tool to logically ā€œgroupā€ Physical Node Components (PNCs) together into assemblies/sub-assemblies at the Physical Architecture [PA] level without them necessarily being hierarchically nested in the Project Explorer, effectively getting myself confused with the modelling Philosphy vs. what I was trying to achieve. It took me some time to realize that this was, in fact, the wrong level to try and do this in the first place. The right level to fully introduce assembly/sub-assembly organisation is, off couse, at the EPBS Architecture level, which I was successful in achieving in the end. I ended up leaving the PA in a ā€œflatā€ non-hierarchical state, i.e. with all PNCs at the same level (i.e. no nesting). Then, for purposes of order and neatness, I used folders and subfolders (i.e. Physical Component Pkg’s) to group the various parts into their assembly/sub-assembly groups. This made things easier to keep track of when transitioning to EPBS and creating a nested hierarchy at EPBS level.

That said, it still leaves me with questions about what the actual meaning and purpose of hierarchical Nesting at the PA level is? What principle or notion is (usually) supposed to be conveyed with nesting at this level? If one is trying to, for example, convey that a smaller part is connected to another larger part, then showing the small part as nested inside the larger one (with or without physical link between them inside the larger one) is neither here nor there, since the same can be achieved by depicting them side-by side with a mechanical connection (i.e. physical link) between them.

Thus far I have found that the only component which somewhat makes sense to depict in a nested way is that of a electronic Printed Circuit Board (PCB). For a PCB the most significant electronic components (eg. Processors, Controllers, FPGA etc.) are then modeled as nested inside the PNC (i.e. physical PCB), which conveys the notion that these electronic components are assembled onto the PCB, i.e. ā€œcontainedā€ by the PCB… which can also be somewhat confusing. Then, using physical ports on the boundary and physical links to the internal PNCs (i.e. electronic components), the notion of the external physical ports/interfaces of the PCB are depicted this way with some success.

What else?

Nesting Physical Node Components, therefore, is still somewhat of a mystery to me that I am hoping to clarify.

Your thoughts and suggestions are welcome.

Thanks again.
Estian.