    

 ## On this page

  

 

 # Class NCombinationContact

 Last update: 16.07.2025 

Namespace: [VM.Managed.DAFUL.Contact](VM.Managed.DAFUL.Contact.md)  
Assembly: VMDCt.dll

This base class is to represent the contact of n-combination.

```csharp
public class NCombinationContact : MultipleContactBase, IObservableObject, IDisposableObject, ILinkable, ILinkContainerEvent, IVerifiable, IHistoryObjectSerializable, IAttributeContainer, IContainer, IEntity, IEntityBase, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, IHasName, IEnabled, IHasComment, IVisible, IDocumentOwner, INamed, INavigatorItem, IVisible, IMultiChangable, IHasProperty, IGroup, IEnableForSimulationScenario, IDraw, IDrawIcon, ITemplateObject, IArgument, IReportable, IReferencable, IEntityRelation, IGapSupport

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← ObservableObject ← LinkableBase ← ObjectBase ← Object&lt;EntityEventCore&gt; ← ContainerObject&lt;EntityEventCore&gt; ← EntityBase ← Entity&lt;PropertyMultiContact&gt; ← [Contact&lt;PropertyMultiContact&gt;](VM.Managed.DAFUL.Contact.Contact-1.md) ← [MultipleContactBase](VM.Managed.DAFUL.Contact.MultipleContactBase.md) ← [NCombinationContact](VM.Managed.DAFUL.Contact.NCombinationContact.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, ILinkContainerEvent, IVerifiable, IHistoryObjectSerializable, IAttributeContainer, IContainer, IEntity, IEntityBase, IObjectBase, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, IHasKeyObject, IHasName, IEnabled, IHasComment, IVisible, IDocumentOwner, INamed, INavigatorItem, IVisible, IMultiChangable, IHasProperty, IGroup, IEnableForSimulationScenario, IDraw, IDrawIcon, ITemplateObject, IArgument, IReportable, IReferencable, IEntityRelation, IGapSupport

#### Inherited Members

[MultipleContactBase.UpdateIcon()](VM.Managed.DAFUL.Contact.MultipleContactBase.md#VM_Managed_DAFUL_Contact_MultipleContactBase_UpdateIcon), [MultipleContactBase.IsUseContactType(IContactable, IContactable, MultiContactType)](VM.Managed.DAFUL.Contact.MultipleContactBase.md#VM_Managed_DAFUL_Contact_MultipleContactBase_IsUseContactType_VM_Managed_DAFUL_IContactable_VM_Managed_DAFUL_IContactable_VM_Managed_DAFUL_Contact_MultiContactType_), [MultipleContactBase.IsUseContactType(IContactable, IContactable, MultiContactType, ref bool)](VM.Managed.DAFUL.Contact.MultipleContactBase.md#VM_Managed_DAFUL_Contact_MultipleContactBase_IsUseContactType_VM_Managed_DAFUL_IContactable_VM_Managed_DAFUL_IContactable_VM_Managed_DAFUL_Contact_MultiContactType_System_Boolean__), [MultipleContactBase.MultiContactType](VM.Managed.DAFUL.Contact.MultipleContactBase.md#VM_Managed_DAFUL_Contact_MultipleContactBase_MultiContactType), [MultipleContactBase.ReportTypeImpl](VM.Managed.DAFUL.Contact.MultipleContactBase.md#VM_Managed_DAFUL_Contact_MultipleContactBase_ReportTypeImpl), [Contact&lt;PropertyMultiContact&gt;.UpdateIcon()](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_UpdateIcon), [Contact&lt;PropertyMultiContact&gt;.Draw(Canvas)](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_Draw_VM_CAD_Kernel_Render_Canvas_), [Contact&lt;PropertyMultiContact&gt;.ReDraw()](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_ReDraw), [Contact&lt;PropertyMultiContact&gt;.WriteTemplateImpl(XmlWriter)](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_WriteTemplateImpl_System_Xml_XmlWriter_), [Contact&lt;PropertyMultiContact&gt;.ReadTemplateImpl(XmlReader)](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_ReadTemplateImpl_System_Xml_XmlReader_), [Contact&lt;PropertyMultiContact&gt;.LinkRequestUpdate(object, LinkEventArgs)](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_LinkRequestUpdate_System_Object_VM_Managed_LinkEventArgs_), [Contact&lt;PropertyMultiContact&gt;.LinkRequestDestroy(object, LinkEventArgs)](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_LinkRequestDestroy_System_Object_VM_Managed_LinkEventArgs_), [Contact&lt;PropertyMultiContact&gt;.HasLayerExplicitly](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_HasLayerExplicitly), [Contact&lt;PropertyMultiContact&gt;.Hide](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_Hide), [Contact&lt;PropertyMultiContact&gt;.ReferenceType](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_ReferenceType), [Contact&lt;PropertyMultiContact&gt;.ArgumentType](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_ArgumentType), [Contact&lt;PropertyMultiContact&gt;.ReportTypeImpl](VM.Managed.DAFUL.Contact.Contact-1.md#VM_Managed_DAFUL_Contact_Contact_1_ReportTypeImpl), Entity&lt;PropertyMultiContact&gt;.Initialize(Unit.ConvertFactor), Entity&lt;PropertyMultiContact&gt;.GetUnnamedObjectName(object), Entity&lt;PropertyMultiContact&gt;.FindLocal(string), Entity&lt;PropertyMultiContact&gt;.Property, EntityBase.Initialize(Unit.ConvertFactor), EntityBase.SetOldNameWithNewEntity(ObjectBase, ObjectBase), EntityBase.PropertyRequestUpdate(object, LinkEventArgs), EntityBase.OnDeserializationForAttribute(), EntityBase.OnUpdatePropertyImpl(Property, LinkEventArgs), EntityBase.LinkRequestDestroying(object, LinkEventArgs), EntityBase.GetModelNavigatorInformationImpl(XmlDocument, XmlElement, bool), EntityBase.FixUp(ObjectBase), EntityBase.FindLocal(string), EntityBase.WriteTemplateImpl(XmlWriter), EntityBase.ReadTemplateImpl(XmlReader), EntityBase.LinkAddedToDocument(object, AddToDocEventArgs), EntityBase.OnDeserialization(object), EntityBase.Name, EntityBase.FullName, EntityBase.NonSymmetricName, EntityBase.DisplayName, EntityBase.IsEnabled, EntityBase.Comment, EntityBase.HasLayerExplicitly, EntityBase.UntypedProperty, EntityBase.IsFileProperty, EntityBase.Layer, EntityBase.IsVisible, ContainerObject&lt;EntityEventCore&gt;.Find(string), ContainerObject&lt;EntityEventCore&gt;.FindLocal(string), ContainerObject&lt;EntityEventCore&gt;.GetUnnamedObjectName(object), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string, bool, int), ContainerObject&lt;EntityEventCore&gt;.GetNewEntityName(string, bool, int, int), Object&lt;EntityEventCore&gt;.GetKey(), Object&lt;EntityEventCore&gt;.Initialize(Unit.ConvertFactor), Object&lt;EntityEventCore&gt;.SetIconColor(Canvas), Object&lt;EntityEventCore&gt;.OnDeserialization(object), Object&lt;EntityEventCore&gt;.CustomGetObjectData(SerializationInfo, StreamingContext), Object&lt;EntityEventCore&gt;.RollbackEvent(), Object&lt;EntityEventCore&gt;.OnDeserializedCore(object), Object&lt;EntityEventCore&gt;.Key, Object&lt;EntityEventCore&gt;.UntypedEventCore, Object&lt;EntityEventCore&gt;.EventCore, Object&lt;EntityEventCore&gt;.Attributes, ObjectBase.ReplaceEventCore(ObjectEventCore), ObjectBase.SetModifiedCore(ModifiedResult.ModifiedType), ObjectBase.AddPostDeserialize(StreamingContext), ObjectBase.LinkAddedToDocumentCore(IOwned, bool), ObjectBase.SetModified(ModifiedResult.ModifiedType), ObjectBase.SetModified(), ObjectBase.SetModified(ModifiedResult.ModifiedType, IDocument), ObjectBase.DestroyObject(object, LinkEventArgs), ObjectBase.DestroyObject(DestroyEventArgs), ObjectBase.DestroyObject(), ObjectBase.Initialize(Unit.ConvertFactor), ObjectBase.FixUp(ObjectBase), ObjectBase.DoWorkAfterUpdateContents(), ObjectBase.SetOldNameWithNewEntity(ObjectBase, ObjectBase), ObjectBase.SetIconColor(Canvas), ObjectBase.RemoveFromCreatedList(), ObjectBase.PostAddToDocument(), ObjectBase.PostRemoveFromDocument(Document), ObjectBase.GetArgumentList(LinkedList&lt;ObjectBase&gt;), ObjectBase.ResetInvalidEntity(), ObjectBase.OnDeserialization(object), ObjectBase.IsSerializableEvent(Delegate), ObjectBase.CustomGetObjectData(SerializationInfo, StreamingContext), ObjectBase.CheckAndUpdateLink(HashSet&lt;ObjectBase&gt;), ObjectBase.Verify(VerifiedResult), ObjectBase.ConnectProxy(), ObjectBase.RollbackEvent(), ObjectBase.LinkRequestUpdating(object, LinkEventArgs), ObjectBase.LinkRequestUpdate(object, LinkEventArgs), ObjectBase.LinkRequestDestroying(object, LinkEventArgs), ObjectBase.LinkRequestDestroy(object, LinkEventArgs), ObjectBase.LinkAddedToDocument(object, AddToDocEventArgs), ObjectBase.LinkRemovedFromDocument(object, RemoveFromDocEventArgs), ObjectBase.DisposeManagedResources(), ObjectBase.GetDestroyEventExtraData(), ObjectBase.OnLinkReserved(ILink, object, EventArgs), ObjectBase.CreateEntityWhenUpdateContents(Action), ObjectBase.GetObjectByKey(UIntPtr), ObjectBase.FindObjectOnXmlDeserialize(string), ObjectBase.UpdateContents(XmlReader, ObjectBase, string), ObjectBase.UpdateContents(XmlReader, ObjectBase), ObjectBase.UpdateContents(string, string), ObjectBase.UpdateContents(string), ObjectBase.SetFlagWhenXMLFile(string, bool), ObjectBase.IsEqualArray&lt;T&gt;(T\[\], T\[\]), ObjectBase.IsEqualList(List&lt;double&gt;, List&lt;double&gt;), ObjectBase.SetContainer(IOwned, bool), ObjectBase.GetTargetListForUpdate(), ObjectBase.SkipUpdateObjectImpl(), ObjectBase.raise\_OnUpdating(object, LinkEventArgs), ObjectBase.raise\_OnUpdate(object, LinkEventArgs), ObjectBase.raise\_OnDestroying(object, LinkEventArgs), ObjectBase.raise\_OnDestroy(object, LinkEventArgs), ObjectBase.raise\_Destroying(object, Identifier), ObjectBase.raise\_OnAdded(object, AddToDocEventArgs), ObjectBase.raise\_OnRemoved(object, RemoveFromDocEventArgs), ObjectBase.raise\_OnContentsUpdated(object, EventArgs), ObjectBase.Dispose(bool), ObjectBase.SkipModified, ObjectBase.ClearChildInfoBeforeDeserialize, ObjectBase.KeyImpl, ObjectBase.ID, ObjectBase.TopologyEntityTypeName, ObjectBase.ObjectStateForCircularError, ObjectBase.ObjectState, ObjectBase.IsChildExternable, ObjectBase.IsExternable, ObjectBase.Container, ObjectBase.Owner, ObjectBase.Document, ObjectBase.UntypedEventCore, ObjectBase.KernelKey, ObjectBase.Key, ObjectBase.OnContentsUpdated, ObjectBase.OnRemoved, ObjectBase.OnAdded, ObjectBase.Destroying, ObjectBase.OnDestroy, ObjectBase.OnDestroying, ObjectBase.OnUpdate, ObjectBase.OnUpdating, LinkableBase.OnDeserialization(object), 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

### NCombinationContact()

Initializes a new instance of the  class.

```csharp
public NCombinationContact()

