Book a Demo

Author Topic: Can't create multiple levels of encapsulation in IBD  (Read 10132 times)

jstepanauskas

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Can't create multiple levels of encapsulation in IBD
« on: January 15, 2019, 02:01:57 am »
Hi,

I'm a relative novice to SysML structural diagrams, and I am trying to ramp up to the point of modeling a complex system architecture.  One problem I have run into that I can't seem to figure out is:

When I try to create multiple layers of embedding in a IBD by creating properties within properties (all instantiated from blocks in a BDD) I get the following error after my first layer of embedding "Cannot add embedded elements to locked or checked-in elements"

Any Ideas on how to fix this?

One thing to note is that if I create the properties without a type (just drop them in from the toolbox) I can do as many layers of embedding as I want.

Thanks!

Guillaume

  • EA Practitioner
  • ***
  • Posts: 1405
  • Karma: +42/-2
    • View Profile
    • www.umlchannel.com
Re: Can't create multiple levels of encapsulation in IBD
« Reply #1 on: January 15, 2019, 10:56:27 pm »
It looks like you are using a shared EA project with active locks ("EA Security is enabled"), and the properties/parts you want to add parts in are locked.
Either it's locked by someone else, or you need to create an exclusive lock.
Guillaume

Blog: www.umlchannel.com | Free utilities addin: www.eautils.com


Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #2 on: January 16, 2019, 09:28:16 am »
You shouldn't create properties directly within other properties. Instead, you add the child property to the type, then synchronize.

jstepanauskas

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #3 on: January 17, 2019, 02:17:43 am »
Thanks for the feedback. 

I created the types in a BDD and the top level block has 3 levels of children related to it directly and indirectly by association connectors.  The children show up as parts on the parent block and the children's children show up as parts on the child blocks, etc.  When I instantiate the top level block in an IBD as a property, it then asks which children I want to instantiate automatically as parts, but only the one layer down.  It does not automatically ask to instantiate grandchildren, and I also cannot do it manually (I get the error I posted about above).  I don't see how to create an exclusive lock as suggested by Guillaume.

Am I missing something fundamental about IBDs?  I can find examples online of IBDs with multiple layers of embedded parts but I cant create it in EA.

Thanks!

Guillaume

  • EA Practitioner
  • ***
  • Posts: 1405
  • Karma: +42/-2
    • View Profile
    • www.umlchannel.com
Re: Can't create multiple levels of encapsulation in IBD
« Reply #4 on: January 17, 2019, 10:15:04 pm »
In EA14, when you select a part/property in the IBD, open the Features view > Parts/Properties and enable Show Owned/Inherited.
You should see the sub parts to add to the selected part (in the browser and diagram).
This way you add definitions that are consistent with the BDD.

As far as I know, the SysML IBD synchronize function is limited to the first level of parts.
Guillaume

Blog: www.umlchannel.com | Free utilities addin: www.eautils.com


N Burt

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #5 on: February 13, 2019, 08:50:24 pm »
having the same issue, locked properties/parts at levels of decomposition, did you resolve?

jstepanauskas

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #6 on: February 28, 2019, 01:56:25 am »
No, I can't seem to figure out how to have more than 2 layers of instantiated part properties. For now I have just resigned myself to creating more abstract diagrams with only 2 layers of encapsulation.

-J

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #7 on: August 27, 2020, 10:11:18 am »
Hi,
I get the same problem.

It is common to have nested blocks.

Is there a solution yet? 

To state the problem again: If you correctly define all the BDD blocks with the right number of ports at the outset, then you drag them on to the IBD and everything is fine.

But the reality is that we never get things right first time and we have to iterate. EA does not seem to allow you to drag a "new" port from a BDD diagram on to the block in an IBD (a block instance of the same BDD block type) if the block is nested down more than 2 levels. EA tells you: "Cannot add embedded elements to locked or checked-in elements"

Is the only solution to redraw the whole IBD every time you have to add a new port to a nested block?

Thanks
Avi


Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #8 on: August 28, 2020, 09:52:32 am »
Is the only solution to redraw the whole IBD every time you have to add a new port to a nested block?
It just requires two operations. Add the intermediate property via the Parts/Properties window, then select it and add the second level one.

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #9 on: October 01, 2020, 11:19:41 am »
Thank you. I will study your reply.

