    

 ## On this page

  

 

 # Class Topology

 Last update: 09.03.2026 

<a id="VM_Managed_CAD_Topology"></a>

Namespace: [VM.Managed.CAD](VM.Managed.CAD.md)  
Assembly: VMAppCore.dll

This base class is to represent the Topology.

```csharp
public abstract class Topology : Object<ObjectEventCore>, IObservableObject, IDisposableObject, ILinkable, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, ILinkContainerEvent, IVerifiable, IHistoryObjectSerializable, IAttributeContainer, ITopology

```

#### Inheritance

object ← ObservableObject ← [LinkableBase](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/LinkableBase.cs) ← [ObjectBase](VM.Managed.ObjectBase.md) ← [Object&lt;ObjectEventCore&gt;](VM.Managed.Object-1.md) ← [Topology](VM.Managed.CAD.Topology.md)

#### Derived

[Edge](VM.Managed.CAD.Edge.md), [Face](VM.Managed.CAD.Face.md), [Vertex](VM.Managed.CAD.Vertex.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, [ILinkContainerEvent](VM.Managed.ILinkContainerEvent.md), [IVerifiable](VM.Managed.IVerifiable.md), [IHistoryObjectSerializable](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/ClassicPre/Data/VMHist/Interfaces.cs), [IAttributeContainer](VM.Managed.IAttributeContainer.md), [ITopology](VM.Managed.ITopology.md)

#### Inherited Members

[Object&lt;ObjectEventCore&gt;.GetKey()](VM.Managed.Object-1.md#VM_Managed_Object_1_GetKey), [Object&lt;ObjectEventCore&gt;.Initialize(Unit.ConvertFactor)](VM.Managed.Object-1.md#VM_Managed_Object_1_Initialize_VM_Unit_ConvertFactor_), [Object&lt;ObjectEventCore&gt;.SetIconColor(Canvas)](VM.Managed.Object-1.md#VM_Managed_Object_1_SetIconColor_VM_CAD_Kernel_Render_Canvas_), [Object&lt;ObjectEventCore&gt;.OnDeserialization(object)](VM.Managed.Object-1.md#VM_Managed_Object_1_OnDeserialization_System_Object_), [Object&lt;ObjectEventCore&gt;.CustomGetObjectData(SerializationInfo, StreamingContext)](VM.Managed.Object-1.md#VM_Managed_Object_1_CustomGetObjectData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [Object&lt;ObjectEventCore&gt;.RollbackEvent()](VM.Managed.Object-1.md#VM_Managed_Object_1_RollbackEvent), [Object&lt;ObjectEventCore&gt;.OnDeserializedCore(object)](VM.Managed.Object-1.md#VM_Managed_Object_1_OnDeserializedCore_System_Object_), [Object&lt;ObjectEventCore&gt;.Key](VM.Managed.Object-1.md#VM_Managed_Object_1_Key), [Object&lt;ObjectEventCore&gt;.UntypedEventCore](VM.Managed.Object-1.md#VM_Managed_Object_1_UntypedEventCore), [Object&lt;ObjectEventCore&gt;.EventCore](VM.Managed.Object-1.md#VM_Managed_Object_1_EventCore), [Object&lt;ObjectEventCore&gt;.Attributes](VM.Managed.Object-1.md#VM_Managed_Object_1_Attributes), [ObjectBase.ReplaceEventCore(ObjectEventCore)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ReplaceEventCore_VM_Managed_ObjectEventCore_), [ObjectBase.SetModifiedCore(ModifiedResult.ModifiedType)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetModifiedCore_VM_Managed_ModifiedResult_ModifiedType_), [ObjectBase.AddPostDeserialize(StreamingContext)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_AddPostDeserialize_System_Runtime_Serialization_StreamingContext_), [ObjectBase.LinkAddedToDocumentCore(IOwned, bool)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkAddedToDocumentCore_VM_Models_Pre_IOwned_System_Boolean_), [ObjectBase.SetModified(ModifiedResult.ModifiedType)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetModified_VM_Managed_ModifiedResult_ModifiedType_), [ObjectBase.SetModified()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetModified), [ObjectBase.SetModified(ModifiedResult.ModifiedType, IDocument)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetModified_VM_Managed_ModifiedResult_ModifiedType_VM_Models_Pre_IDocument_), [ObjectBase.DestroyObject(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_DestroyObject_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.DestroyObject(DestroyEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_DestroyObject_VM_Managed_DestroyEventArgs_), [ObjectBase.DestroyObject()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_DestroyObject), [ObjectBase.Initialize(Unit.ConvertFactor)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Initialize_VM_Unit_ConvertFactor_), [ObjectBase.FixUp(ObjectBase)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_FixUp_VM_Managed_ObjectBase_), [ObjectBase.DoWorkAfterUpdateContents()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_DoWorkAfterUpdateContents), [ObjectBase.SetOldNameWithNewEntity(ObjectBase, ObjectBase)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetOldNameWithNewEntity_VM_Managed_ObjectBase_VM_Managed_ObjectBase_), [ObjectBase.SetIconColor(Canvas)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetIconColor_VM_CAD_Kernel_Render_Canvas_), [ObjectBase.RemoveFromCreatedList()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_RemoveFromCreatedList), [ObjectBase.PostAddToDocument()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_PostAddToDocument), [ObjectBase.PostRemoveFromDocument(Document)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_PostRemoveFromDocument_VM_Managed_Document_), [ObjectBase.GetArgumentList(LinkedList&lt;ObjectBase&gt;)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_GetArgumentList_System_Collections_Generic_LinkedList_VM_Managed_ObjectBase__), [ObjectBase.ResetInvalidEntity()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ResetInvalidEntity), [ObjectBase.OnDeserialization(object)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnDeserialization_System_Object_), [ObjectBase.IsSerializableEvent(Delegate)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_IsSerializableEvent_System_Delegate_), [ObjectBase.CustomGetObjectData(SerializationInfo, StreamingContext)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_CustomGetObjectData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [ObjectBase.CheckAndUpdateLink(HashSet&lt;ObjectBase&gt;)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_CheckAndUpdateLink_System_Collections_Generic_HashSet_VM_Managed_ObjectBase__), [ObjectBase.Verify(VerifiedResult)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Verify_VM_Managed_VerifiedResult_), [ObjectBase.ConnectProxy()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ConnectProxy), [ObjectBase.RollbackEvent()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_RollbackEvent), [ObjectBase.LinkRequestUpdating(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkRequestUpdating_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.LinkRequestUpdate(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkRequestUpdate_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.LinkRequestDestroying(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkRequestDestroying_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.LinkRequestDestroy(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkRequestDestroy_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.LinkAddedToDocument(object, AddToDocEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkAddedToDocument_System_Object_VM_Managed_AddToDocEventArgs_), [ObjectBase.LinkRemovedFromDocument(object, RemoveFromDocEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_LinkRemovedFromDocument_System_Object_VM_Managed_RemoveFromDocEventArgs_), [ObjectBase.DisposeManagedResources()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_DisposeManagedResources), [ObjectBase.GetDestroyEventExtraData()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_GetDestroyEventExtraData), [ObjectBase.OnLinkReserved(ILink, object, EventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnLinkReserved_VM_Managed_ILink_System_Object_System_EventArgs_), [ObjectBase.CreateEntityWhenUpdateContents(Action)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_CreateEntityWhenUpdateContents_System_Action_), [ObjectBase.GetObjectByKey(UIntPtr)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_GetObjectByKey_System_UIntPtr_), [ObjectBase.FindObjectOnXmlDeserialize(string)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_FindObjectOnXmlDeserialize_System_String_), [ObjectBase.UpdateContents(XmlReader, ObjectBase, string)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_UpdateContents_System_Xml_XmlReader_VM_Managed_ObjectBase_System_String_), [ObjectBase.UpdateContents(XmlReader, ObjectBase)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_UpdateContents_System_Xml_XmlReader_VM_Managed_ObjectBase_), [ObjectBase.UpdateContents(string, string)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_UpdateContents_System_String_System_String_), [ObjectBase.UpdateContents(string)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_UpdateContents_System_String_), [ObjectBase.SetFlagWhenXMLFile(string, bool)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetFlagWhenXMLFile_System_String_System_Boolean_), [ObjectBase.IsEqualArray&lt;T&gt;(T\[\], T\[\])](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_IsEqualArray__1___0_____0___), [ObjectBase.IsEqualList(List&lt;double&gt;, List&lt;double&gt;)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_IsEqualList_System_Collections_Generic_List_System_Double__System_Collections_Generic_List_System_Double__), [ObjectBase.SetContainer(IOwned, bool)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SetContainer_VM_Models_Pre_IOwned_System_Boolean_), [ObjectBase.GetTargetListForUpdate()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_GetTargetListForUpdate), [ObjectBase.SkipUpdateObjectImpl()](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SkipUpdateObjectImpl), [ObjectBase.raise\_OnUpdating(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnUpdating_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.raise\_OnUpdate(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnUpdate_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.raise\_OnDestroying(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnDestroying_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.raise\_OnDestroy(object, LinkEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnDestroy_System_Object_VM_Managed_LinkEventArgs_), [ObjectBase.raise\_Destroying(object, Identifier)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_Destroying_System_Object_VM_Identifier_), [ObjectBase.raise\_OnAdded(object, AddToDocEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnAdded_System_Object_VM_Managed_AddToDocEventArgs_), [ObjectBase.raise\_OnRemoved(object, RemoveFromDocEventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnRemoved_System_Object_VM_Managed_RemoveFromDocEventArgs_), [ObjectBase.raise\_OnContentsUpdated(object, EventArgs)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_raise_OnContentsUpdated_System_Object_System_EventArgs_), [ObjectBase.Dispose(bool)](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Dispose_System_Boolean_), [ObjectBase.SkipModified](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_SkipModified), [ObjectBase.ClearChildInfoBeforeDeserialize](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ClearChildInfoBeforeDeserialize), [ObjectBase.KeyImpl](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_KeyImpl), [ObjectBase.ID](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ID), [ObjectBase.TopologyEntityTypeName](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_TopologyEntityTypeName), [ObjectBase.ObjectStateForCircularError](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ObjectStateForCircularError), [ObjectBase.ObjectState](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_ObjectState), [ObjectBase.IsChildExternable](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_IsChildExternable), [ObjectBase.IsExternable](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_IsExternable), [ObjectBase.Container](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Container), [ObjectBase.Owner](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Owner), [ObjectBase.Document](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Document), [ObjectBase.UntypedEventCore](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_UntypedEventCore), [ObjectBase.KernelKey](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_KernelKey), [ObjectBase.Key](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Key), [ObjectBase.OnContentsUpdated](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnContentsUpdated), [ObjectBase.OnRemoved](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnRemoved), [ObjectBase.OnAdded](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnAdded), [ObjectBase.Destroying](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_Destroying), [ObjectBase.OnDestroy](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnDestroy), [ObjectBase.OnDestroying](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnDestroying), [ObjectBase.OnUpdate](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnUpdate), [ObjectBase.OnUpdating](VM.Managed.ObjectBase.md#VM_Managed_ObjectBase_OnUpdating), [LinkableBase.OnDeserialization(object)](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/LinkableBase.cs), ObservableObject.Dispose(), ObservableObject.RaisePropertyChanged(string), ObservableObject.RaisePropertyChanged(string, object, object), ObservableObject.Dispose(bool), ObservableObject.DisposeManagedResources(), ObservableObject.DisposeUnmanagedResources(), ObservableObject.IsDisposed, ObservableObject.TryDisposing, ObservableObject.Disposed, ObservableObject.Disposing, ObservableObject.PropertyChanged

#### 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_)

## Constructors

### <a id="VM_Managed_CAD_Topology__ctor_System_String_System_String_System_Boolean_"></a> Topology(string, string, bool)

Initializes a new instance of the  class.

```csharp
protected Topology(string strProxyName, string strBuildInfo, bool IsBuilding)

```

#### Parameters

`strProxyName` string

Name of the proxy.

`strBuildInfo` string

The build information.

`IsBuilding` bool

Whether build or not.

### <a id="VM_Managed_CAD_Topology__ctor"></a> Topology()

Initializes a new instance of the  class.

```csharp
public Topology()

```

## Properties

### <a id="VM_Managed_CAD_Topology_Body"></a> Body

Gets the body of topology.

```csharp
public ObjectBase Body { get; }

```

#### Property Value

[ObjectBase](VM.Managed.ObjectBase.md)

### <a id="VM_Managed_CAD_Topology_Index"></a> Index

Gets the index of topology.

```csharp
public uint Index { get; }

```

#### Property Value

uint

### <a id="VM_Managed_CAD_Topology_IndexCont"></a> IndexCont

Gets the index container.

```csharp
public Topology.IndexContainer IndexCont { get; set; }

```

#### Property Value

[Topology](VM.Managed.CAD.Topology.md).[IndexContainer](VM.Managed.CAD.Topology.IndexContainer.md)

### <a id="VM_Managed_CAD_Topology_IsValid"></a> IsValid

Whether valid or not.

```csharp
public bool IsValid { get; }

```

#### Property Value

bool

## Methods

### <a id="VM_Managed_CAD_Topology_ConnectProxy"></a> ConnectProxy()

```csharp
protected override void ConnectProxy()

```

### <a id="VM_Managed_CAD_Topology_GetColor_System_Drawing_Color__"></a> GetColor(ref Color)

Get color.

```csharp
public bool GetColor(ref Color color)

```

#### Parameters

`color` Color

The color.

#### Returns

bool

`true` if exist color; otherwise, `false`.

### <a id="VM_Managed_CAD_Topology_GetName"></a> GetName()

Gets the name of topology.

```csharp
public string GetName()

```

#### Returns

string

The name of topology.

### <a id="VM_Managed_CAD_Topology_GetPrefixName"></a> GetPrefixName()

Gets the pre fixname of topology.

```csharp
protected virtual string GetPrefixName()

```

#### Returns

string

The pre fixname of topology.

### <a id="VM_Managed_CAD_Topology_GetTypeName"></a> GetTypeName()

Gets the name of topology(edge, face, vertex).

```csharp
public abstract string GetTypeName()

```

#### Returns

string

The name of topology

### <a id="VM_Managed_CAD_Topology_GetUnnamedObjectName_System_Object_"></a> GetUnnamedObjectName(object)

Get an unnamed object name.

```csharp
public string GetUnnamedObjectName(object obUnnamed)

```

#### Parameters

`obUnnamed` object

The unnamed object.

#### Returns

string

The unnamed object name.

### <a id="VM_Managed_CAD_Topology_Initialize_VM_Unit_ConvertFactor_"></a> Initialize(ConvertFactor)

Initializes member through unit convert factor.

```csharp
public override void Initialize(Unit.ConvertFactor factor)

```

#### Parameters

`factor` Unit.ConvertFactor

The unit convert factor.

### <a id="VM_Managed_CAD_Topology_InitializeTopologyName_System_Boolean_"></a> InitializeTopologyName(bool)

Initalize name of topology.

```csharp
public void InitializeTopologyName(bool bForceInit)

```

#### Parameters

`bForceInit` bool

Whether initial force or not.

### <a id="VM_Managed_CAD_Topology_OnDeserialization_System_Object_"></a> OnDeserialization(object)

Called when \[deserialization\].

```csharp
protected override void OnDeserialization(object sender)

```

#### Parameters

`sender` object

The sender.

### <a id="VM_Managed_CAD_Topology_ResetInvalidEntity"></a> ResetInvalidEntity()

```csharp
public override void ResetInvalidEntity()

```