Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nested proprieties in ibd #2945

Open
bardouille opened this issue Dec 20, 2023 · 5 comments
Open

Nested proprieties in ibd #2945

bardouille opened this issue Dec 20, 2023 · 5 comments
Labels
feature A new feature

Comments

@bardouille
Copy link

Is your feature request related to a problem?

I have to draw multi-level ibd. When I insert a sub-level propriety and place it in the 1st level propriety, the presentation is not adapted.
image

Describe the solution you'd like

I'd like to be able to insert a propriety inside a propriety, like in this diagram (from SysML 1.7 specification, annex D).
image

Describe alternatives you've considered

None

Additional context

Professional context, thank you for your work, Gaphor is already an amazing tool.

@amolenaar
Copy link
Member

Hi @bardouille, Thank you for your suggestion. Technically I think this is feasible. But what is the relation between a property and a nested property? Is there something on how a nested property is defined in the SysML or UML specs?

@tompkins-ct
Copy link

tompkins-ct commented Jan 3, 2024

@amolenaar and @bardouille

The SysML 1.7 spec says that all properties belong to the block referenced in the diagram label.
image

However, intuitively, I would think that the sub-property would belong to the block that the owning property is typed to, e.g., the fi:Fluid Injector would be nested under the Internal Combustion Engine block in D.19. So, if an IBD is made for the Internal combustion engine later, the associated fi property would be the same property located on 2 diagrams, so relationships can be appropriately traced.

  • Maybe that's not necessary though because both would be typed Fluid Injector and could easily be found by tracing all properties typed with the same type.

If you look at the associated hierarchy of the model, I would expect a taxonomy diagram somewhere that shows that the Internal Combustion Engine owns a Fuel Injector. So, the Fuel Injector property should already be present under the Internal Combustion Engine Block, which would make it unnecessary to make a new property unless you explicitly wanted to reference a new configuration.

Alternatively, you can choose to explicitly bind the new property (formed under the Power Subsystem block) to a property linked under the Internal Combustion Engine block.

Elsewhere in the spec, it says properties are for defining the specific instance in the local context, e.g. fluid injector block may have a valueType called injection pressure and the value of injection pressure is defined in this particular instance, so it makes sense for it to be owned by the Power Subsystem block separate from another property under the Fuel Injector block.

Thoughts?

@bardouille
Copy link
Author

Hello @amolenaar and @tompkins-ct, sorry for the late response, and happy new year by the way !

To be more explicit, the relationship between the blocks are defined like in the image bellow.
image

When after, I draw the internal block diagram of "Power Subsystem", I insert the part "ice". Inside "ice", I want to show the parts of his typed block "Internal Combustion Engine".

@bardouille
Copy link
Author

bardouille commented Jan 4, 2024

The expressions "nested propriety" and "propriety box" are cited several times in the spec, but I didn't find any precise definition.

To complement what @tompkins-ct said, In SysML 1.7 spec, Table 8.3 shows this concept in one figure.
image

Paragraph 8.3.1.2.5 shows how to name those propriety boxes. Fig 8.1 illustrates that (even if for me, the most interesting is the representation on the right side).
image

@bardouille
Copy link
Author

Hello @amolenaar, I found this in UML spec, paragraph 11.2, showing how how relationship between classifiers can be represented.
image

Maybe a solution could be to have a button to switch the propriety representation, as in my drawing bellow.
image
From there, we could be able to insert the proprieties of Block1 or Block2, and place it inside the box.

@amolenaar amolenaar added the feature A new feature label Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature
Projects
None yet
Development

No branches or pull requests

3 participants