
# IBus interface

The `IBus` interface represents a bus object on the schematic sheet. Buses are special graphical elements that represent a common pathway for multiple signals on a schematic document. Buses have no electrical properties, and they must be correctly identified by net labels and ports.

```csharp
public interface IBus : IDMObject
```

**Namespace:** EDP · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IDMObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md)

## Remarks

When a schematic document is compiled, bus objects have inferred objects (wires with netlabels on them) in memory that aids the connectivity and navigation features within Altium Designer.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [DM_BusKind](#dm_buskind) | [TBusKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TBusKind.md) | The method returns the bus kind which is one of the following enumerated values; eBusKindUndefined, eBusKindLowValueFirst, eBusKindHighValueFirst, eBusKindGeneric. |
| [DM_BusName](#dm_busname) | `string` | This method returns the full bus name of this bus interface. |
| [DM_BusRange1](#dm_busrange1) | `string` | This method returns the Bus range 1 value. |
| [DM_BusRange2](#dm_busrange2) | `string` | The method returns the Bus range 2 value. |
| [DM_BusRangeValue1](#dm_busrangevalue1) | `int` | The method returns the Bus range 1 value. |
| [DM_BusRangeValue2](#dm_busrangevalue2) | `int` | The method returns the Bus range 2 value. |
| [DM_BusWidth](#dm_buswidth) | `int` | The method returns the bus width. |
| [DM_Electric](#dm_electric) | [TPinElectrical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TPinElectrical.md) | The method returns the electrical property for this bus. |
| [DM_FullBusName](#dm_fullbusname) | `string` | The method returns the full bus name of this bus interface. |
| [DM_IsLocal](#dm_islocal) | `bool` | The method returns a Boolean value whether this bus is a local object or not. |
| [DM_RangeDefinedByValue](#dm_rangedefinedbyvalue) | `bool` | The method returns a Boolean value whether this range is defined by a two specific range values or not. |
| [DM_Scope](#dm_scope) | [TNetScope](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TNetScope.md) | The method denotes the net scope of this `IBus` interface. |
| [DM_SectionCount](#dm_sectioncount) | `int` | The method returns the number of sections for this `IBus` interface. |
| [DM_Sections](#dm_sections) | [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md) | The method returns the indexed section of the bus. |
| [DM_SignalType](#dm_signaltype) | `string` | The method returns the signal type string for this bus. |
| [DM_WireCount](#dm_wirecount) | `int` | The method returns the number of wires for this `IBus` interface. |
| [DM_Wires](#dm_wires) | [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md) | The method returns the indexed wire. |

### DM_BusKind

The method returns the bus kind which is one of the following enumerated values; eBusKindUndefined, eBusKindLowValueFirst, eBusKindHighValueFirst, eBusKindGeneric.

```csharp
TBusKind DM_BusKind();
```

**Returns:** [TBusKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TBusKind.md)

Extension method of `IBusHelper` (`using EDP;`).

### DM_BusName

This method returns the full bus name of this bus interface.

```csharp
string DM_BusName();
```

**Returns:** `string`

### DM_BusRange1

This method returns the Bus range 1 value. Eg. A1..6, the bus range1 is 1.

```csharp
string DM_BusRange1();
```

**Returns:** `string`

### DM_BusRange2

The method returns the Bus range 2 value. Eg. A1..6, the bus range2 is 6.

```csharp
string DM_BusRange2();
```

**Returns:** `string`

### DM_BusRangeValue1

The method returns the Bus range 1 value.

```csharp
int DM_BusRangeValue1();
```

**Returns:** `int`

### DM_BusRangeValue2

The method returns the Bus range 2 value.

```csharp
int DM_BusRangeValue2();
```

**Returns:** `int`

### DM_BusWidth

The method returns the bus width.

```csharp
int DM_BusWidth();
```

**Returns:** `int`

### DM_Electric

The method returns the electrical property for this bus. Various values include :eElectricInput, eElectricIO, eElectricOutput, eElectricOpenCollector, eElectricPassive, eElectricHiZ, eElectricOpenEmitter, eElectricPower

```csharp
TPinElectrical DM_Electric();
```

**Returns:** [TPinElectrical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TPinElectrical.md)

Extension method of `IBusHelper` (`using EDP;`).

**See also:** [TPinElectrical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TPinElectrical.md)

### DM_FullBusName

The method returns the full bus name of this bus interface.

```csharp
string DM_FullBusName();
```

**Returns:** `string`

### DM_IsLocal

The method returns a Boolean value whether this bus is a local object or not.

```csharp
bool DM_IsLocal();
```

**Returns:** `bool`

### DM_RangeDefinedByValue

The method returns a Boolean value whether this range is defined by a two specific range values or not.

```csharp
bool DM_RangeDefinedByValue();
```

**Returns:** `bool`

### DM_Scope

The method denotes the net scope of this `IBus` interface.

```csharp
TNetScope DM_Scope();
```

**Returns:** [TNetScope](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TNetScope.md)

Extension method of `IBusHelper` (`using EDP;`).

**See also:** [TNetScope](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TNetScope.md)

### DM_SectionCount

The method returns the number of sections for this `IBus` interface. This is used for the [`DM_Sections`](#dm_sections) method.

```csharp
int DM_SectionCount();
```

**Returns:** `int`

### DM_Sections

The method returns the indexed section of the bus. Used in conjunction with the [`DM_SectionCount`](#dm_sectioncount) method.

```csharp
INet DM_Sections(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md)

Extension method of `IBusHelper` (`using EDP;`).

### DM_SignalType

The method returns the signal type string for this bus.

```csharp
string DM_SignalType();
```

**Returns:** `string`

### DM_WireCount

The method returns the number of wires for this `IBus` interface. This is used for the [`DM_Wires`](#dm_wires) method.

```csharp
int DM_WireCount();
```

**Returns:** `int`

### DM_Wires

The method returns the indexed wire. Used in conjunction with the [`DM_WireCount`](#dm_wirecount) method.

```csharp
INet DM_Wires(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md)

Extension method of `IBusHelper` (`using EDP;`).

## Inherited members

- From [IDMObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md): [DM_CalculateParameterValue](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_calculateparametervalue), [DM_CurrentSheetInstanceNumber](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_currentsheetinstancenumber), [DM_FullCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_fullcrossprobestring), [DM_GeneralField](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_generalfield), [DM_GetVCSProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_getvcsproject), [DM_ImageIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_imageindex), [DM_IsFormulaString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_isformulastring), [DM_IsInferredObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_isinferredobject), [DM_LocationString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationstring), [DM_LocationX](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationx), [DM_LocationY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationy), [DM_LongDescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_longdescriptorstring), [DM_NetIndex_Flat](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_flat), [DM_NetIndex_Sheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_sheet), [DM_NetIndex_SubNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_subnet), [DM_ObjectKindString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_objectkindstring), [DM_ObjectKindStringForCrossProbe](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_objectkindstringforcrossprobe), [DM_OwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocument), [DM_OwnerDocumentFullPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocumentfullpath), [DM_OwnerDocumentName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocumentname), [DM_ParameterCount](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_parametercount), [DM_Parameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_parameters), [DM_PcbHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbhandle), [DM_PCBObjectHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbobjecthandle), [DM_PCBObjectInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbobjectinterface), [DM_PrimaryCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_primarycrossprobestring), [DM_SchHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schhandle), [DM_SCHObjectHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schobjecthandle), [DM_SCHObjectInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schobjectinterface), [DM_SecondaryCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_secondarycrossprobestring), [DM_SetVCSProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_setvcsproject), [DM_SheetIndex_Logical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_sheetindex_logical), [DM_SheetIndex_Physical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_sheetindex_physical), [DM_ShortDescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_shortdescriptorstring), [DM_ValidForNavigation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_validfornavigation), [DM_VHDLEntity](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_vhdlentity)

## Returned by

[IDocument.DM_Buses](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md#dm_buses)

## Accepted by

[IHighlightedDocument.HL_Register_Bus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IHighlightedDocument.md#hl_register_bus)
