    

 ## On this page

  

 

 # Class MbyNContact

 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 m by n.

```csharp
public class MbyNContact : 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) ← [MbyNContact](VM.Managed.DAFUL.Contact.MbyNContact.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

### MbyNContact()

Initializes a new instance of the  class.

```csharp
public MbyNContact()

```

### MbyNContact(string)

Initializes a new instance of the  class.

```csharp
public MbyNContact(string strName)

```

#### Parameters

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

Name of the contact.

## Properties

### ActionGeometries

Gets or sets the action geometires.

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

```

#### Property Value

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

### ArgumentType

Gets the type of the argument

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

```

#### Property Value

ArgumentTypes

### BaseGeometries

Gets or sets the base geometires.

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

```

#### Property Value

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

## Methods

### CheckAttributeMbyNContact(MultipleContactInfo\[\], MultipleContactInfo\[\])

Check attributeMbyNContact.

```csharp
public void CheckAttributeMbyNContact(MultipleContactInfo[] attribute, MultipleContactInfo[] target)

```

#### Parameters

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

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

### Draw(Canvas)

Draws the icon.

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

```

#### Parameters

`canvas` Canvas

The canvas has icon information.

### GetActionEntities()

Get action entities

```csharp
public ObjectBase[] GetActionEntities()

```

#### Returns

ObjectBase\[\]

The action ObjectBase

### GetBaseEntities()

Get base entities

```csharp
public ObjectBase[] GetBaseEntities()

```

#### Returns

ObjectBase\[\]

The base ObjectBase

### 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\[\], IContactable\[\], MultiContactType)

Determines whether the contact is valid.

```csharp
public static bool IsValidContact(IContactable[] lstBase, IContactable[] lstAction, MultiContactType type)

```

#### Parameters

`lstBase` IContactable\[\]

The base list.

`lstAction` IContactable\[\]

The action list.

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

The type.

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

```

#### Parameters

`link` ILink

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

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