Author Topic: Nested properties in SysML IBDs  (Read 7544 times)

mike08

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Nested properties in SysML IBDs
« on: January 15, 2016, 07:55:35 pm »
Hi all,

I'm working on a project which includes a large number of nested components. To state a minimum sample of my problem (EA10):
if I have a Block A wich contains a Block B which contains a Block C I can design the internals of Block B including a property c:Block C and do
the same with Block A including a property b:Block B. My problem is that if I want to show the additional internal of property b in the IDB of Block A
I can not access the same information as represented in the IDB of Block B. Looking at the element browser this seems reasonable as I've designed internals to Block B in
its IDB and I'm referring to internals of part b from within the Block A's IDB. However, I'm missing the point to provide a view on the model which selectively
shows detailed information by looking into properties.
Is there a way to do this in EA?

Best,
Mike

ChB

  • EA User
  • **
  • Posts: 40
  • Karma: +4/-0
    • View Profile
Re: Nested properties in SysML IBDs
« Reply #1 on: March 14, 2016, 10:23:45 pm »
I've got the same or similar question about nesting on IBDs.  I'm recycling this unanswered topic as the subject line fits my question and the explanation might overlap.

I can demonstrate my problem/question using mike08's example:

* On a BDD I create three blocks and call them A, B and C.

* Using the Composition connector I show that C is a "part" of B and that B is a "part" of A.  The solid diamond shows the parent-child, whole-part, composition.  And in addition the "property" compartment in A shows :B and B's property compartment shows :C.  All good, I like this.
And in the Project Browser I see that :B is under A and :C is under B.

* I then create an IBD for A.  Onto that diagram I can drag, from the browser, part :B as a link.  I can also drag :C, as a link, onto the IBD to the side of :B.   This does not show the nesting, whole-part relationship.

* Alternatively I can drop :C over the rectangle of :B to show the nesting in the IBD.   At this point in the project browser, and on the BDD, the properties for B no longer shows :C. In the project browser :C is shown as a child of :B under block A.  And on the BDD :C is no longer in the properties compartment of B.

Can someone explain why nesting the properties on an IBD removes the nested properties from the parent block's "properties" compartment in the BDD?

I hope you can follow my example.  I'm using EA 12.1 and SysML 1.4.

« Last Edit: March 17, 2016, 08:51:06 pm by ChB »

natvig

  • EA User
  • **
  • Posts: 65
  • Karma: +7/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Nested properties in SysML IBDs
« Reply #2 on: March 15, 2016, 12:52:22 am »
* I then create an IBD for A.  Onto that diagram I can drag, from the browser, part :B as a link.  I can also drag :C, as a link, onto the IBD to the side of :B.   This does not show the nesting, whole-part relationship.

* Alternatively I can drop :C over the rectangle of :B to show the nesting in the IBD.   At this point in the project browser, and on the BDD, the properties for B no longer shows :C. In the project browser :C is shown as a child of :B under block A.  And on the BDD :C is no longer in the properties compartment of B.
You should be very careful when dragging properties from the browser onto an ibd. The ibd displays the internals of a block and should only contain properties owned by that block. Consequently, you may drag properties from the browser onto an ibd the way you did with :A. Alternatively you may right-click on an ibd choose 'Synchronise Structural Elements' if you wish to add to the ibd all properties belonging to the block. Now, the correct way to include nested properties is to right-click on :B, choose 'Structural Elements...', tick the 'Show Owned/Inherited' box, and finally tick the box in front of the nested property.

Can someone explain why nesting the properties on an IBD removes the nested properties from the parent block's "properties" compartment in the BDD?
In EA you can move properties around by dropping them onto other elements in diagrams. This "feature" (or bug) is very dangerous. I would say it is one of those things (among many others) that Sparx should not allow the user to do. If you really would like to move a property from one element to another it is sufficient to enable this operation by drag and drop in the browser.

ChB

  • EA User
  • **
  • Posts: 40
  • Karma: +4/-0
    • View Profile
Re: Nested properties in SysML IBDs
« Reply #3 on: March 15, 2016, 01:15:28 am »
That's a clear explanation, thank you natvig.   I've had a quick play and I think you're right: I must use right-click  'Synchronise Structural Elements' and right-click 'Structural Elements...' more,  and dragging from the Project Browser less.

I'll report back after further, real project, usage.
« Last Edit: March 15, 2016, 02:29:48 am by ChB »

ChB

  • EA User
  • **
  • Posts: 40
  • Karma: +4/-0
    • View Profile
Re: Nested properties in SysML IBDs
« Reply #4 on: March 21, 2016, 09:49:44 pm »
SOLVED:  This post is to confirm that the hints natvig provided have clarified and solved my query in real project use.  Good advice, thanks natvig.