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

Sample SysML internal block diagram of the power subsystem in Astah SysML
section divider

Add a new Internal Block Diagram

If you are starting from here, download the Astah SysML trial and the sample file with the two BDDs.

  1. Open the “PowerSubsystem Fuel Flow Definition” block definition diagram.
  2. Right-click the “PowerSubsystem” block and select [Add Internal Block Diagram] from the pop-up menu.
    Add Internal Block Diagram menu

The internal block diagram is added and opens in the Diagram Editor. The “FuelTankAssembly” block and the other blocks connected by composition are placed as part properties, and their association end names, such as “ft”, become the part property names.

section divider

Add New Part Properties

  1. Click the [Part Properties/Reference Properties] button on the tool palette, then click on the diagram.
    Part Properties/Reference Properties tool
  2. In the [Add Property] dialog, enter “epc: ElectricalPowerController” and click [OK]. This names the part “epc” and sets “ElectricalPowerController” as its type.
  3. Because the “ElectricalPowerController” block does not exist in the project yet, you are asked whether to create it. Click [Yes].

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

Add a Reference Property

Let’s add a reference property by drag and drop.

  1. Right-click the project root in the Structure Tree, select [Create Model] – [Block], and name the new block “BrakePedal”.
  2. Drag the “BrakePedal” block from the Structure Tree onto the internal block diagram.
  3. In the [Model Type] dialog, choose [Reference Property] and click [OK].

Add Ports

Add an “I_IEPC” port to the “epc: ElectricalPowerController” part.

  1. Click the [Port] button on the tool palette, then click the bottom edge of the “epc: ElectricalPowerController” part.
  2. In the [Base] tab of the port’s Property View, set the port name to “I_IEPC” and its type to the “FuelFlow” block.

Then add ports to the other two parts:

  1. Add a port to “emg: ElectricMotorGenerator” and set its type to “FuelFlow”.
  2. Add a port to “ecu: PowerControlUnit”.
  3. Hide the port names and types from each port’s pop-up menu.

Add Item Flows

To add an item flow, select the [Item Flow] tool button, then click two ports. The port you click first becomes the source of the item flow.

Item Flow tool button
  1. Click the port of the “epc: ElectricalPowerController” part, then the port of the “emg: ElectricMotorGenerator” part.
  2. Create a second item flow in the opposite direction in the same way.

Convey

Let’s add a conveyed item to the item flow you created.

  1. Right-click the project root in the Structure Tree, select [Create Model] – [Block], enter “ElectricCurrent” and press Enter.
  2. Select the item flow. In its Property View, click the empty space under [Convey] and select the “ElectricCurrent” block.
section divider

Interface

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

  1. First, add another “I_IEPC” port to the “epc: ElectricalPowerController” part.
  2. Click the [Interface] tool button and place an interface to the lower left of the “I_IEPC” port of the “epc: ElectricalPowerController” part.
    Interface tool
  3. Enter “I_IEPCData” as the interface name.
  4. Click the [Usage Dependency] button, then the “I_IEPC” port, then the “I_IEPCData” interface.
    Usage Dependency tool
  5. You are asked how to set the port type. Select [Use existing model] and choose “PowerControlUnit”. The interface becomes a required interface.
  6. Click the [Interface] tool button again, then click to the right of the interface you just created. Enter “I_IEPCCmd” as the interface name.
  7. Click the [Realization] tool button, then the “I_IEPC” port, then the “I_IEPCCmd” interface. The interface becomes a provided interface.
    Realization tool

In the same way, add a required interface and a provided interface to the port of the “ecu: PowerControlUnit” part.

  1. Click the [Required Interface] tool button, click near “I_IEPCData”, then click the port of the “ecu: PowerControlUnit” part.
    Required Interface tool button
  2. Select [Use existing model] and specify “ElectricalPowerController”.
  3. In the next dialog, select [Use existing model] again and specify the “I_IEPCCmd” interface.
  4. For the provided interface, click the [Provided Interface] tool button, click near “I_IEPCCmd”, then click the port of the “ecu: PowerControlUnit” part.
    Provided Interface tool button
  5. Select [Use existing model] and specify the “I_IEPCData” interface.

Connector

Finally, create connectors. Select [Connector] on the tool palette, then click the “FuelTankFitting: FuelFlow” port and then the “ICEFuelFitting: FuelFlow” port.

Connector tool button

In the same way, create a connector between the ports of the “epc: ElectricalPowerController” and “ecu: PowerControlUnit” parts, and another between “ecu: PowerControlUnit” and “bkp: BrakePedal”.

You can download the file that contains this internal block diagram.