    

 ## On this page

  

 

 # Class DirectionBase

 Last update: 16.07.2025 

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

This class is to represent the direction base. Getting the information of VectorBase(x, y, z) through Value property. After picking, Getting information of DirectionBase through picker.

```csharp
public abstract class DirectionBase : LinkContainer, IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, ILinkContainerEvent, IVerifiable

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← ObservableObject ← LinkableBase ← [LinkContainer](VM.Managed.LinkContainer.md) ← [DirectionBase](VM.Managed.DirectionBase.md)

#### Derived

[DirectionBaseAxis](VM.Managed.DirectionBaseAxis.md), [DirectionExpression](VM.Managed.DirectionExpression.md), [DirectionLink](VM.Managed.DirectionLink.md), [DirectionOnGeometryBase](VM.Managed.DirectionOnGeometryBase.md), [DirectionThreePoints](VM.Managed.DirectionThreePoints.md), [DirectionTwoPoints](VM.Managed.DirectionTwoPoints.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, [ILinkContainerEvent](VM.Managed.ILinkContainerEvent.md), [IVerifiable](VM.Managed.IVerifiable.md)

#### Inherited Members

[LinkContainer.SetModified()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetModified), [LinkContainer.raise\_OnUpdating(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnUpdating_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnUpdate(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnUpdate_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnDestroying(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnDestroying_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnAdded(object, AddToDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnAdded_System_Object_VM_Managed_AddToDocEventArgs_), [LinkContainer.raise\_OnRemoved(object, RemoveFromDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnRemoved_System_Object_VM_Managed_RemoveFromDocEventArgs_), [LinkContainer.GetTargetListForUpdate()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetTargetListForUpdate), [LinkContainer.SkipUpdateObjectImpl()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SkipUpdateObjectImpl), [LinkContainer.Initialize(Unit.ConvertFactor)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Initialize_VM_Unit_ConvertFactor_), [LinkContainer.SetFlagWhenXMLFile(string, bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetFlagWhenXMLFile_System_String_System_Boolean_), [LinkContainer.IsSerializableEvent(Delegate)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsSerializableEvent_System_Delegate_), [LinkContainer.CustomGetObjectData(SerializationInfo, StreamingContext)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_CustomGetObjectData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [LinkContainer.GetSerializedData(SerializationInfo, StreamingContext)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetSerializedData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [LinkContainer.LinkRequestUpdating(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestUpdating_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestUpdate(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestUpdate_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestDestroying(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestDestroying_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkAddedToDocument(object, AddToDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkAddedToDocument_System_Object_VM_Managed_AddToDocEventArgs_), [LinkContainer.LinkRemovedFromDocument(object, RemoveFromDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRemovedFromDocument_System_Object_VM_Managed_RemoveFromDocEventArgs_), [LinkContainer.OnLinkReserved(ILink, object, EventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnLinkReserved_VM_Managed_ILink_System_Object_System_EventArgs_), [LinkContainer.CanBeDestroy(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_CanBeDestroy_System_Object_), [LinkContainer.DisposeManagedResources()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_DisposeManagedResources), [LinkContainer.SetContainer(IOwned, bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetContainer_VM_Models_Pre_IOwned_System_Boolean_), [LinkContainer.OnChildUpdated(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnChildUpdated_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.OnContainerDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnContainerDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.OnDeserialization(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDeserialization_System_Object_), [LinkContainer.Verify(VerifiedResult)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Verify_VM_Managed_VerifiedResult_), [LinkContainer.GetCopy(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetCopy_System_Object_), [LinkContainer.Dispose(bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Dispose_System_Boolean_), [LinkContainer.ClearChildInfoBeforeDeserialize](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_ClearChildInfoBeforeDeserialize), [LinkContainer.Container](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Container), [LinkContainer.Owner](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Owner), [LinkContainer.Document](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Document), [LinkContainer.ID](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_ID), [LinkContainer.IsChildExternable](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsChildExternable), [LinkContainer.IsExternable](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsExternable), [LinkContainer.OnRemoved](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnRemoved), [LinkContainer.OnAdded](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnAdded), [LinkContainer.OnDestroy](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDestroy), [LinkContainer.OnDestroying](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDestroying), [LinkContainer.OnUpdate](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnUpdate), [LinkContainer.OnUpdating](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_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(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_DirectionBase__ctor"></a> DirectionBase()

```csharp
public DirectionBase()

```

## Fields

### <a id="VM_Managed_DirectionBase_m_bReverse"></a> m\_bReverse

The flag of reverse.

```csharp
protected bool m_bReverse

```

#### Field Value

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

## Properties

### <a id="VM_Managed_DirectionBase_IsParameterized"></a> IsParameterized

Gets the parametric.

```csharp
public abstract bool IsParameterized { get; }

```

#### Property Value

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

### <a id="VM_Managed_DirectionBase_Reverse"></a> Reverse

Gets the reverse direction.

```csharp
public bool Reverse { get; set; }

```

#### Property Value

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

### <a id="VM_Managed_DirectionBase_Value"></a> Value

Gets the VectorBase(x, y, z).

```csharp
public abstract VectorBase Value { get; }

```

#### Property Value

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

## Methods

### <a id="VM_Managed_DirectionBase_GetSchema"></a> GetSchema()

This method is reserved and should not be used. When implementing the IXmlSerializable interface, you should return nullNothingnullptra null reference (Nothing in Visual Basic) (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the XmlSchemaProviderAttribute to the class.

```csharp
public abstract XmlSchema GetSchema()

```

#### Returns

[XmlSchema](https://learn.microsoft.com/dotnet/api/system.xml.schema.xmlschema)

An  that describes the XML representation of the object that is produced by the  method and consumed by the  method.

### <a id="VM_Managed_DirectionBase_IsParametric_VM_Managed_Primitive_enRefType_"></a> IsParametric(enRefType)

Gets parametric.

```csharp
public virtual bool IsParametric(Primitive.enRefType type)

```

#### Parameters

`type` [Primitive](VM.Managed.Primitive.md).[enRefType](VM.Managed.Primitive.enRefType.md)

Point picking type.

#### Returns

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

If set to `true` is parametric; otherwise, `false` is none parametric.

### <a id="VM_Managed_DirectionBase_IsParametric_System_String_"></a> IsParametric(string)

Gets parametric.

```csharp
public static bool IsParametric(string strType)

```

#### Parameters

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

Point picking type.

#### Returns

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

If set to `true` is parametric; otherwise, `false` is none parametric.

### <a id="VM_Managed_DirectionBase_ReadXml_System_Xml_XmlReader_"></a> ReadXml(XmlReader)

Generates an object from its XML representation.

```csharp
public abstract void ReadXml(XmlReader reader)

```

#### Parameters

`reader` [XmlReader](https://learn.microsoft.com/dotnet/api/system.xml.xmlreader)

The XmlReader stream from which the object is deserialized.

### <a id="VM_Managed_DirectionBase_WriteXml_System_Xml_XmlWriter_"></a> WriteXml(XmlWriter)

Converts an object into its XML representation.

```csharp
public abstract void WriteXml(XmlWriter writer)

```

#### Parameters

`writer` [XmlWriter](https://learn.microsoft.com/dotnet/api/system.xml.xmlwriter)

The XmlWriter stream to which the object is serialized.