Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > IDL Code > Modeling IDL code in Modeler > Rules for connecting items on an internal component diagram > Rules for connecting items on an internal component diagram (IDL code)
  
Rules for connecting items on an internal component diagram (IDL code)
On an Internal Component Diagram you can create a Connection between two items only if the source and destination items are valid.
* 
You can add a callout note that shows which message is being used to a External Port (Consumer), External Port (Publisher) and Connector Instance.
To create a Connection:
On the diagram toolbar, click the Connection button, click the source item, and then click the destination item.
A Connection can link the following source to destination items.
Service to service connection
A Service to Service connection is valid only when the following criteria is met:
The source and destination Services both use the same type (an Interface).
The source Service's Component Part (or Component) is the parent of the destination Service's Component Part.
Client to client connection
A Client to Client connection is valid only when the following criteria is met:
The source and destination Clients both use the same type (an Interface).
The source Client's Component Part is a child of the destination Client's Component Part (or Component).
Client to service connection
A Client to Service connection is valid only when the following criteria is met:
The source Client and destination Service both use the same type (an Interface).
The source Client's Component Part (or Component) is not the parent or child of the destination Service's Component Part (or Component).
Extended port (consumer) to extended port (consumer) connection
An Extended Port (Consumer) to Extended Port (Consumer) connection is valid only when the following criteria is met:
The source Extended Port (Consumer) and destination Extended Port (Consumer) both use the same Bound Module.
The source Extended Port (Consumer) and destination Extended Port (Consumer) both use the same Port Type.
The source Extended Port (Consumer)'s Component Part (or Component) is the parent of the destination Extended Port (Consumer)'s Component Part.
Extended port (publisher) to extended port (publisher) connection
An Extended Port (Publisher) to Extended Port (Publisher) connection is valid only when the following criteria is met:
The source Extended Port (Publisher) and destination Extended Port (Publisher) both use the same Bound Module.
The source Extended Port (Publisher) and destination Extended Port (Publisher) both use the same Port Type.
The source Extended Port (Publisher)'s Component Part is the child of the destination Extended Port (Publisher)'s Component Part (or Component).
Extended port (publisher) to connector instance connection
An Extended Port (Publisher) to Connector Instance connection is valid only when the following criteria is met:
The source Extended Port (Publisher) and destination Connector Instance both use the same Bound Module.
The Extended Port (Publisher)'s Port Type is used as a type for at least one Port Type that is owned by the Connector Instance's Connector.
In the following example, the connection can be made because the Extended Port (Publisher)'s Port Type (DDS_Write) is used as a type for at least one Port Type (supplier) that is owned by the Connector Instance's Connector (DDS_Event).
Component instance to extended port (consumer) connection
A Connector Instance to Extended Port (Consumer) connection is valid only when the following criteria is met:
The source Connector Instance and destination Extended Port (Consumer) both use the same Bound Module.
The Extended Port (Consumer)'s Port Type is used as a type for at least one Port Type that is owned by the Connector Instance's Connector.
In the following example, the connection can be made because the Extended Port (Consumer)'s Port Type (DDS_Get) is used as a type for at least one Port Type (pull_consumer) that is owned by the Connector Instance's Connector (DDS_Event).
Listener port service to extended port (consumer) or extended port (publisher) connection
A Service can be connected to an Extended Port (Consumer) or Extended Port (Publisher), but only when the Service is the Status listener port that is set up through the Add Connector Listener command.
To set up a listener port for an Extended Port (Consumer) or Extended Port (Consumer): right-click the Extended Port (Consumer) or Extended Port (Publisher), and then click Add Connector Listener.
* 
The Connection between the listener port to an Extended Port (Consumer) or Extended Port (Publisher) is not added to an Internal Component Diagram through the Populate > Connections command.