    

 ## On this page

  

 

 # Class ChainedSystemAPI

 Last update: 16.07.2025 

Namespace: [VM.API.Pre.Links](VM.API.Pre.Links.md)  
Assembly: VM.API.Pre.Links.dll

This class implements APIs for chained system.

```csharp
public static class ChainedSystemAPI

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [ChainedSystemAPI](VM.API.Pre.Links.ChainedSystemAPI.md)

#### Extension Methods

[LinkPropertyItemCache.GetLinkProperties(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkProperties_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkPropertiesAndValues(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkPropertiesAndValues_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkedObjects&lt;T&gt;(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Methods

### AddObjectToActiveDocument(Obj, int, int, IEnumerable&lt;string&gt;, IEnumerable&lt;TMatrix&gt;, IEnumerable&lt;Document3D&gt;, bool)

Add object to active document.

```csharp
[NotNullObj(new string[] { "chainedPlacing" })]
[NotNull(new string[] { "preFixed", "transforms", "segmentDocuments" })]
[MatchTypeObj(new object[] { "chainedPlacing", typeof(ChainedPlacing) })]
public static IEnumerable<Obj> AddObjectToActiveDocument(this Obj chainedPlacing, int numberOfSegment, int numberOfSegmentData, IEnumerable<string> preFixed, IEnumerable<TMatrix> transforms, IEnumerable<Document3D> segmentDocuments, bool isCreate)

```

#### Parameters

`chainedPlacing` Obj

The chained placing to add object.

`numberOfSegment` [int](https://learn.microsoft.com/dotnet/api/system.int32)

The number of segment.

`numberOfSegmentData` [int](https://learn.microsoft.com/dotnet/api/system.int32)

The number of segment data.

`preFixed` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[string](https://learn.microsoft.com/dotnet/api/system.string)&gt;

The pre-fixed names. The length is 'numberOfSegmentData'.

`transforms` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;TMatrix&gt;

The segment transforms. The length is 'numberOfSegment'.

`segmentDocuments` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;Document3D&gt;

The segment data documents. The length is 'numberOfSegmentData'.

`isCreate` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

The create flag. If operation is modify state, You can put the value in 'false'.

#### Returns

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;Obj&gt;

The new segment list

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'chainedPlacing' arguments are empty.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'chainedPlacing' is not .

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'preFixed', 'transforms', 'segmentDocuments' arguments are empty.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if 'numberOfSegmentData' value is greater than 'numberOfSegment' value.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if the length of 'preFixed' is not equal 'numberOfSegmentData' value.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if the length of 'segmentDocuments' is not equal 'numberOfSegmentData' value.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if the length of 'transforms' is not equal 'numberOfSegment' value.

### ChangeObjectLayer(Obj, IEnumerable&lt;Obj&gt;, IEnumerable&lt;bool&gt;)

Change object layer.

```csharp
[NotNullObj(new string[] { "chainedPlacing" })]
[NotNull(new string[] { "visibleObjects", "visibleStates" })]
[MatchTypeObj(new object[] { "chainedPlacing", typeof(ChainedPlacing) })]
public static void ChangeObjectLayer(this Obj chainedPlacing, IEnumerable<Obj> visibleObjects, IEnumerable<bool> visibleStates)

```

#### Parameters

`chainedPlacing` Obj

The chained placing to change object.

`visibleObjects` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;Obj&gt;

The objects to be changed.

`visibleStates` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[bool](https://learn.microsoft.com/dotnet/api/system.boolean)&gt;

The vislble flags.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'chainedPlacing' arguments are empty.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'chainedPlacing' is not .

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'visibleObjects', 'visibleStates' argument is empty.

### CreateCenter(DocumentChainedPath, string, Color?, bool)

Create center roller  with  builder.

```csharp
public static Obj CreateCenter(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the center roller solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateCenter(PartDocumentChainedPath, Color?)

Create center roller  with  builder in part.

```csharp
public static Obj CreateCenter(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the center roller body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateChainedSystem(SubSystemDocument, IEnumerable&lt;Obj&gt;, string)

Create chained system .

```csharp
[NotNull(new string[] { "document", "pathList" })]
public static Obj CreateChainedSystem(this SubSystemDocument document, IEnumerable<Obj> pathList, string name = "")

```

#### Parameters

`document` SubSystemDocument

The document to create the chained system.

`pathList` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;Obj&gt;

The path list.

`name` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'CPlacing\_' will be generated and used.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' , 'pathList' are null.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if item type of 'pathList' is not .

### CreateDouble(DocumentChainedPath, string, Color?, bool)

Create double roller  with  builder.

```csharp
public static Obj CreateDouble(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the double roller solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateDouble(PartDocumentChainedPath, Color?)

Create double roller  with  builder in part.

```csharp
public static Obj CreateDouble(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the double roller body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateFlat(DocumentChainedPath, string, Color?, bool)

Create flat roller  with  builder.

```csharp
public static Obj CreateFlat(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the flat roller solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateFlat(PartDocumentChainedPath, Color?)

Create flat roller  with  builder in part.

```csharp
public static Obj CreateFlat(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the flat roller body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateGeneral(DocumentChainedPath, string, Color?, bool)

Create general roller  with  builder.

```csharp
public static Obj CreateGeneral(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the general roller solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateGeneral(PartDocumentChainedPath, Color?)

Create general roller  with  builder in part.

```csharp
public static Obj CreateGeneral(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the general roller body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateSingle(DocumentChainedPath, string, Color?, bool)

Create single roller  with  builder.

```csharp
public static Obj CreateSingle(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the single roller solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateSingle(PartDocumentChainedPath, Color?)

Create single roller  with  builder in part.

```csharp
public static Obj CreateSingle(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the single roller body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateSprocket(DocumentChainedPath, string, Color?, bool)

Create sprocket  with  builder.

```csharp
[NotNull(new string[] { "document" })]
public static Obj CreateSprocket(this DocumentChainedPath document, string bodyName = "", Color? color = null, bool isInterface = false)

```

#### Parameters

`document` DocumentChainedPath

The document to create the sprocket solid body.

`bodyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

The name of the . If empty, default name starts with 'BD\_' will be generated and used.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

`isInterface` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

'true' if it is interface body. Otherwise, 'false'.

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### CreateSprocket(PartDocumentChainedPath, Color?)

Create sprocket  with  builder in part.

```csharp
[NotNull(new string[] { "document" })]
public static Obj CreateSprocket(this PartDocumentChainedPath document, Color? color = null)

```

#### Parameters

`document` PartDocumentChainedPath

The document to create the sprocket body.

`color` [Color](https://learn.microsoft.com/dotnet/api/system.drawing.color)?

The color of the new flat roller geometry. The default value is '0xBFAAAA'

#### Returns

Obj

The new  object that is created by this API.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'document' is null.

### DeleteObjectList(Obj, IEnumerable&lt;Obj&gt;)

Add object to active document.

```csharp
[NotNullObj(new string[] { "chainedPlacing" })]
[NotNull(new string[] { "deletedObjects" })]
[MatchTypeObj(new object[] { "chainedPlacing", typeof(ChainedPlacing) })]
public static void DeleteObjectList(this Obj chainedPlacing, IEnumerable<Obj> deletedObjects)

```

#### Parameters

`chainedPlacing` Obj

The chained placing to delete object.

`deletedObjects` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;Obj&gt;

The objects to be deleted.

#### Exceptions

[ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

Will be thrown if 'chainedPlacing' arguments are empty.

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'chainedPlacing' is not .

[ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

Will be thrown if type of 'deletedObjects' argument is empty.