Inherit dimension settings of a dim source (Radial Dimension) to a target dimension (Radial Dimension)

Hi

I try to write a journaling code that would enable to copy settings dimensions of a source dimension to a target dimension. This code is to treat type ''Radial Dimension'' only, so we must adjust the selection filter on this type of dimension.
I would like to inherit the source dimension these settings;
- Units - Numerical Display + Fraction Denominator
- Text Size - All settings
- Line / Arrow - Arrow Line - Show Arrow Line
- Appended Text - Text Before + After Text Above + Text + Text Below

I need the code inherits these minimum settings, but it can also be all the settings from the source dimension if it's possible.

One must be able to select multiple targets, but just one source. Having chosen the source dimension, the program could reset again at the beginning and to allow further selection of new target dimensions with a new dimension source. So this loop must be infinite if the user so desires or leave by the exit button.

I begin to write that code, can you help me to finish it ?

Regards !!!

---****---****---****---****---****---****---****---****---****---****---****---****---***
'NX10.0
'This program allows to assign to a target dimenssions, all settings of a source dimenssions like the option Inherit in dimension settings.

Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UI
Imports NXOpen.UF
Imports NXOpen.Annotations

Module NXJournal
Public test As String
Dim theSession As Session = Session.GetSession()
Dim ufs As UFSession = UFSession.GetUFSession()
Dim WorkPart As Part = theSession.Parts.Work
Dim Drafting As Part = theSession.Parts.Work

Dim displayPart As Part = theSession.Parts.Display
Dim lw As ListingWindow = theSession.ListingWindow
Sub Main()

lw.Open()
lw.WriteLine("Debug = Pts 0.0")
lw.WriteLine("This program allows to assign to a target dimenssions,")
lw.WriteLine("the properties of a source dimenssions like the function Inherit.")

Dim HoleDimensionCible As Annotations.HoleDimension = Nothing
Dim HoleDimensionSource As Annotations.HoleDimension = Nothing
Dim markId1 As Session.UndoMarkId

Dim editSettingsBuilder1 As Annotations.EditSettingsBuilder = Nothing

'Select one or more target dimensions
While Select_Dimension_Target("Select target Dim", HoleDimensionCible) = Selection.Response.Ok

lw.WriteLine("Select target Dim: " & HoleDimensionCible.ToString())

markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")

Dim objects1(0) As DisplayableObject
objects1(0) = HoleDimensionCible
editSettingsBuilder1 = WorkPart.SettingsManager.CreateAnnotationEditSettingsBuilder(objects1)
lw.WriteLine("Debug = Pts 1.0")
End While
lw.WriteLine("Debug = Pts 1.1")

'Select an original dimension
While Select_Dimension_Source("Select source Dim (Inherit)", HoleDimensionSource) = Selection.Response.Ok
lw.WriteLine("Select source Dim (Inherit): " & HoleDimensionSource.ToString())

Dim editsettingsbuilders1(0) As Drafting.BaseEditSettingsBuilder
editsettingsbuilders1(0) = editSettingsBuilder1
WorkPart.SettingsManager.ProcessForMultipleObjectsSettings(editsettingsbuilders1)
editSettingsBuilder1.InheritSettingsFromSelectedObjects(HoleDimensionSource)

Dim nXObject1 As NXObject
nXObject1 = editSettingsBuilder1.Commit()
editSettingsBuilder1.Destroy()
lw.WriteLine("Debug = Pts 1.2")
End While
lw.WriteLine("Debug = Pts 1.3")

End Sub
Function Select_Dimension_Target(ByVal prompt As String, ByRef obj As Dimension)
Dim ui As UI = GetUI()
Dim mask(0) As Selection.MaskTriple
With mask(0)
.Type = UFConstants.UF_dimension_type
.Subtype = 0
.SolidBodySubtype = 0
End With
Dim cursor As Point3d = Nothing

Dim resp As Selection.Response = _
ui.SelectionManager.SelectTaggedObject(prompt, prompt, _
Selection.SelectionScope.AnyInAssembly, _
Selection.SelectionAction.ClearAndEnableSpecific, _
False, False, mask, obj, cursor)
lw.WriteLine("Debug = Pts 1.4")
If resp = Selection.Response.ObjectSelected Or _
resp = Selection.Response.ObjectSelectedByName Then
Return Selection.Response.Ok
lw.WriteLine("Dimension cible: ok ")
Else
Return Selection.Response.Cancel
End If
lw.WriteLine("Debug = Pts 1.5")
End Function
Function Select_Dimension_Source(ByVal prompt As String, ByRef obj As Dimension)

Dim mask() As Selection.MaskTriple = _
{New Selection.MaskTriple(UFConstants.UF_dimension_type, 0, 0)}

Dim ui2 As UI = GetUI()
Dim cursor2 As Point3d = Nothing

Dim resp2 As Selection.Response = _
ui2.SelectionManager.SelectTaggedObject(prompt, prompt, _
Selection.SelectionScope.AnyInAssembly, _
Selection.SelectionAction.ClearAndEnableSpecific, _
False, False, mask, obj, cursor2)
lw.WriteLine("Debug = Pts 1.6")
If resp2 = Selection.Response.ObjectSelected Or _
resp2 = Selection.Response.ObjectSelectedByName Then
Return Selection.Response.Ok
Else
Return Selection.Response.Cancel
End If
lw.WriteLine("Debug = Pts 1.7")

End Function
Public Function GetUnloadOption(ByVal dummy As String) As Integer

GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY

'Unloads the image when the NX session terminates
'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.AtTermination

'----Other unload options-------
'Unloads the image immediately after execution within NX
'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately

'Unloads the image explicitly, via an unload dialog
'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Explicitly
'-------------------------------
End Function

End Module