An n-ary interface is a complex connector between three or more ports. The n-ary interface is displayed as a dot symbol with segments connecting the ends of the interface.

  • The ends of an interface definition or usage must be port usages.
  • The port keyword is optional for interface ends. The keyword is mandatory if the ends have owned cross features.

Creating n-ary interfaces 

Creating n-ary interfaces via the Textual Editor

To create n-ary interfaces via the Textual Editor


  1. In the Textual Editor, place the cursor where you want to create the element and declare the interface keyword.
  2. Specify the element name (optional), specialization (optional), then the connect keyword, then state the feature ports explicitly (using the connect...to syntax) or in a comma-separated list of related features.
    • If the interface has no name and no specialization, the keyword connect can be omitted.
    • You can also name interface end ports, associating them to feature ports via reference subsetting.
  3. Click the Synchronize button.

interface def CanBusInterface {
   
end port transmissionPort : CanBusPorts;
   end port electricalPowerControllerPort
: CanBusPorts;
   end port internalCombustionEnginePort
 : CanBusPorts;
}

part 'power subsystem' {
   part electricalPowerController { port fp; }
   part transmission { port fp; }
   part internalCombustionEngine { port fp; }

   // named specialized (feature typing) interface usage with named end ports connecting feature ports in a comma-separated list:
   interface 'can bus' : CanBusInterface connect (transmissionPort ::> transmission.fp, electricalPowerControllerPort ::> electricalPowerController.fp, internalCombustionEnginePort ::> internalCombustionEngine.fp);

   // unnamed unspecialized interface usage connecting feature ports in a comma-separated list:
   interface (transmission.fp, electricalPowerController.fp, internalCombustionEngine.fp);
}

Creating n-ary interfaces via the view palette

To create n-ary interfaces via the view palette


  1. In the view palette, under the Connectors group, click the n-ary interface button. If it is not displayed, click the down-facing arrow next to the interface button and click the n-ary interface button in the dropdown menu.
  2. Click in the view pane where you want the n-ary interface symbol to be created.
  3. Select the n-ary interface symbol and in its smart manipulator, click the end command. 
  4. Draw the end from the n-ary interface symbol to the symbol of the port you want to connect. Repeat for all ports you want to connect.

Converting binary and n-ary interfaces

Converting binary interface to n-ary via the view

To convert binary interface to n-ary via the view


  1. In the view pane, right-click the binary interface you want to convert to an n-ary.
  2. In the shortcut menu, click Refactor, then Convert to N-ary Dot. The binary interface is converted and the n-ary dot symbol is displayed.

Converting n-ary interface to binary via the view

To convert n-ary interface to binary via the view


  1. In the view pane, right-click the n-ary dot symbol of the interface you want to convert to a binary.
  2. In the shortcut menu, click Refactor, then Convert to Path. The n-ary interface dot symbol is converted and the binary path is displayed.

    The Convert to Path command is only available if the dependency has no more than two ends. 

Creating n-ary interface definition

Creating n-ary interfaces definition via the Textual Editor

To create n-ary interfaces definition via the Textual Editor


  1. In the Textual Editor, place the cursor where you want to create the element and declare the interface def keyword followed by its name.
  2. Name the element, then specify the interface definition features in the element body:
    1. Specify the interface definition ends by declaring the end keyword, followed by the end name and/or specialization of the needed port.
  3. Click the Synchronize button. 

    interface def CanBusInterface {
       
    end port transmissionPort : CanBusPorts;
       end port electricalPowerControllerPort
    : CanBusPorts;
       end port internalCombustionEnginePort
     : CanBusPorts;
    }

Auto-creating n-ary interface definition elements via the Extract Definition command

To auto-create n-ary interface definition elements via the Extract Definition command


Creating n-ary interface definitions via the view palette

To create n-ary interface definitions via the view palette


  1. In the view palette, under the Connectors group, click the interface def button. 

    If the needed button is not displayed, click the down-facing arrow next to either the interface or the n-ary interface button and select the needed button in the dropdown menu.

  2. Click in the view pane where you want to create the interface def symbol. The interface def symbol is created containing two end element symbols.
    1. Create additional ends:
      1. Via the Create Element button's end command. See the procedure Creating elements via compartments on the Compartments page. 
      2. In the view palette, under the Items/Ports/Attributes group, click the port button. Click on the interface def symbol to create a port for it.