You’ve created two block definition diagrams. Now let’s move onto Internal Block Diagram.
This is the Internal Block Diagram you are going to create. This diagram is an excerpt from “Figure D.19 – Internal Structure of the Power Subsystem (Internal Block Diagram)” of the SysML 1.5 specification with a couple of additional Parts.

section divider

Add a new Internal Block Diagram

Open [PowerSubsystem Fuel Flow Definition] Block Definition Diagram.
If you’re starting from here, download Astah SysML trial and you can download the file with the two BDDs.
Find a “PowerSubsystem” block in the diagram and right-click on it. Then select “Add Internal Block Diagram” from the pop-up menu.


Then the Internal Block Diagram will be added and displayed in the Diagram Editor.
The “FuelTankAssembly” block and other blocks connected by compositions are placed as part properties and association end name such as “ft” will be the name of the part property.

section divider

Add New Part Properties

Click the “Part Properties/Reference Properties” button on the tool palette and click on the diagram.


An “Add Property” dialog box appears. Click OK to place the part property.
You can directly enter “epc: ElectricalPowerController” and hit [OK]. This way you are naming the part as “epc” and set “ElectricalPowerController” as its type.
When you hit Enter, you will be asked to create a new block “ElectricalPowerController” because it does not exist in the project yet. So click [Yes].

Create “emg:ElectricMotorGenerator” and “ecu:PowerControlUnit” parts in the same way.

Add “Reference Property”

Let’s add a reference property by drag & drop.
Create a new “BrakePedal” block by right-clicking on the project root in the structure tree and selecting [Create Model] – [Block] from the pop-up menu.
“Model Type” dialog will appear, choose [Reference Property] and hit [OK].

Add Ports

Add an “I_IEPC” port to the “epc:ElectricalPowerController” part.
Click the “Ports” button on the tool palette and click on the bottom of the “epc:ElectricalPowerController” part.
From the “Base” tab of the port’s properties view, set the port name to “I_IEPC” and the type to “FuelFlow” block.

Add ports on the other two parts “emg:ElectricMotorGenerator” and “ecu:PowerControlUnit”.
Set the port type for “emg:ElectricMotorGenerator” as “FuelFlow”.
Then hide Ports name and type from Port’s pop-up menu.

Add Item Flows

Let’s add Item Flows. First select the Item Flow tool button, then click two ports.

The port clicked first will be the source of the Item Flow.
Now let’s click the port of the “ElectricalPowerController” block and one of the “ElectricMotorGenerator”.
In the same way, create an item flow in the opposite direction.

Convey

Let’s add a Convey to the created Item Flow.
First, create a Convey block “ElectricCurrent” in the structure tree.
Right-click on the project root in the structure tree and select [Create Model] – [Block] from the pop-up menu that appears, enter “ElectricCurrent” and press Enter.


Next, add a Convey from the Item Flow Properties view, click on the empty space under Convey and select the “ElectricCurrent” block.

section divider

Interface

Now, let’s add the provided and required interfaces to the “I_IEPC” port of the “epc:ElectricalPowerController” part.

  1. First, add another “I_IEPC” port to “epc:ElectricalPowerController” part.
  2. Click on the [Interface] tool button and place the interface on the lower left of the “I_IEPC” port of the “epc:ElectricalPowerController” part.
  3. Enter “I_IEPCData” as the interface name.
  4. Next, click on the “Usage Dependency” button, then the “I_IEPC” port, then the “I_IEPCData” interface.


    You’ll be asked how you want to set the Port type. Select “Use existing model” and choose “PowerControlUnit.
  5. Now the interface will turn into a Required Interface.
  6. Now click on the “Interface” tool button again, then click on the right of the Interface you just created. Enter “I_IEPCCmd” as the interface name.
  7. Next, click the “Realization” tool button, then the “I_IEPC” port, then the “I_IEPCCmd” interface.
  8. Now the interface will turn into the provided interface.

Similarly, add a request interface to the port of the “ecu:PowerControlUnit” part.

  1. Click on the “Request Interface” tool button, click near “I_IEPCData”, and click on the port of the “ecu:PowerControlUnit” part.
  2. Select “Use existing model” and specify “ElectricalPowerController”.
  3. Also select “Use existing model” and specify the “I_IEPCCmd” interface in the next dialogue that appears.
  4. The same goes for the provided interface, click on the “provided interface” tool button, click near “I_IEPCCmd” and click on the port for the “ecu:PowerControlUnit” part.
  5. Select “Use existing model” and specify the “I_IEPCData” interface.

Connector

At last, create a connector.
Select the connector on the tool palette. Click on the “FuelTankFitting:FuelFlow” port then “ICEFuelFitting:FuelFlow” port.

Similarly, create a connector between the ports of “epc:ElectricalPowerController” and “ecu:PowerControlUnit” part, and between “ecu:PowerControlUnit” and “bkp:BrakePedal” part.

You can download the file that contains this Internal Block Diagram from here.