Skip to Main Content
IBM Sustainability Software - Ideas Portal


This portal is to open public enhancement requests against the products and services belonging to IBM Sustainability Software. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Submitted
Created by Guest
Created on Aug 14, 2026

Allow the endpoints of an existing IRPLink to be changed through the Java API, as IRPDependency already allows.

IRPLink exposes eight accessors to read its two endpoints:
getFrom() getFromElement() getFromPort() getFromSysMLPort()
getTo() getToElement() getToPort() getToSysMLPort()

None of them has a counterpart that writes. The only setters declared on IRPLink are setEnd1Name(String), setEnd1Multiplicity(String), setEnd2Name(String), setEnd2Multiplicity(String) and setInstantiates(IRPRelation). The first four take a String, so they set the label and the multiplicity of an association end. None of them can designate which element the link connects to.

IRPDependency, the comparable relation type, already provides what we are asking for:

void setDependent(IRPModelElement)
void setDependsOn(IRPModelElement)

Both are relations between two model elements. One can be re-pointed programmatically, the other cannot.

Why we need this

An application that maintains a Rhapsody model programmatically has to bring existing links in line with a changed specification. Reading the endpoints works, so such an application can detect that a link no longer matches what it should be. It cannot correct it in place.

The only sequence available today is to delete the link and create a new one. That produces a link with the right endpoints, but it is a different element. It has a new GUID, it loses its tags, and it is absent from every diagram in which the previous link had been placed and laid out. Manual diagram work is lost, and the API offers no way to restore it.

The gap is therefore not about convenience. A correction that should be invisible to the user destroys work the user did by hand.

Who benefits

Anyone driving Rhapsody from the Java API: synchronising a model with an external source of truth, migration and refactoring scripts, round trip with another authoring tool, and automated consistency checks that aim to fix what they find rather than only report it.

How it should work

Endpoint setters on IRPLink, symmetrical with IRPDependency:

void setFromPort(IRPPort)              void setToPort(IRPPort)
void setFromSysMLPort(IRPSysMLPort) void setToSysMLPort(IRPSysMLPort)

Or, if re-pointing has to be atomic, a single call taking both ends:

void setEnds(IRPModelElement fromPort, IRPModelElement toPort)

The property that matters is identity preservation: the link keeps its GUID, its tags and its existing diagram representations. That is exactly what setDependent and setDependsOn already provide for dependencies.


Idea priority High
Needed By Month