    

 ## On this page

  

 

 # Class ContactGeom3D

 Last update: 16.07.2025 

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

This class is to rpresent the 3D contact geometry.

```csharp
public class ContactGeom3D : ContactGeomBase<PropertyContactGeom3D>, 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, IContactGeometry3D, IContactGeometry

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← ObservableObject ← LinkableBase ← ObjectBase ← Object&lt;EntityEventCore&gt; ← ContainerObject&lt;EntityEventCore&gt; ← EntityBase ← Entity&lt;PropertyContactGeom3D&gt; ← [ContactGeomBase&lt;PropertyContactGeom3D&gt;](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md) ← [ContactGeom3D](VM.Managed.DAFUL.Contact.ContactGeom3D.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, IContactGeometry3D, IContactGeometry

#### Inherited Members

[ContactGeomBase&lt;PropertyContactGeom3D&gt;.Initialize(Unit.ConvertFactor)](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md#VM_Managed_DAFUL_Contact_ContactGeomBase_1_Initialize_VM_Unit_ConvertFactor_), [ContactGeomBase&lt;PropertyContactGeom3D&gt;.FindLocal(string)](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md#VM_Managed_DAFUL_Contact_ContactGeomBase_1_FindLocal_System_String_), [ContactGeomBase&lt;PropertyContactGeom3D&gt;.ReferenceMarker](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md#VM_Managed_DAFUL_Contact_ContactGeomBase_1_ReferenceMarker), [ContactGeomBase&lt;PropertyContactGeom3D&gt;.GeometryFullName](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md#VM_Managed_DAFUL_Contact_ContactGeomBase_1_GeometryFullName), [ContactGeomBase&lt;PropertyContactGeom3D&gt;.HasLayerExplicitly](VM.Managed.DAFUL.Contact.ContactGeomBase-1.md#VM_Managed_DAFUL_Contact_ContactGeomBase_1_HasLayerExplicitly), Entity&lt;PropertyContactGeom3D&gt;.Initialize(Unit.ConvertFactor), Entity&lt;PropertyContactGeom3D&gt;.GetUnnamedObjectName(object), Entity&lt;PropertyContactGeom3D&gt;.FindLocal(string), Entity&lt;PropertyContactGeom3D&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

### ContactGeom3D()

Initializes a new instance of the  class.

```csharp
protected ContactGeom3D()

```

### ContactGeom3D(string)

Initializes a new instance of the  class.

```csharp
public ContactGeom3D(string strName)

```

#### Parameters

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

Name of the 3D contact geometry.

## Properties

### Geometry

Gets or sets the geometry.

```csharp
public IContactable Geometry { get; set; }

```

#### Property Value

IContactable

### GeometryFullName

Gets the full name of the geometry.

```csharp
public override string GeometryFullName { get; }

```

#### Property Value

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

### HalfThickness

Gets or sets the half thickness.

```csharp
public ExpressionValueVariable HalfThickness { get; set; }

```

#### Property Value

ExpressionValueVariable

### IsRepresentedAsBSurface

Gets or sets the flag of NURBS.

```csharp
public virtual bool IsRepresentedAsBSurface { get; set; }

```

#### Property Value

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

### MaxPenetration

Gets or sets the maximum penetration.

```csharp
public ExpressionValueVariable MaxPenetration { get; set; }

```

#### Property Value

ExpressionValueVariable

### SurfaceSmoothingType

Gets or sets the type of the surface smoothing.

```csharp
public SurfaceSmoothing SurfaceSmoothingType { get; set; }

```

#### Property Value

SurfaceSmoothing

### \_Geometry

Gets or sets the geometry.

```csharp
public Linker<IContactable> _Geometry { get; set; }

```

#### Property Value

Linker&lt;IContactable&gt;

## Methods

### 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`.

### GetPointDirection(ref VectorBase, ref VectorBase)

Gets the normal origin point and direction.

```csharp
public bool GetPointDirection(ref VectorBase point, ref VectorBase direction)

```

#### Parameters

`point` VectorBase

The normal origin point.

`direction` VectorBase

The normal direction.

#### Returns

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

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

### GetPointDirectionOnGeometry(ref VectorBase, ref VectorBase)

Gets the normal origin point and direction.

```csharp
public bool GetPointDirectionOnGeometry(ref VectorBase point, ref VectorBase direction)

```

#### Parameters

`point` VectorBase

The normal origin point.

`direction` VectorBase

The normal direction.

#### Returns

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

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

### LinkRequestDestroying(object, LinkEventArgs)

Request for destroying the linked object.

```csharp
protected override void LinkRequestDestroying(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.

### 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.