```

### NCombinationContact(string)

Initializes a new instance of the  class.

```csharp
public NCombinationContact(string strName)

```

#### Parameters

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

Name of the contact.

## Properties

### ArgumentType

Gets the type of the argument

```csharp
public override ArgumentTypes ArgumentType { get; }

```

#### Property Value

ArgumentTypes

### Geometries

Gets or sets the base geometires.

```csharp
public MultipleContactInfo[] Geometries { get; set; }

```

#### Property Value

[MultipleContactInfo](VM.Managed.DAFUL.Contact.MultipleContactInfo.md)\[\]

## Methods

### Draw(Canvas)

Draws the icon.

```csharp
public override void Draw(Canvas canvas)

```

#### Parameters

`canvas` Canvas

The canvas has icon information.

### GetModelNavigatorInformationImpl(XmlDocument, XmlElement, bool)

Gets the object information for model navigator \[implementation\].

```csharp
protected override bool GetModelNavigatorInformationImpl(XmlDocument xmlDom, XmlElement xmlEle, bool bHasChild)

```

#### Parameters

`xmlDom` [XmlDocument](https://learn.microsoft.com/dotnet/api/system.xml.xmldocument)

The XmlDocument for object.

`xmlEle` [XmlElement](https://learn.microsoft.com/dotnet/api/system.xml.xmlelement)

The XmlElement for object.

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

if set to `true` \[has child\].

#### Returns

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

`true` if success; otherwise, `false`.

### IsValidContact(IContactable\[\], MultiContactType, ref Dictionary&lt;IContactable, List&lt;IContactable&gt;&gt;)

Determines whether the contact is valid.

```csharp
public static bool IsValidContact(IContactable[] lstGeom, MultiContactType type, ref Dictionary<IContactable, List<IContactable>> dic)

