Solid Edge FrameworkSupport Type Library
DimInitData Object
Members 
Description
Stores the data required to create a dimension. Use with AddDimension() method. This is the only way to create PMI dimensions.
Object Model
DimInitData ObjectApplication ObjectSelectSet CollectionAddIns CollectionApplication ObjectApplicationEvents ObjectApplicationV8DocumentOpenEvent ObjectApplicationWindowEvents ObjectBeforeFileSaveAsEvents ObjectCommand ObjectCustomization ObjectDocuments CollectionEnvironments CollectionFeatureLibraryEvents ObjectFeatureSelectedFromPFEvents ObjectFileUIEvents ObjectMatTable ObjectInsight ObjectNewFileUIEvents ObjectApplication ObjectSEECEvents ObjectSESPEvents ObjectShortcutMenuEvents ObjectSolidEdgeInsightXT ObjectSolidEdgeTCE ObjectWindows Collection
Example
Imports System.Runtime.InteropServices
Imports System.IO

Module Module1

    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim ObjDoc As SolidEdgeFramework.SolidEdgeDocument = Nothing
        Dim objPartDoc As SolidEdgePart.PartDocument = Nothing
        Dim objDims As SolidEdgeFrameworkSupport.Dimensions = Nothing
        Dim objDim As SolidEdgeFrameworkSupport.Dimension = Nothing
        Dim objOrigDim As SolidEdgeFrameworkSupport.Dimension = Nothing
        Dim objPMI As SolidEdgeFrameworkSupport.PMI = Nothing
        Dim objEdges As SolidEdgeGeometry.Edges = Nothing
        Dim objEdge1 As SolidEdgeGeometry.Edge = Nothing
        Dim objEdge2 As SolidEdgeGeometry.Edge = Nothing
        Dim objDimPlane As SolidEdgePart.RefPlane = Nothing
        Dim objDimInitData As SolidEdgeFrameworkSupport.DimInitData = Nothing
        Dim dblStartPoint1(0) As Double
        Dim dblEndPoint1(0) As Double
        Dim objFolder As DirectoryInfo
        Dim objFileInfo As FileInfo

        Try
            'Get the application with specific settings
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")

            objFolder = GetTrainingFolder()

            objFileInfo = New FileInfo(Path.Combine(objFolder.FullName, "17_tooth_pinion.par"))

            'Need a Part file with a block in it.
            ObjDoc = objApplication.Documents.Open(objFileInfo.FullName)

            'Get the PMI object from the document
            Call objPartDoc.PMI_ByModelState(PMIObj:=objPMI)

            'Get the dimensions collection from the PMI object
            objDims = objPMI.Dimensions

            objEdges = objPartDoc.Models.Item(1).ExtrudedProtrusions.Item(1).Edges(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryRoundable)

            If Not objEdges Is Nothing Then
                objEdge1 = objEdges.Item(1)
                objEdge2 = objEdges.Item(2)
            End If

            objDimPlane = objPartDoc.RefPlanes.Item(3)

            objDimInitData = objDims.DimInitData

            'C-Diameter Dimension
            Call objDimInitData.ClearParents()
            Call objDimInitData.SetType(SolidEdgeFrameworkSupport.DimTypeConstants.igDimTypeCDiameter)
            Call objDimInitData.SetAxisMode(SolidEdgeFrameworkSupport.DimAxisModeConstants.igDimAxisModeDefault)

            Call objDimInitData.SetPlane(objDimPlane)
            Call objDimInitData.SetNumberOfParents(1)
            Call objDimInitData.SetNormalDiameterMode(True)

            Call objEdge1.GetEndPoints(StartPoint:=dblStartPoint1, EndPoint:=dblEndPoint1)

            Call objDimInitData.SetParentByIndex(0, objEdge1, True, False, False, False, dblStartPoint1(0), dblStartPoint1(1), dblStartPoint1(2))
            objDim = objDims.AddDimension(DimInitData:=objDimInitData)

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

    End Sub
    Function GetTrainingFolder() As DirectoryInfo
        Dim objInstallData As SEInstallDataLib.SEInstallData = Nothing
        Dim objInstallFolder As DirectoryInfo = Nothing
        Dim objTrainingFolder As DirectoryInfo = Nothing

        Try
            objInstallData = New SEInstallDataLib.SEInstallData
            objInstallFolder = New DirectoryInfo(objInstallData.GetInstalledPath())
            objTrainingFolder = New DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"))
        Catch
        Finally
            If Not (objInstallData Is Nothing) Then
                Marshal.FinalReleaseComObject(objInstallData)
                objInstallData = Nothing
            End If
        End Try

        Return objTrainingFolder
    End Function


