
# ISch_Document interface

This interface is the immediate ancestor interface for [`ISch_Sheet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md) and [`ISch_Lib`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md) interfaces.

```csharp
public interface ISch_Document : ISch_ParametrizedGroup
```

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

**Inherits:** [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) → [ISch_GraphicalObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md) → [ISch_ParametrizedGroup](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ParametrizedGroup.md)

**Derived:** [IFSM_Document](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IFSM_Document.md), [ISch_HarnessDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HarnessDocument.md), [ISch_Lib](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md), [ISch_Sheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md)

## Remarks

You can modify or set the document's preference settings.

You can iterate design objects in a Schematic or library document, see [`ISch_Iterator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Iterator.md) interface for details.

You can invoke the [`ChooseLocationInteractively`](#chooselocationinteractively) or [`ChooseRectangleInteractively`](#chooserectangleinteractively) methods to obtain coordinates from the Schematic sheet or library sheet.

You can create a library from a project that has components

You can check whether objects exist on a particular point on a schematic or library document.

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BorderOn](#borderon) | `bool` | get; set | This `BorderOn` property determines whether the border on around the outside of the current schematic document will be displayed or not. |
| [CustomMarginWidth](#custommarginwidth) | `int` | get; set | The `CustomMarginWidth` property sets the margin from the bounds of the schematic sheet inwards. |
| [CustomSheetStyle](#customsheetstyle) | `string` | get; set | This property represents custom sheet style property which values can be inherited from one of the standard sheet styles and customized further. |
| [CustomX](#customx) | `int` | get; set | This property sets the width of the custom sheet for the document. |
| [CustomXZones](#customxzones) | `int` | get; set | This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. |
| [CustomY](#customy) | `int` | get; set | This property sets the height of the custom sheet for the document. |
| [CustomYZones](#customyzones) | `int` | get; set | This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. |
| [DocumentBorderStyle](#documentborderstyle) | [TSheetDocumentBorderStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetDocumentBorderStyle.md) | get; set | The `DocumentBorderStyle` property determines the current document/border style for the schematic sheet - whether it is a standard or an ANSI title block. |
| [DocumentName](#documentname) | `string` | get | This read only property determines the schematic document name. |
| [HotspotGridOn](#hotspotgridon) | `bool` | get; set |  |
| [HotspotGridSize](#hotspotgridsize) | `int` | get; set |  |
| [InternalTolerance](#internaltolerance) | `int` | get |  |
| [LoadFormat](#loadformat) | `string` | get; set |  |
| [MinorVersion](#minorversion) | `int` | get |  |
| [ReferenceZonesOn](#referencezoneson) | `bool` | get; set | This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. |
| [SchDocID](#schdocid) | `int` | get |  |
| [SheetMarginWidth](#sheetmarginwidth) | `int` | get; set | The `SheetMarginWidth` property sets the margin from the bounds of the schematic sheet inwards. |
| [SheetSizeX](#sheetsizex) | `int` | get; set | The `SheetSizeX` property defines the width of the sheet. |
| [SheetSizeY](#sheetsizey) | `int` | get; set | The `SheetSizeY` property defines the height of the sheet. |
| [SheetStyle](#sheetstyle) | [TSheetStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetStyle.md) | get; set | The `SheetStyle` property determines the document standard style. |
| [SheetZonesX](#sheetzonesx) | `int` | get; set |  |
| [SheetZonesY](#sheetzonesy) | `int` | get; set |  |
| [ShowTemplateGraphics](#showtemplategraphics) | `bool` | get; set | The template is usually placed on the bottom right of the schematic sheet. |
| [SnapGridOn](#snapgridon) | `bool` | get; set | The snap grid is the grid that the cursor is locked to when placing or manipulating objects on the sheet. |
| [SnapGridSize](#snapgridsize) | `int` | get; set | The snap grid is the grid that the cursor is locked to when placing or manipulating objects on the sheet. |
| [SystemFont](#systemfont) | `int` | get; set |  |
| [TemplateFileName](#templatefilename) | `string` | get; set | The template filename is the filename of the template that is placed usually on the bottom right of the schematic sheet. |
| [TitleBlockOn](#titleblockon) | `bool` | get; set |  |
| [Unit](#unit) | [TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TUnit.md) | get; set | This property determines the system unit used for the schematic project. |
| [UnitSystem](#unitsystem) | [TUnitSystem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TUnitSystem.md) | get |  |
| [UseCustomSheet](#usecustomsheet) | `bool` | get; set | The property determines whether a custom sheet is used instead of a standard sheet. |
| [VisibleGridOn](#visiblegridon) | `bool` | get; set | The electrical grid supports the Schematic Editor's guided wiring feature. |
| [VisibleGridSize](#visiblegridsize) | `int` | get; set |  |
| [WorkspaceOrientation](#workspaceorientation) | [TSheetOrientation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetOrientation.md) | get; set | This method sets the orientation of the workspace - either as a portrait or as a landscape format. |

### BorderOn

This `BorderOn` property determines whether the border on around the outside of the current schematic document will be displayed or not.

```csharp
bool GetState_BorderOn();
void SetState_BorderOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### CustomMarginWidth

The `CustomMarginWidth` property sets the margin from the bounds of the schematic sheet inwards.

```csharp
int GetState_CustomMarginWidth();
void SetState_CustomMarginWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

**See also:** [ISch_Document.UseCustomSheet](#usecustomsheet)

### CustomSheetStyle

This property represents custom sheet style property which values can be inherited from one of the standard sheet styles and customized further.

```csharp
string GetState_CustomSheetStyle();
void SetState_CustomSheetStyle(string argValue);
```

**Type:** `string` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

### CustomX

This property sets the width of the custom sheet for the document.

```csharp
int GetState_CustomX();
void SetState_CustomX(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

### CustomXZones

This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. The reference zones form a reference grid along the border of your schematic. This reference grid is only for display purposes and does not affect the Snap, Visible or Electrical Grids that are used when placing schematic objects.

```csharp
int GetState_CustomXZones();
void SetState_CustomXZones(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

### CustomY

This property sets the height of the custom sheet for the document.

```csharp
int GetState_CustomY();
void SetState_CustomY(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

### CustomYZones

This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. The reference zones form a reference grid along the border of your schematic. This reference grid is only for display purposes and does not affect the Snap, Visible or Electrical Grids that are used when placing schematic objects.

```csharp
int GetState_CustomYZones();
void SetState_CustomYZones(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to true before you can massage the attributes for the custom style of the schematic sheet.

### DocumentBorderStyle

The `DocumentBorderStyle` property determines the current document/border style for the schematic sheet - whether it is a standard or an ANSI title block.

```csharp
TSheetDocumentBorderStyle GetState_DocumentBorderStyle();
void SetState_DocumentBorderStyle(TSheetDocumentBorderStyle argValue);
```

**Type:** [TSheetDocumentBorderStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetDocumentBorderStyle.md) · **Access:** read/write

The accessors are extension methods of `ISch_DocumentHelper` (`using SCH;`).

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

### DocumentName

This read only property determines the schematic document name.

```csharp
string GetState_DocumentName();
```

**Type:** `string` · **Access:** read-only

### HotspotGridOn

*No description yet.*

```csharp
bool GetState_HotspotGridOn();
void SetState_HotspotGridOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### HotspotGridSize

*No description yet.*

```csharp
int GetState_HotspotGridSize();
void SetState_HotspotGridSize(int argValue);
```

**Type:** `int` · **Access:** read/write

### InternalTolerance

*No description yet.*

```csharp
int GetState_InternalTolerance();
```

**Type:** `int` · **Access:** read-only

### LoadFormat

*No description yet.*

```csharp
string GetState_LoadFormat();
void SetState_LoadFormat(string argValue);
```

**Type:** `string` · **Access:** read/write

### MinorVersion

*No description yet.*

```csharp
int GetState_MinorVersion();
```

**Type:** `int` · **Access:** read-only

### ReferenceZonesOn

This property determines the number of regions or reference zones that are displayed along the horizontal and vertical borders. The reference zones form a reference grid along the border of your schematic. This reference grid is only for display purposes and does not affect the Snap, Visible or Electrical Grids that are used when placing schematic objects.

```csharp
bool GetState_ReferenceZonesOn();
void SetState_ReferenceZonesOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

**Example:** Turn off the reference zones of every schematic sheet in the focused project.

```csharp
using DXP;
using EDP;
using SCH;

var workspace = DXP.GlobalVars.Client.GetDXPWorkspace() as IWorkspace;
IProject project = workspace?.DM_FocusedProject();
if (project == null)
    return;
ISch_ServerInterface schServer = SCH.GlobalVars.SchServer;
ISch_RobotManager robotManager = schServer.GetState_RobotManager();

for (int i = 0; i < project.DM_LogicalDocumentCount(); i++)
{
    IDocument document = project.DM_LogicalDocuments(i);
    if (document.DM_DocumentKind() != "SCH")
        continue;
    ISch_Document currentSheet = schServer.GetSchDocumentByPath(document.DM_FullPath());
    if (currentSheet != null && currentSheet.GetState_ReferenceZonesOn())
    {
        robotManager.SendMessage(currentSheet, SCHConstant.BroadCast, SCHConstant.SCHMBeginModify, SCHConstant.NoEventData);
        currentSheet.SetState_ReferenceZonesOn(false);
        robotManager.SendMessage(currentSheet, SCHConstant.BroadCast, SCHConstant.SCHMEndModify, SCHConstant.NoEventData);
    }
}
```

### SchDocID

*No description yet.*

```csharp
int GetState_SchDocID();
```

**Type:** `int` · **Access:** read-only

### SheetMarginWidth

The `SheetMarginWidth` property sets the margin from the bounds of the schematic sheet inwards.

```csharp
int GetState_SheetMarginWidth();
void SetState_SheetMarginWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

The [`UseCustomSheet`](#usecustomsheet) property must be set to false before you can massage the attributes for the schematic sheet.

### SheetSizeX

The `SheetSizeX` property defines the width of the sheet.

```csharp
int GetState_SheetSizeX();
void SetState_SheetSizeX(int argValue);
```

**Type:** `int` · **Access:** read/write

**See also:** [ISch_Document.SheetSizeY](#sheetsizey)

### SheetSizeY

The `SheetSizeY` property defines the height of the sheet.

```csharp
int GetState_SheetSizeY();
void SetState_SheetSizeY(int argValue);
```

**Type:** `int` · **Access:** read/write

### SheetStyle

The `SheetStyle` property determines the document standard style. One of the document sheet styles are A4, Letter and imperial/metric sized sheets.

```csharp
TSheetStyle GetState_SheetStyle();
void SetState_SheetStyle(TSheetStyle argValue);
```

**Type:** [TSheetStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetStyle.md) · **Access:** read/write

The accessors are extension methods of `ISch_DocumentHelper` (`using SCH;`).

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

### SheetZonesX

*No description yet.*

```csharp
int GetState_SheetZonesX();
void SetState_SheetZonesX(int argValue);
```

**Type:** `int` · **Access:** read/write

### SheetZonesY

*No description yet.*

```csharp
int GetState_SheetZonesY();
void SetState_SheetZonesY(int argValue);
```

**Type:** `int` · **Access:** read/write

### ShowTemplateGraphics

The template is usually placed on the bottom right of the schematic sheet. The template files have a DOT extension and are located in the \Templates\ folder of the Altium Designer software installation.

```csharp
bool GetState_ShowTemplateGraphics();
void SetState_ShowTemplateGraphics(bool argValue);
```

**Type:** `bool` · **Access:** read/write

The property determines whether the template graphics are displayed or not.

### SnapGridOn

The snap grid is the grid that the cursor is locked to when placing or manipulating objects on the sheet. This grid should be left on at all times except when specifically placing or moving objects that need to be off grid such as text objects. The visible grid is the grid you see on the grid which acts as a visual grid and typically it is set to be the same as or a multiple of the snap grid.

```csharp
bool GetState_SnapGridOn();
void SetState_SnapGridOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### SnapGridSize

The snap grid is the grid that the cursor is locked to when placing or manipulating objects on the sheet. This grid should be left on at all times except when specifically placing or moving objects that need to be off grid such as text objects. The visible grid is the grid you see on the grid which acts as a visual grid and typically it is set to be the same as or a multiple of the snap grid.

```csharp
int GetState_SnapGridSize();
void SetState_SnapGridSize(int argValue);
```

**Type:** `int` · **Access:** read/write

### SystemFont

*No description yet.*

```csharp
int GetState_SystemFont();
void SetState_SystemFont(int argValue);
```

**Type:** `int` · **Access:** read/write

### TemplateFileName

The template filename is the filename of the template that is placed usually on the bottom right of the schematic sheet. The template files have a DOT extension and are located in the \Templates\ folder of Altium Designer software installation.

```csharp
string GetState_TemplateFileName();
void SetState_TemplateFileName(string argValue);
```

**Type:** `string` · **Access:** read/write

**See also:** [ISch_Document.ShowTemplateGraphics](#showtemplategraphics)

### TitleBlockOn

*No description yet.*

```csharp
bool GetState_TitleBlockOn();
void SetState_TitleBlockOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

**See also:** [ISch_Document.DocumentBorderStyle](#documentborderstyle)

### Unit

This property determines the system unit used for the schematic project. The available imperial units are Mils, inches, DXP default and Auto imperial as well as available metric units which are mm,cm,metres and autometric.

```csharp
TUnit GetState_Unit();
void SetState_Unit(TUnit argValue);
```

**Type:** [TUnit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TUnit.md) · **Access:** read/write

The accessors are extension methods of `ISch_DocumentHelper` (`using SCH;`).

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

### UnitSystem

*No description yet.*

```csharp
TUnitSystem GetState_UnitSystem();
```

**Type:** [TUnitSystem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TUnitSystem.md) · **Access:** read-only

The accessors are extension methods of `ISch_DocumentHelper` (`using SCH;`).

### UseCustomSheet

The property determines whether a custom sheet is used instead of a standard sheet. If the `UseCustomSheet` is true, then the [`CustomMarginWidth`](#custommarginwidth), [`CustomSheetStyle`](#customsheetstyle), [`CustomX`](#customx) and [`CustomY`](#customy) properties can be set for this custom sheet property.

```csharp
bool GetState_UseCustomSheet();
void SetState_UseCustomSheet(bool argValue);
```

**Type:** `bool` · **Access:** read/write

**See also:** [ISch_Document.CustomX](#customx), [ISch_Document.CustomY](#customy), [ISch_Document.CustomSheetStyle](#customsheetstyle), [ISch_Document.CustomMarginWidth](#custommarginwidth)

### VisibleGridOn

The electrical grid supports the Schematic Editor's guided wiring feature. When you are moving an electrical object in the workspace, and when it falls within the electrical grid range of another electrical object that you could connect to, the object you are moving will snap to the fixed object and a hot spot or highlight dot will appear. This dot guides you as to where a valid connection can be made. The electrical grid (hot spot) should be set slightly lower than the current snap grid or else it becomes difficult to position electrical objects one snap grid apart.

```csharp
bool GetState_VisibleGridOn();
void SetState_VisibleGridOn(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### VisibleGridSize

*No description yet.*

```csharp
int GetState_VisibleGridSize();
void SetState_VisibleGridSize(int argValue);
```

**Type:** `int` · **Access:** read/write

### WorkspaceOrientation

This method sets the orientation of the workspace - either as a portrait or as a landscape format.

```csharp
TSheetOrientation GetState_WorkspaceOrientation();
void SetState_WorkspaceOrientation(TSheetOrientation argValue);
```

**Type:** [TSheetOrientation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TSheetOrientation.md) · **Access:** read/write

The accessors are extension methods of `ISch_DocumentHelper` (`using SCH;`).

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [BoundingRectangle_Selected](#boundingrectangle_selected) | [CoordRect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/CoordRect.md) | The method returns the coordinates of the selected bounding rectangle on the current schematic document. |
| [ChooseLocationInteractively](#chooselocationinteractively) | `bool` | To monitor the mouse movement and clicks from your extension, the `ISch_Document` document interface and its descendant interfaces, [`ISch_Lib`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md) and [`ISch_Sheet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md) interfaces has several interactive feedback m… |
| [ChooseRectangleInteractively](#chooserectangleinteractively) | `bool` | To monitor the mouse movement and clicks from your extension, the `ISch_Document` document interface and its descendant interfaces, [`ISch_Lib`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md) and [`ISch_Sheet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md) interfaces has several interactive feedback m… |
| [CountContextMenuObjects](#countcontextmenuobjects) | `int` | The method counts the contextual objects based on an object set. |
| [CreateHitTest](#createhittest) | [ISch_HitTest](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) | The `CreateHitTest` method creates an hit test object which is represented by the [`ISch_HitTest`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) interface with the ATestMode and ALocation parameters. |
| [CreateLibraryFromProject](#createlibraryfromproject) | `void` | This method creates a schematic library based on the components on a schematic project. |
| [GenerateUniqueID](#generateuniqueid) | `string` |  |
| [GetPropsRevisionGUID](#getpropsrevisionguid) | `string` |  |
| [GetPropsVaultGUID](#getpropsvaultguid) | `string` |  |
| [GetTemplateItemGUID](#gettemplateitemguid) | `string` |  |
| [GetTemplateRevisionGUID](#gettemplaterevisionguid) | `string` |  |
| [GetTemplateRevisionHRID](#gettemplaterevisionhrid) | `string` |  |
| [GetTemplateVaultGUID](#gettemplatevaultguid) | `string` |  |
| [GetTemplateVaultHRID](#gettemplatevaulthrid) | `string` |  |
| [Graphical_VirtualRectangle](#graphical_virtualrectangle) | [CoordRect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/CoordRect.md) | The method returns the coordinates of TCoordRect type of the virtual rectangle of the graphical window in Altium Designer. |
| [GridCoordinateClosest](#gridcoordinateclosest) | `int` |  |
| [GridCoordinateUp](#gridcoordinateup) | `int` |  |
| [HasServerDocument](#hasserverdocument) | `bool` |  |
| [IsInEditorView](#isineditorview) | `bool` |  |
| [LockViewUpdate](#lockviewupdate) | `void` | This method prevents the views of Schematic documents and panels from being refreshed or updated. |
| [Notify_FullUpdate](#notify_fullupdate) | `void` |  |
| [ObjectReferenceZone](#objectreferencezone) | `string` | The method returns the reference zone string for the design object on the schematic sheet. |
| [PopupMenuHitTest](#popupmenuhittest) | [ISch_HitTest](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) |  |
| [RecreateHandles](#recreatehandles) | `void` |  |
| [RedrawToDC](#redrawtodc) | `void` | The DC parameter is a Handle of the canvas (a encapsulation of a device context). |
| [RegisterSchObjectInContainer](#registerschobjectincontainer) | `void` | The `RegisterSchObjectInContainer` method registers the object of [`ISch_BasicContainer`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) type (including its descendants) in the parent object itself. |
| [SetPreferencesInfo](#setpreferencesinfo) | `void` |  |
| [SetTemplateInfo](#settemplateinfo) | `void` |  |
| [UnLockViewUpdate](#unlockviewupdate) | `void` | This method allows the views of Schematic documents and panels from being refreshed or updated after being locked by the [`LockViewUpdate`](#lockviewupdate) method. |
| [UnregisterAndFreeAllConnectionLines](#unregisterandfreeallconnectionlines) | `void` | When this method is invoked, the connection lines are unregistered and freed from the database associated with the schematic document. |
| [UnRegisterSchObjectFromContainer](#unregisterschobjectfromcontainer) | `void` | When a schematic object is unregistered from the container, it is explicitly freed and cannot be used again. |
| [UpdateDisplayForCurrentSheet](#updatedisplayforcurrentsheet) | `void` |  |
| [UpdateDocumentProperties](#updatedocumentproperties) | `void` | This method forces an update of the document properties after the properties have been modified programmatically. |

### BoundingRectangle_Selected

The method returns the coordinates of the selected bounding rectangle on the current schematic document.

```csharp
CoordRect BoundingRectangle_Selected();
```

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

Extension method of `ISch_DocumentHelper` (`using SCH;`).

**Example:** Get the extent of the selected objects on the current schematic sheet in mils.

```csharp
using SCH;

ISch_Document sheet = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if (sheet == null)
    return;
CoordRect rect = sheet.BoundingRectangle_Selected();
int minX = (int)Math.Floor(EDP.Utils.CoordToMils(rect.X1));
int minY = (int)Math.Floor(EDP.Utils.CoordToMils(rect.Y1));
int maxX = (int)Math.Ceiling(EDP.Utils.CoordToMils(rect.X2));
int maxY = (int)Math.Ceiling(EDP.Utils.CoordToMils(rect.Y2));
```

### ChooseLocationInteractively

To monitor the mouse movement and clicks from your extension, the `ISch_Document` document interface and its descendant interfaces, [`ISch_Lib`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md) and [`ISch_Sheet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md) interfaces has several interactive feedback methods. The `ChooseLocationInteractively` when invoked prompts the user to set the location (point) on the schematic sheet.

```csharp
bool ChooseLocationInteractively(ref Point argLocation, string argPrompt);
bool ChooseLocationInteractively(ref IPoint argLocation, string argPrompt);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argLocation` | [Point](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Point.md) | ref |
| `argPrompt` | `string` | value |

**Returns:** `bool`

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

The ChooseLocationinteractively method can be used to fetch the coordinates of the clicked point on the schematic sheet and can be used for the [`ISch_HitTest`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) interface.

**Example:** Ask the user to click a location on the current schematic sheet.

```csharp
using DXP;
using SCH;

ISch_ServerInterface schServer = SCH.GlobalVars.SchServer;
if (schServer == null)
    return;
ISch_Document currentSheet = schServer.GetCurrentSchDocument();
if (currentSheet == null)
    return;
var location = new DXP.Point(new SPoint());
// Use the ChooseLocationInteractively method to capture the
// coordinates of the location clicked on the sheet by the user.
if (!currentSheet.ChooseLocationInteractively(ref location, "Please select the location"))
    return;
```

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

### ChooseRectangleInteractively

To monitor the mouse movement and clicks from your extension, the `ISch_Document` document interface and its descendant interfaces, [`ISch_Lib`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Lib.md) and [`ISch_Sheet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Sheet.md) interfaces has several interactive feedback methods. The ChooseRectangleinteractively when invoked prompts the user to set the two corners of the bounding rectangle on the schematic sheet.

```csharp
bool ChooseRectangleInteractively(ref CoordRect argRect, string argPrompt1, string argPrompt2);
bool ChooseRectangleInteractively(ref ICoordRect argRect, string argPrompt1, string argPrompt2);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRect` | [CoordRect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/CoordRect.md) | ref |
| `argPrompt1` | `string` | value |
| `argPrompt2` | `string` | value |

**Returns:** `bool`

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

The ChooseRectangleinteractively method can be used to fetch the coordinates of the bounding rectangle (of TCoordRect type) for the Spatial iterator where it needs the bounds of a rectangle on the schematic document to search within.

**Example:** Iterate over the junctions and components in an area the user selects.

```csharp
using SCH;

ISch_Document currentSheet = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if (currentSheet == null)
    return;

var rect = new CoordRect();
if (!currentSheet.ChooseRectangleInteractively(ref rect, "Please select the first corner", "Please select the final corner"))
    return;

ISch_Iterator spatialIterator = currentSheet.SchIterator_Create();
if (spatialIterator == null)
    return;
try
{
    spatialIterator.AddFilter_ObjectSet(new SCH.TObjectSet { TObjectId.eJunction, TObjectId.eSchComponent });
    spatialIterator.AddFilter_Area(rect.Left, rect.Bottom, rect.Right, rect.Top);
    for (var graphicalObject = spatialIterator.FirstSchObject() as ISch_GraphicalObject; graphicalObject != null;
         graphicalObject = spatialIterator.NextSchObject() as ISch_GraphicalObject)
    {
        // Do what you want with the design object.
    }
}
finally
{
    currentSheet.SchIterator_Destroy(ref spatialIterator);
}
```

### CountContextMenuObjects

The method counts the contextual objects based on an object set.

```csharp
int CountContextMenuObjects(TObjectSet argObjectSet);
int CountContextMenuObjects(ITransportSet argObjectSet);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argObjectSet` | [TObjectSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TObjectSet.md) | value | The object set the contextual objects are counted by. |

**Returns:** `int`

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

**Example:** Check whether the context menu objects of the current schematic document include components.

```csharp
using SCH;

ISch_Document schDoc = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
bool visible = (schDoc != null) && (schDoc.CountContextMenuObjects(new SCH.TObjectSet { TObjectId.eSchComponent }) > 0);
```

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

### CreateHitTest

The `CreateHitTest` method creates an hit test object which is represented by the [`ISch_HitTest`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) interface with the ATestMode and ALocation parameters.

```csharp
ISch_HitTest CreateHitTest(THitTestMode argTestMode, Point argLocation);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argTestMode` | [THitTestMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/THitTestMode.md) | value |
| `argLocation` | [Point](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Point.md) | value |

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

Extension method of `ISch_DocumentHelper` (`using SCH;`).

With this [`ISch_HitTest`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md) interface, the number of objects and the object type at a particular point on the schematic document can be returned.

**Example:** Report the objects under a location the user clicks on the current schematic sheet.

```csharp
using DXP;
using SCH;

ISch_Document doc = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if (doc == null)
    return;
var location = new DXP.Point(new SPoint());
doc.ChooseLocationInteractively(ref location, "Choose a location to click");
THitTestMode hitTestMode = THitTestMode.eHitTest_AllObjects;
ISch_HitTest hitTest = doc.CreateHitTest(hitTestMode, location);
for (int i = 0; i < hitTest.GetState_HitTestCount(); i++)
{
    ISch_GraphicalObject prim = hitTest.GetState_HitObject(i);
    DXP.Utils.ShowInfo(prim.GetState_ObjectId().ToString()
        + "\r" +
        "Location coordinates - "
        + "\r" +
        " X= "
        + location.X
        + "\r" +
        " Y= "
        + location.Y, "Hit test");
}
```

**See also:** [ISch_HitTest](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_HitTest.md), [THitTestMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/THitTestMode.md), [ISch_Document.ChooseLocationInteractively](#chooselocationinteractively)

### CreateLibraryFromProject

This method creates a schematic library based on the components on a schematic project.

```csharp
void CreateLibraryFromProject(bool argddLibToProject, string argFileName, bool argRunQuiet);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argddLibToProject` | `bool` | value | If true, the created library is put in the same project where the components are in. |
| `argFileName` | `string` | value |  |
| `argRunQuiet` | `bool` | value | If true, the Information dialog does not come up. |

**Returns:** nothing (`void`)

**Example:** Create a schematic library from the components of the current project.

```csharp
using SCH;

ISch_Document currentSheet = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if ((currentSheet == null) || (currentSheet.GetState_ObjectId() == TObjectId.eSchLib))
{
    DXP.Utils.ShowError("Please run this on a schematic document.", "Create library");
    return;
}
currentSheet.CreateLibraryFromProject(true, "NewLibrary.SchLib", false);
```

### GenerateUniqueID

*No description yet.*

```csharp
string GenerateUniqueID();
```

**Returns:** `string`

### GetPropsRevisionGUID

*No description yet.*

```csharp
string GetPropsRevisionGUID();
```

**Returns:** `string`

### GetPropsVaultGUID

*No description yet.*

```csharp
string GetPropsVaultGUID();
```

**Returns:** `string`

### GetTemplateItemGUID

*No description yet.*

```csharp
string GetTemplateItemGUID();
```

**Returns:** `string`

### GetTemplateRevisionGUID

*No description yet.*

```csharp
string GetTemplateRevisionGUID();
```

**Returns:** `string`

### GetTemplateRevisionHRID

*No description yet.*

```csharp
string GetTemplateRevisionHRID();
```

**Returns:** `string`

### GetTemplateVaultGUID

*No description yet.*

```csharp
string GetTemplateVaultGUID();
```

**Returns:** `string`

### GetTemplateVaultHRID

*No description yet.*

```csharp
string GetTemplateVaultHRID();
```

**Returns:** `string`

### Graphical_VirtualRectangle

The method returns the coordinates of TCoordRect type of the virtual rectangle of the graphical window in Altium Designer.

```csharp
CoordRect Graphical_VirtualRectangle();
```

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

Extension method of `ISch_DocumentHelper` (`using SCH;`).

**Example:** Get the extent of the current schematic sheet in mils.

```csharp
using SCH;

ISch_Document sheet = SCH.GlobalVars.SchServer?.GetCurrentSchDocument();
if (sheet == null)
    return;
CoordRect rect = sheet.Graphical_VirtualRectangle();
int minX = (int)Math.Floor(EDP.Utils.CoordToMils(rect.X1));
int minY = (int)Math.Floor(EDP.Utils.CoordToMils(rect.Y1));
int maxX = (int)Math.Ceiling(EDP.Utils.CoordToMils(rect.X2));
int maxY = (int)Math.Ceiling(EDP.Utils.CoordToMils(rect.Y2));
```

### GridCoordinateClosest

*No description yet.*

```csharp
int GridCoordinateClosest(int argCoord);
```

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

**Returns:** `int`

### GridCoordinateUp

*No description yet.*

```csharp
int GridCoordinateUp(int argCoord);
```

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

**Returns:** `int`

### HasServerDocument

*No description yet.*

```csharp
bool HasServerDocument();
```

**Returns:** `bool`

### IsInEditorView

*No description yet.*

```csharp
bool IsInEditorView();
```

**Returns:** `bool`

### LockViewUpdate

This method prevents the views of Schematic documents and panels from being refreshed or updated. This is especially used in the situations when a component is being created in the Schematic Library Editor. See the [`UnLockViewUpdate`](#unlockviewupdate) method.

```csharp
void LockViewUpdate();
```

**Returns:** nothing (`void`)

**See also:** [ISch_Document.UnLockViewUpdate](#unlockviewupdate)

### Notify_FullUpdate

*No description yet.*

```csharp
void Notify_FullUpdate();
```

**Returns:** nothing (`void`)

### ObjectReferenceZone

The method returns the reference zone string for the design object on the schematic sheet. For example, if a sheet entry object is in the vicinity of Reference Zone C (vertically) and 2 (horizontally) for a Standard Style A document then the method will return a 2C for this sheet entry.

```csharp
string ObjectReferenceZone(ISch_BasicContainer argObject);
string ObjectReferenceZone(object argObject);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argObject` | [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) | value |

**Returns:** `string`

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### PopupMenuHitTest

*No description yet.*

```csharp
ISch_HitTest PopupMenuHitTest();
```

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

Extension method of `ISch_DocumentHelper` (`using SCH;`).

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

### RecreateHandles

*No description yet.*

```csharp
void RecreateHandles();
```

**Returns:** nothing (`void`)

### RedrawToDC

The DC parameter is a Handle of the canvas (a encapsulation of a device context).

```csharp
void RedrawToDC(uint argDC, int argPrintKind, int argPrintWhat);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argDC` | `uint` | value |
| `argPrintKind` | `int` | value |
| `argPrintWhat` | `int` | value |

**Returns:** nothing (`void`)

### RegisterSchObjectInContainer

The `RegisterSchObjectInContainer` method registers the object of [`ISch_BasicContainer`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) type (including its descendants) in the parent object itself. In this case, the document registers a new design object. For example when you create a new port object, you are required to register the port object in the schematic document.

```csharp
void RegisterSchObjectInContainer(ISch_BasicContainer argObject);
void RegisterSchObjectInContainer(object argObject);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argObject` | [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### SetPreferencesInfo

*No description yet.*

```csharp
void SetPreferencesInfo(string argVaultGUID, string argRevisionGUID);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argVaultGUID` | `string` | value |
| `argRevisionGUID` | `string` | value |

**Returns:** nothing (`void`)

### SetTemplateInfo

*No description yet.*

```csharp
void SetTemplateInfo(string argVaultGUID, string argItemGUID, string argRevisionGUID, string argVaultHRID, string argRevisionHRID);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argVaultGUID` | `string` | value |
| `argItemGUID` | `string` | value |
| `argRevisionGUID` | `string` | value |
| `argVaultHRID` | `string` | value |
| `argRevisionHRID` | `string` | value |

**Returns:** nothing (`void`)

### UnLockViewUpdate

This method allows the views of Schematic documents and panels from being refreshed or updated after being locked by the [`LockViewUpdate`](#lockviewupdate) method. This is especially used in the situations when a component is being created in the Schematic Library Editor. See the [`LockViewUpdate`](#lockviewupdate) method.

```csharp
void UnLockViewUpdate();
```

**Returns:** nothing (`void`)

**See also:** [ISch_Document.LockViewUpdate](#lockviewupdate)

**Examples:** [Extension_ModifySchWireColor](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ModifySchWireColor/Source%20Code/Commands.cs#L41)

### UnregisterAndFreeAllConnectionLines

When this method is invoked, the connection lines are unregistered and freed from the database associated with the schematic document.

```csharp
void UnregisterAndFreeAllConnectionLines();
```

**Returns:** nothing (`void`)

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

### UnRegisterSchObjectFromContainer

When a schematic object is unregistered from the container, it is explicitly freed and cannot be used again.

```csharp
void UnRegisterSchObjectFromContainer(ISch_BasicContainer argObject);
void UnRegisterSchObjectFromContainer(object argObject);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argObject` | [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `ISch_DocumentHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### UpdateDisplayForCurrentSheet

*No description yet.*

```csharp
void UpdateDisplayForCurrentSheet();
```

**Returns:** nothing (`void`)

### UpdateDocumentProperties

This method forces an update of the document properties after the properties have been modified programmatically.

```csharp
void UpdateDocumentProperties();
```

**Returns:** nothing (`void`)

## Inherited members

- From [ISch_ParametrizedGroup](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ParametrizedGroup.md): [Import_FromUser_Parameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ParametrizedGroup.md#import_fromuser_parameters), [ResetAllSchParametersPosition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ParametrizedGroup.md#resetallschparametersposition)
- From [ISch_GraphicalObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md): [AddErrorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#adderrorstring), [AreaColor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#areacolor), [BoundingRectangle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#boundingrectangle), [BoundingRectangle_Full](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#boundingrectangle_full), [Color](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#color), [CompilationMasked](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#compilationmasked), [Dimmed](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#dimmed), [Disabled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#disabled), [DisplayError](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#displayerror), [EnableDraw](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#enabledraw), [ErrorColor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorcolor), [ErrorKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorkind), [ErrorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#errorstring), [GetHash](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#gethash), [GraphicallyInvalidate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#graphicallyinvalidate), [LiveHighlightValue](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#livehighlightvalue), [Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#location), [Mirror](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#mirror), [MoveByXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#movebyxy), [MoveToXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#movetoxy), [OwnerPartDisplayMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#ownerpartdisplaymode), [OwnerPartId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#ownerpartid), [ResetErrorFields](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#reseterrorfields), [RotateBy90](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#rotateby90), [Selection](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#selection), [SetState_xSizeySize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_GraphicalObject.md#setstate_xsizeysize)
- From [ISch_BasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md): [AddAndPositionSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#addandpositionschobject), [AddSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#addschobject), [CopyTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#copyto), [DeleteAll](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#deleteall), [DescriptionString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#descriptionstring), [ExportToParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#exporttoparameters), [FreeAllContainedObjects](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#freeallcontainedobjects), [Handle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#handle), [IdentifierString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#identifierstring), [Import_FromUser](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#import_fromuser), [ObjectId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#objectid), [OwnerSchDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#ownerschdocument), [RemoveSchObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#removeschobject), [Replicate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#replicate), [SchBasicContainer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schbasiccontainer), [SchIterator_Create](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schiterator_create), [SchIterator_Destroy](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schiterator_destroy), [SchParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#schparameterbyname), [Setstate_Default](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#setstate_default), [Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#text), [UniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#uniqueid), [WiringDiagramOriginUniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#wiringdiagramoriginuniqueid)

## Returned by

[IDocumentPainterView.DocumentToPaint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDocumentPainterView.md#documenttopaint), [ISch_BasicContainer.OwnerSchDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_BasicContainer.md#ownerschdocument), [ISch_ServerInterface.GetCurrentSchDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md#getcurrentschdocument), [ISch_ServerInterface.GetSchDocumentByPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md#getschdocumentbypath), [ISch_ServerInterface.GetSchDocumentBySchDocID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md#getschdocumentbyschdocid), [ISch_ServerInterface.LoadSchDocumentByPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md#loadschdocumentbypath)

## Examples

Used in the SDK examples: [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L76), [Extension_ModifySchWireColor](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ModifySchWireColor/Source%20Code/Commands.cs#L29), [Extension_PlaceDeviceSheet](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PlaceDeviceSheet/Source%20Code/Commands.cs#L46), [Extension_RefreshDocument](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_RefreshDocument/Source%20Code/Commands.cs#L29).
