[SysML] #11. Understanding SysML ibd Diagram

In the systems modeling language SysML, the Internal Block Definition Diagram (IBD) is an important tool that provides a core structural view of the system. IBD clearly shows the internal structure of a specific block, allowing you to visually understand the static structure of the system.

The Role and Importance of IBD

The basic purpose of IBD is to visualize the internal structure of a system around the part properties and reference properties within each block. These diagrams represent the connections between blocks and the flow of matter, energy and data, which contribute greatly to understanding how the system behaves and what services it requires. These visual representations provide system designers and engineers with insights that can clarify complex interactions.

Complementarity of BDD and IBD

In the system modeling process, BDD and IBD play complementary roles. Through BDD, we first define the block and its properties, and then move to IBD to visualize the specific components of the block and how they are connected. These two diagrams play an important role throughout the entire life cycle of the system, from the early stages of design through maintenance.

Preparations before creating an IBD

Before creating an IBD, it is important to review the detailed structure of the block. The relationships between blocks and their subcomponents identified in BDD become the basis for writing IBD. The information identified in BDD allows IBD to diagram more detailed connections and flows. This process is essential to ensure the structural integrity of the system and prevent design errors.

Structure and characteristics of IBD

IBD is organized around specific blocks within the system model. This diagram includes the block’s component properties, reference properties, and connectors that connect these properties. These components are all expressed within the framework of IBD and can be used in conjunction with BDD to provide a consistent and complementary understanding of the system.

Practical Applications of IBD

IBD provides concrete examples showing how each part should be assembled and how these assembled blocks should be connected to external entities. This plays an important role in understanding the physical configuration of the system and laying the foundation for implementation during the actual product development process.

IBD role in systems modeling

IBD enables effective understanding of the internal structure of complex systems and the interactions between their components. However, IBD is not a tool for directly modeling the geometry of the system; CAD tools are usually used for this purpose. This understanding helps systems engineers make more accurate and efficient decisions in system design and integration.


  • Header structure : The header of an IBD usually follows the format “Ibd [block] block name [diagram name]”. This format makes it clear which block the diagram is for, while also providing a unique name for that particular diagram.
  • Role of frames : A frame in a diagram always represents its block, meaning that the frame itself is a visual representative of the type of model element. Therefore, you do not need to specify the model element type separately in the header.
  • Display of block names : The block name displayed inside a frame indicates the name of the specific block designated by that frame. This name is a central element of the IBD and allows viewers of the diagram to easily identify which block’s internal structure they are looking at.


1. Part Properties

Part properties represent each component within a system and form the ‘internal structure’ of that system. They represent concrete instances of blocks defined in BDD.

  • Notation : Part properties are represented by a rectangle with a solid solid border, inside which is the name and type of the component.
    Example : <engine> : <engine type>[4] where 4 indicates multiplicity that there are four engines.
  • Multiplicity: The multiplicity of a part property indicates how many of its components are present, optionally displayed in the upper right corner of the rectangle.

2. Reference Properties

Reference properties represent connections with other structures outside the system, which primarily involve interaction and communication between systems.

  • Notation : Reference properties are represented by a rectangle with a dotted border, inside which the name and type of the referenced structure are specified. Example : <communication interface> : <data link>
  • Multiplicity : Similar to part attributes, reference properties can also contain multiplicity information, which indicates that multiple instances of the structure may exist.

3. Connector

A connector represents a physical or logical connection between a part property and a reference property, or between part properties. They enable the flow of data, energy or matter within a system.

  • Connection representation : A connector represents a connection between two structures and can optionally include a name and type.
    Example : <Power transfer> : <Electrical connection>
  • The importance of connections : Connectors are a critical factor in determining the efficiency and functionality of a system, ensuring correct assembly and operation.


In the Internal Block Diagram (IBD), ports are a key element that connects the structural modeling of a system and its behavioral interactions. Ports provide a clear representation of how a component interacts with the outside world, providing invaluable information for system design and analysis.

Define interaction points

Ports are located at the border of a system or component, providing a precise point of interaction with the outside world. It clarifies the system’s communication paths and interfaces, defining its internal components or connection points with the outside world.

Specify the type and direction of interaction

A port specifies the type and direction of interaction in a system, such as receiving or transmitting data, energy, or matter. This allows system designers to understand and manage the capabilities of each port and their impact on the system as a whole.

Enhancing modularity and reusability of the system

Modularization through ports allows specific parts of the system to be designed independently and reused. This increases the flexibility and scalability of the system and enables reuse of its components in other systems or projects.

Provides a clear interface

A port embodies the system’s interface, which clearly defines how signals or data can be exchanged between components. This clear interface definition facilitates integration and interoperability of systems and reduces the potential for errors.

Flexible interaction modeling

Different types of ports (e.g. Full Port, Proxy Port) allow the system to model different interactions. This provides the flexibility to design components tailored to the specific circumstances of systems with complex requirements.

