I've noticed a masking effect when two Binding Connectors share a client part with port. Consider the following snippet from a parametric diagram:
In this case the Binding Connectors were created starting with block 2 (supplier) and moving to block 1 (client). An export using MTIP contains the following:
<data>
<relationships _dtype="dict">
<hasParent _dtype="dict">
<type _dtype="str">sysml.Block</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843719848_734498_42604</id>
<relationship_metadata _dtype="dict"/>
</hasParent>
<supplier _dtype="dict">
<type _dtype="str">sysml.ConstraintParameter</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843829265_18509_42994</id>
<relationship_metadata _dtype="dict"/>
</supplier>
<client _dtype="dict">
<type _dtype="str">sysml.ConstraintParameter</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843820671_851932_42960</id>
<relationship_metadata _dtype="dict"/>
</client>
<supplierPartWithPort _dtype="dict">
<type _dtype="str">sysml.PartProperty</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843785329_101118_42835</id>
<relationship_metadata _dtype="dict"/>
</supplierPartWithPort>
<clientPartWithPort _dtype="dict">
<type _dtype="str">sysml.PartProperty</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843781704_445739_42819</id>
<relationship_metadata _dtype="dict"/>
</clientPartWithPort>
</relationships>
<id _dtype="dict">
<cameo _dtype="str">_19_0_3_1fb304ea_1698843834822_845182_43016</cameo>
</id>
<attributes _dtype="dict">
<attribute _dtype="dict" key="stereotype">
<attribute _dtype="str" key="stereotypeName">BindingConnector</attribute>
<attribute _dtype="str" key="stereotypeId">_15_0_be00301_1204738115945_253883_5044</attribute>
<attribute _dtype="str" key="profileName">SysML</attribute>
<attribute _dtype="str" key="profileId">_11_5EAPbeta_be00301_1147434586638_637562_1900</attribute>
</attribute>
</attributes>
<type _dtype="str">sysml.BindingConnector</type>
</data>
<data>
<relationships _dtype="dict">
<hasParent _dtype="dict">
<type _dtype="str">sysml.Block</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843719848_734498_42604</id>
<relationship_metadata _dtype="dict"/>
</hasParent>
<supplier _dtype="dict">
<type _dtype="str">sysml.ConstraintParameter</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843825115_377898_42977</id>
<relationship_metadata _dtype="dict"/>
</supplier>
<client _dtype="dict">
<type _dtype="str">sysml.ConstraintParameter</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843812090_544489_42943</id>
<relationship_metadata _dtype="dict"/>
</client>
<supplierPartWithPort _dtype="dict">
<type _dtype="str">sysml.PartProperty</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843785329_101118_42835</id>
<relationship_metadata _dtype="dict"/>
</supplierPartWithPort>
<clientPartWithPort _dtype="dict">
<type _dtype="str">sysml.PartProperty</type>
<id _dtype="str">_19_0_3_1fb304ea_1698843781704_445739_42819</id>
<relationship_metadata _dtype="dict"/>
</clientPartWithPort>
</relationships>
<id _dtype="dict">
<cameo _dtype="str">_19_0_3_1fb304ea_1698843838935_678915_43036</cameo>
</id>
<attributes _dtype="dict">
<attribute _dtype="dict" key="stereotype">
<attribute _dtype="str" key="stereotypeName">BindingConnector</attribute>
<attribute _dtype="str" key="stereotypeId">_15_0_be00301_1204738115945_253883_5044</attribute>
<attribute _dtype="str" key="profileName">SysML</attribute>
<attribute _dtype="str" key="profileId">_11_5EAPbeta_be00301_1147434586638_637562_1900</attribute>
</attribute>
</attributes>
<type _dtype="str">sysml.BindingConnector</type>
</data>
Note that the Binding Connector definitions have different Client IDs and identical ClientPartWithPortIDs. This makes sense. They are connected to the same part property but different constraint parameters. When I import an XML like this using MTIP, both Binding Connectors are set to the same constraint parameter:
To me, this indicates a masking effect where the initial constraint parameter is overwritten with the latter before changes to the model are actually committed.
Any thoughts on what is happening here or where in the code to look first?
Thank you!
I've noticed a masking effect when two Binding Connectors share a client part with port. Consider the following snippet from a parametric diagram:
In this case the Binding Connectors were created starting with block 2 (supplier) and moving to block 1 (client). An export using MTIP contains the following:
Note that the Binding Connector definitions have different
ClientIDs and identicalClientPartWithPortIDs. This makes sense. They are connected to the same part property but different constraint parameters. When I import an XML like this using MTIP, both Binding Connectors are set to the same constraint parameter:To me, this indicates a masking effect where the initial constraint parameter is overwritten with the latter before changes to the model are actually committed.
Any thoughts on what is happening here or where in the code to look first?
Thank you!