End Module
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;

internal static class Module1
{

    public static void Main()
    {
        SolidEdgeFramework.Application objApplication = null;
        SolidEdgeFramework.SolidEdgeDocument ObjDoc = null;
        SolidEdgePart.PartDocument objPartDoc = null;
        SolidEdgeFrameworkSupport.Dimensions objDims = null;
        SolidEdgeFrameworkSupport.Dimension objDim = null;
        SolidEdgeFrameworkSupport.Dimension objOrigDim = null;
        SolidEdgeFrameworkSupport.PMI objPMI = null;
        SolidEdgeGeometry.Edges objEdges = null;
        SolidEdgeGeometry.Edge objEdge1 = null;
        SolidEdgeGeometry.Edge objEdge2 = null;
        SolidEdgePart.RefPlane objDimPlane = null;
        SolidEdgeFrameworkSupport.DimInitData objDimInitData = null;
        double[] dblStartPoint1 = new double[1];
        double[] dblEndPoint1 = new double[1];
        DirectoryInfo objFolder = null;
        FileInfo objFileInfo = null;

        try
        {
            //Get the application with specific settings
            objApplication = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");

            objFolder = GetTrainingFolder();

            objFileInfo = new FileInfo(Path.Combine(objFolder.FullName, "17_tooth_pinion.par"));

            //Need a Part file with a block in it.
            ObjDoc = objApplication.Documents.Open(objFileInfo.FullName);

            //Get the PMI object from the document
            objPartDoc.PMI_ByModelState(PMIObj:objPMI);

            //Get the dimensions collection from the PMI object
            objDims = objPMI.Dimensions;

            objEdges = objPartDoc.Models.Item(1).ExtrudedProtrusions.Item(1).Edges(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryRoundable);

            if (objEdges != null)
            {
                objEdge1 = objEdges.Item(1);
                objEdge2 = objEdges.Item(2);
            }

            objDimPlane = objPartDoc.RefPlanes.Item(3);

            objDimInitData = objDims.DimInitData;

            //C-Diameter Dimension
            objDimInitData.ClearParents();
            objDimInitData.SetType(SolidEdgeFrameworkSupport.DimTypeConstants.igDimTypeCDiameter);
            objDimInitData.SetAxisMode(SolidEdgeFrameworkSupport.DimAxisModeConstants.igDimAxisModeDefault);

            objDimInitData.SetPlane(objDimPlane);
            objDimInitData.SetNumberOfParents(1);
            objDimInitData.SetNormalDiameterMode(true);

            objEdge1.GetEndPoints(StartPoint:dblStartPoint1, EndPoint:dblEndPoint1);

            objDimInitData.SetParentByIndex(0, objEdge1, true, false, false, false, dblStartPoint1[0], dblStartPoint1[1], dblStartPoint1[2]);
            objDim = objDims.AddDimension(DimInitData:objDimInitData);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

    }
    public static DirectoryInfo GetTrainingFolder()
    {
        SEInstallDataLib.SEInstallData objInstallData = null;
        DirectoryInfo objInstallFolder = null;
        DirectoryInfo objTrainingFolder = null;

        try
        {
            objInstallData = new SEInstallDataLib.SEInstallData();
            objInstallFolder = new DirectoryInfo(objInstallData.GetInstalledPath());
            objTrainingFolder = new DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"));
        }
        catch
        {
        }
        finally
        {
            if (objInstallData != null)
            {
                Marshal.FinalReleaseComObject(objInstallData);
                objInstallData = null;
            }
        }

        return objTrainingFolder;
    }


}
See Also

DimInitData Members  | Solid Edge ST5 - What's New  | Solid Edge ST4 MP1 - What's New  | Solid Edge ST3 MP8 - What's New