Connecting system behavior and structure

Ports act as an important medium connecting the structural and behavioral components of a system. It provides a unified view of the system, allowing designers and analysts to better understand and optimize how the system operates as a whole.


Item flow is an important element in system modeling, clearly indicating the type and direction of material, energy, or data flowing between two structures. This provides essential information for understanding the interaction and communication of a system, and IBD provides a visual representation of this flow to clarify the functional relationships of complex systems.

How to express item flow

  • Arrow notation : Item flow is often represented by filled triangular arrows on connectors, which indicate the direction of flow. The direction of the arrows provides a visual representation of the path that matter, energy, or data travels, making it easier to understand interactions within the system.
  • Label information : The type of item flow is indicated by a label near the connector. This label contains information that specifically describes the content of the flow and may specify the name, value type, signal type, etc. of the flowing item.

Compatibility requirements for item flow

  • Compatibility with Ports : For an item flow to function properly, the type of the flow must be compatible with the types of Flow Properties located at both ends of the port. This ensures that items can be transferred efficiently within the system. The Flow Property of each port defines the types of items the flow can carry, which is important for maintaining the data integrity and functional stability of the system.


SysML’s Internal Block Diagram (IBD) plays an important role in effectively representing the complex structure and hierarchy of a system. In particular, nested properties allow us to clearly express the interconnections and interactions between the various parts of a complex system, which aids in the understanding and analysis of the system. However, the use of nested properties can increase the complexity of the diagram, so an efficient and clear method of representation is needed.

Hierarchical expression using dot notation

  • Dot notation is an effective way to express nested properties concisely. This method expresses the hierarchical relationship of parts using ‘.’, for example, part1.part2. This saves space within the diagram and allows the structural hierarchy to be clearly expressed.

Connection method between nested properties and connectors

  • How to attach a connector : There are two approaches when attaching a connector to a nested property. The first is to draw a connector directly across the boundary that encapsulates the nested property, and the second is to stop at a port on the boundary and connect the connector from that port back to the nested property.
  • Both approaches promote modular block design and reinforce the principles of encapsulation and modularity.

Application and importance of the encapsulation principle

  • Adhering to the encapsulation principle : It is important to adhere to the encapsulation principle in system design. Drawing connections across boundaries may violate the encapsulation principle, so these design decisions should be made intentionally and the reasons should be clearly stated in the model documentation.
  • Violation of encapsulation should only be considered in special circumstances, as it may affect the maintainability and scalability of the system.


It is difficult to understand SysML simply as an explanation. We will now show you how to draw a simple Internal Block Definition Diagram (IBD) using Enterprise Architect (EA).

This image shows a requirement Diagram in order to Understanding SysML ibd Diagram.

First, the image below is a Block Definition Diagram (BDD) that models the components of a car (CAR). Here, the car contains the main components, a motor and a battery, and these are connected to the CAR through ‘Part Association’. Tires are connected through ‘Shared Association’, and roads interact with tires through ‘Reference Association’ named ‘tire contact’. Additionally, the motor is assigned a role called ‘Main Motor’, and the tires have a multiplicity of 4, meaning there are 4 tires per car.

Right-click on the CAR block, then select ‘New Child Diagram’ and click ‘Internal Block Diagram’ to create an internal block diagram named ‘CAR (Internal)’. If you look at the generated diagram, you can see that it is an internal block diagram (IBD) called ‘CAR (Internal)’ of the block called ‘CAR’ in the frame header. The frame in this diagram can be understood as representing the ‘CAR’ block.

image 61

Now, right-click on the IBD and select ‘Synchronize Structural Elements’ to display the properties owned by the CAR block on the diagram. As you can see in the picture below, Part Property (Part Association) is displayed as a solid box and Reference Property (Shared Association & Reference Association) is displayed as a dotted box.

image 62

Next, select ‘Connector’ from IBD’s toolbox and connect the battery and motor. Set the name of this connector to ‘Hi-Voltage’ and specify the direction as ‘Battery → Motor’. Through this process, the electrical connection relationship between the battery and motor, which could not be expressed in BDD, can be explicitly expressed in IBD.

image 63

Now let’s develop our model in more detail:

Specify the type of connector between the battery and motor as ‘Hi-Voltage Cable’.
The battery and motor are each connected through a full port called ‘Hi-Volt-Connector’.
Tires are connected to the road, an external element of the car, through the ‘Tire Contact Type’ connection.

How to specify connector type

SysML uses ‘Reference Association’ to model the interaction between motor and battery. This indicates that the two components do not own each other but simply interact.

1. Creating a Reference Association : First, create a Reference Association between the Motor and Battery in the Block Definition Diagram (BDD). This step provides a clear visual representation of how the two elements are connected.

