# Internal Block Diagram

![Internal Block Diagram](https://content.gitbook.com/content/aNbtXAm2MUsbrMlAEZb1/blobs/oTi5Sb7duL8eX9JRrosg/PowerSubsystem.png)

## Create Block Definition Diagram

To create a Internal Block Diagram:

1. Select first a Block where a new Internal Block Diagram to be contained as a child.
2. Select **Model | Add Diagram | Internal Block Diagram** in Menu Bar or select **Add Diagram | Internal Block Diagram** in Context Menu.

## Part

To create a Part:

1. Select **Part** in **Toolbox**.
2. Drag on the diagram as the size you want.

You can use **QuickEdit** for Part by double-click or press `Enter` on a selected Part.

* **Name Expression** : Edit name expression.

  *Syntax of Name Expression*

  ```
  expression ::= [ '<<' stereotype `>>` ] [ visibility ] name
  stereotype ::= (identifier)
  visibility ::= '+' | '#' | '-' | '~'
  name ::= (identifier)
  ```
* **Visibility** : Change visibility property.
* **Add Note** : Add a linked note.
* **Add Constraint** : Add a constraint.
* **Select Block** : Select a Block and assign it to type property.
* **Create Block** : Create a Block and assign it to type property.
* **Select Value Type** : Select a Value Type and assign it to type property.
* **Create Value Type** : Create a Value Type and assign it to type property.
* **Add Port** : Add a port.

## Reference

To create a Reference:

1. Select **Reference** in **Toolbox**.
2. Drag on the diagram as the size you want.

You can use the same **QuickEdit** for [Part](#part) by double-click or press `Enter` on the selected Reference.

## Value

To create a Value:

1. Select **Value** in **Toolbox**.
2. Drag on the diagram as the size you want.

You can use the same **QuickEdit** for [Part](#part) by double-click or press `Enter` on the selected Value.

## Port

See [Port](https://docs.staruml.io/block-definition-diagram#port) in Block Definition Diagram.

## Connector

See [Connector](https://docs.staruml.io/block-definition-diagram#connector) in Block Definition Diagram.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.staruml.io/working-with-sysml-diagrams/internal-block-diagram.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