-Avi

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #10 on: October 26, 2020, 10:26:18 pm »

Back to this:
   Can't create multiple levels of encapsulation in IBD
   Get error msg: "Cannot add embedded elements to locked or checked-in elements"

Quote
>>  >>  [jstepanauskas] When I try to create multiple layers of embedding in a IBD by creating properties within properties (all instantiated from blocks in a BDD) I get the following error after my first layer of embedding "Cannot add embedded elements to locked or checked-in elements"

I am back on this  I am still getting that error message when  I try to instantiate to two levels down.
(I have moved on dropping blocks as 'Property' in IBDs.)

Question 1:
Quote
[Eve] You shouldn't create properties directly within other properties. Instead, you add the child property to the type, then synchronize.

'synchronize' = 'Synchronize Structural Elements' op?
If so, the 'Synchronize Structural Elements' op seems to be available only at Level 0, i.e., by right-clicking the IBD diagram background, and not from inside a block instance. How can you make 'synchronize' available?


Alternatively ... (?)

Quote
>> [Eve] It just requires two operations. Add the intermediate property via the Parts/Properties window, then select it and add the second level one.


Can you please add more clarification on "Add the intermediate property via <etc>".
Question 2: Is the Parts/Properties window that tab in the Features window you get when you select:   
             Right-click menu > Features  > Parts /Properties ?

Question 3: then select it and add the second level one: you mean click the checkbox to enable it?

Assuming you mean the above, I open the correct window , Features> Parts/Properties tab, e.g., for block BlockType_Level_2, but i see no entries there.

This is although that in the BDD I have defined three sub-blocks under BlockType_Level_2, namely , e.g., BlockType_Level_3A, BlockType_Level_3B, and BlockType_Level_3C , and associated it to the the container-to-be (BlockType_Level_2) as 'Composition to Part".

Maybe I defined in the BDD the three sub-blocks wrong. But  iI define them the same way as those that work. I will send an example diagram later, if necessary.

Thanks

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #11 on: October 26, 2020, 10:38:24 pm »
At the moment I am using a 'work-around': In the IBD, I am dropping (as 'Property') the three instances of the sub-blocks (defined in the BDD sub-blocks) outside the Block Level 2 instance (which should be the containing instance), and then dragging them inside.

It seems to give me what I want (so far...). But I would like an exact solution. 

thanks

avi10000

  • EA User
  • **
  • Posts: 201
  • Karma: +0/-0
  • Programmer/Writer
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #12 on: November 01, 2020, 11:36:25 pm »
re "Can't create multiple levels of encapsulation in IBD
Btw, I have been using EA v15.1. I note that there is now a v15.2. Is this supposed to fix the issue? 
Thanks
Avi

Robert van Egmond

  • EA Novice
  • *
  • Posts: 9
  • Karma: +3/-0
    • View Profile
Re: Can't create multiple levels of encapsulation in IBD
« Reply #13 on: November 02, 2020, 07:49:34 pm »
....

Can you please add more clarification on "Add the intermediate property via <etc>".
Question 2: Is the Parts/Properties window that tab in the Features window you get when you select:   
             Right-click menu > Features  > Parts /Properties ?

Question 3: then select it and add the second level one: you mean click the checkbox to enable it?

Assuming you mean the above, I open the correct window , Features> Parts/Properties tab, e.g., for block BlockType_Level_2, but i see no entries there.

This is although that in the BDD I have defined three sub-blocks under BlockType_Level_2, namely , e.g., BlockType_Level_3A, BlockType_Level_3B, and BlockType_Level_3C , and associated it to the the container-to-be (BlockType_Level_2) as 'Composition to Part".

Maybe I defined in the BDD the three sub-blocks wrong. But  iI define them the same way as those that work. I will send an example diagram later, if necessary.

Thanks


Hi,

I'm using 15.2 (1554) and I did a little test with what you descibe above and it all works fine. I suspect something went wrong in creating the parts when you created the composition to part relation. Do the parts show up under your system in the project browser?