2. Set the connector name and directionality : Double-click the Association Connector and name it ‘Hi-Voltage Cable’ and also specify the directionality. This allows you to clearly define the path through which electricity flows from the battery to the motor and its characteristics.

image 64

3. Specify connector type in Internal Block Diagram:

  • Go back to CAR (Internal) IBD and right-click on the connector already connected between Battery and Motor.
  • If you select ‘Advanced’ → ‘Set Connector Type’, you can assign the Association defined in BDD. At this time, select ‘Hi-Voltage Cable’ and assign the properties of the connector set in the previous step.

image 65


Connection via Full Port

SysML’s Internal Block Diagram (IBD) provides the same ‘Port’ tool without distinguishing between Full Port and Proxy Port. This may mean that IBD does not need to distinguish between port types. Nevertheless, through practice, we will show you the process of adding a full port to the battery and motor and modeling it explicitly.

1. Adding and naming ports:

  • Select ‘Port’ from IBD’s Toolbox and add it to Battery and Motor respectively.
  • Name the added ports ‘Power Out’ and ‘Power In’ respectively.

2. Specify the Full Port stereotype:

  • After clicking the added port, select ‘Stereotype’ in Properties → Element tab.
  • In SysML 1.5 Profile, select ‘Full Port’ to assign a stereotype to the port.
image 67

3. Connector type and block assignment:

  • Go back to CAR’s BDD and create the ‘Hi-Volt-Battery-Connector’ and ‘Motor Connector’ blocks.
  • Click on each Full Port in IBD and assign the previously created connector block to each port in the Properties → Property tab.
image 69

4. Full Port Connection:

  • Select the ‘Connector’ tool from the Toolbox and connect the two Full Ports.
  • Name the connected connector ‘Hi—Voltage’.
image 71

5. Add Flow Property:

  • Delete the Hi-Voltage Connector and connect the Battery’s Full Port and the Motor’s Full Port using the ‘Item Flow’ tool in the Toolbox. This process is similar to connecting a proxy port.


Connecting objects external to a block: Utilizing Reference Property

This section explains how to effectively model interactions between vehicle components using SysML’s Internal Block Diagram (IBD). In particular, it covers the process of modeling the connection between motors and tires and the relationship between roads and tires.

Connection between motor and tire

1. Connecting Motor and Tire:

  • In the image below, the motor and tire are connected by a connector called ‘torque’. This simplifies the process by which the torque generated by the motor is transmitted to the road through the tires.
  • In a real vehicle, there may be many other devices between these two components, but in this modeling exercise, we omit them to keep the structure simple.
image 72

Modeling the connection between Road and Tire

1. Go to Reference Property:

  • In CAR’s Block Definition Diagram (BDD), Road has a Reference Association relationship with Tire. It is not directly connected to the CAR block.
  • In the Project Browser, drag and drop the :Road Reference Property included in the Tire block to CAR (Internal) IBD. During this process, the location of the Reference Property may be moved incorrectly due to the limitations of EA.
  • If :Road was incorrectly moved from the Tire block to the CAR block, it must be moved back to the Tire block.
image 73

2. Tire and Road Connection:

  • Now connect the Tire and Road with a connector in IBD. This allows us to clearly express how the Tire interacts with the Road.
  • The completed IBD is shown in the picture below.
image 74
This is a Internal Block Diagram drawn with Enterprise Architect. If you want to get more information about Internal Block Diagram, this article may be helpful.


[SysML] #1. Understanding SysML Diagrams

[SysML] #2. Understanding SysML Package Diagram

[SysML] #3. Understanding Dependencies of Pkg Diagram

[SysML] #5. Understanding SysML Requirement Diagram

[SysML] #6. Understanding Relations In Req Diagram

[SysML] #7. How to draw a Req Diagram with EA

[SysML] #8. Understanding SysML UseCase Diagram

[SysML] #9. How to draw a UseCase Diagram with EA

[SysML] #10. Understanding SysML bdd Diagram

[SysML] #12. Understanding Part Property of Block

[SysML] #13. Understanding Reference Property of Block

[SysML] #14. Understanding Value Type

[SysML] #15 Understanding Parametric Diagram

[SysML] #16. Understanding Flow Property

[SysML] #17. Understanding Port and Association Block

[SysML] #18. Understanding Behavior of Block

[SysML] #19. Understanding Generalizations

[SysML] #20. Understanding Dependencies, Allocate, Comment

[SysML] #21. Understanding Activity Diagram

[SysML] #22. How to draw a Activity Diagram with EA

[SysML] #23. Seq Diagram LifeLine and Message

[SysML] #24. Seq Diag Constraints Fragment Decompose

[SysML] #25. How to draw a Sequence Diagram with EA

[SysML] #26. Understanding Stm Diagram State and Transition

[SysML] #27. Understanding Stm Diagram Event Pseudostate Region

[SysML] #28. How to draw a State Machine Diagram with EA

Leave a Comment