```

#### Parameters

`lstGeom` IContactable\[\]

The object.

`type` [MultiContactType](VM.Managed.DAFUL.Contact.MultiContactType.md)

The type.

`dic` [Dictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2)&lt;IContactable, [List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)&lt;IContactable&gt;&gt;

The create pair.

#### Returns

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

`true` if the specified object is interface; otherwise, `false`.

### LinkRequestUpdate(object, LinkEventArgs)

Request for update the linked object.

```csharp
protected override void LinkRequestUpdate(object objNotifier, LinkEventArgs arg)

```

#### Parameters

`objNotifier` [object](https://learn.microsoft.com/dotnet/api/system.object)

The linked object.

`arg` LinkEventArgs

The  instance containing the event data.

### OnDeserialization(object)

Called when \[deserialization\].

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

```

#### Parameters

`sender` [object](https://learn.microsoft.com/dotnet/api/system.object)

The sender.

### OnLinkReserved(ILink, object, EventArgs)

```csharp
protected override void OnLinkReserved(ILink link, object objNotifier, EventArgs arg)

```

#### Parameters

`link` ILink

`objNotifier` [object](https://learn.microsoft.com/dotnet/api/system.object)

`arg` [EventArgs](https://learn.microsoft.com/dotnet/api/system.eventargs)