Input/Ouput Ports directly on Left/right side of functions/components/etc.

Sorry for the delay, forgot to subscribe to this topic. Now I am subscribed.
At first at the Layout View Panel
you need to select Layout Algorithm (Layout Algorithm property)
List of Properties are dependend from selectec algorithm
More over there is an toobalr command on the Layout Panel “Show Advanced Properties”
When pressed all propeties are shown.
You will find many new properties after that.
To set the property for diagram you need to click on some empty space on diagram.
After that diagram properties will be shown on Layout View.
You can set different layout properties for each diagram element,
selecting it and change propeties on Layout Panel.
Most of the time I use

  1. Architecture Blank diagrams
    Use property
  • Layout Hierarchy: true
  • Node Spacing set to greater value
    By default algorithm ELK Layered is used.
    I use this algorithm for all diagrams with “Arachitecture Blank” type.
    You need to set the property “Layout Hierarchy” to true
    Architecture Blank diagrams show elements with several levels.
    When Layout Hierarchy set to true algorithm is used for all levels correctly.
    Property “Node Spacing” change distance between nodes. When you want to show Component/Function exchange names
    this propery is useful.
    I need to find property that influence size selection of the nodes.
    In some cases I need to make size of component/functions larger by hand,
    so there is enough place for all ports placement.
  1. Breakdown diagrams
    I use these properties
  • Direction
  • Merge Edges
    The Direction property change hierarchy direction on diagram.
    For these diagrams I use advanced Property “Merge Edges”.
    When set to true input/output edges to the diagram element are merged to an one edge.
    Without this property you have
    With this property set you have
    I will update this information if I will find additional useful properties in the future.
    Regards,
    Dmitry

Thank you this is interesting and the results I get for dataflow diagrams are not too bad.
Now I would be interested in fine-tuning this and optimizing. For example, I have no idea what the Nodes Layering Strategy and Nodes Placement Strategies can be. And I would love to have means to force elements to be on the grid, to be able to have strict orthogonal edges, etc.
I good practice seems to run the algorithm once, then manually fine-tune the size of the boxes.
It is a good thing if this thread can be used to share our best settings. I would say the priority in my experiments would be to find a good way to manage labels.

Good to know you were successful with your test.
I would recomend the following actions to improve layout of your example:

  1. Make height of the Run Services node much larger manually
  2. Set parameter Node Spacing to 100
  3. Run automatic layout one more time
    In some situation ELK keeps size of the nodes.
    On the result diagram labels will be placed much more better
    Last several days I was using “Port Constraints” property set to FIXED SIDE
    that can also help to change the result layout of diagrams
    To set this property

I also have not understand yet how Layering Strategy and Nodes Placement Strategies influence the result
From my experience I have not sow any influence. But they should be I think
Strict orthogonal edges are also subject of my interest. I have not force ELK to make edges strict orthogonal yet.
I agree that usage of manual and automatic layouting together will be a good practice.

Thank you.
Yes, on my example, I did resize my “Run services” function and a few others to get a better result.
A possible step after that is use some of the basic layouting capabilities of Sirius/Capella. Here is an example.

  1. Starting point, result of ELK layout
  2. Selection of multiple edges to remove bendpoints.
  3. Move all ports by a few pixels (using multiple selection). This is an annoying step that is caused by an GMF incompatibility between ELK and Sirius (the GMF position of ports is managed differently by Sirius and ELK. Moving the ports manually “corrects” the port position from Sirius’s point of view. The result of the “correction” makes the Sirius straighten command available.
    Which gives the following result:
    This Sirius / ELK different way of managing ports is a pain! I don’t know yet whether work is planned to enhance this Sirius-ELK integration. This example is a trivial one, but being able to combine tools and strategies is key to be efficient

By some reason my default automatic layout is a little bit different.
Below results of my experiments with edge/port aligment
On diagrams of this messgae the following layout properties of diagrams are used

  • Layout hierarchy
  • Node Spacing
  • Edge Spacing Factor
  • Fixed Aligment
    Manual diagram
    Default automatic layout (Property Laytout hierarchy set to true)
    After SystemFunction1 manual resize
    After properties Node Spacing set to 100 and Edge Spacing Factor to 1
    After property Fixed Aligment set to BALANCED
    See next message to continue …

Below my additional results are shown. Additional layout properties are applied
to the previous applied properties (see previous message)
For experiments in this message the following layout properties are used

  • Port Aligment
  • Port Spacing
  • Port Constarint
    Port Aligment for 3 nodes set to Center (this is node property, not diagram)
    Port Aligment for SystemFunction1 (on the level 1) set to BEGIN
    Port Spacing for nodes set to 20 (default is 10)
    Port Constraint set to Fixed Pos and 3 bottom ports of SystemFunction1 are moved by hand + after this automatic layout is applied
    By some reason after applying Fixed Pos constraint nodes became more closerly placed. (compare 2 previous screenshots)