CRUD example


CRUD example

The following small code example describes how to

Option Explicit  ' always recommended to use. Makes sure all variable are declared before use

Private elementID As DLong
Sub ArcCreate()

' Create ArcElement
Dim oArc As ArcElement
Dim p(2) As Point3d
    p(0) = Point3dZero
    p(1) = Point3dOne
    p(2) = Point3dFromXYZ(2, 0, 0)
    Set oArc = CreateArcElement3(Nothing, p(0), p(1), p(2))  ' This is one of 6 different functions to create an arc
    ActiveModelReference.AddElement oArc    ' after creation the elements needs to be added to the active model
    elementID = oArc.ID
End Sub

Sub ArcSearchAndModify()
' Scan active model for arcs and change some properties
Dim oArc As ArcElement
Dim ee As ElementEnumerator
Dim sc As New ElementScanCriteria   ' Scan criteria to search for specific attributes
    sc.ExcludeAllTypes
    sc.IncludeType msdElementTypeArc    ' search for arcs
    Set ee = ActiveModelReference.Scan(sc)  ' scan active model for all elements matching the scan citeria
    Do While ee.MoveNext
        Set oArc = ee.Current.AsArcElement
        Dim pCenter As Point3d
        pCenter = oArc.CenterPoint
        Dim pMove As Point3d
        pMove = Point3dFromXYZ(1, -1, -1)
        oArc.Move pMove
        oArc.PrimaryRadius = oArc.PrimaryRadius * 1.2
        oArc.Color = 11
        oArc.LineWeight = 4
        Set oArc.LineStyle = ActiveDesignFile.LineStyles(5)
        oArc.Rewrite ' important to rewrite element in the designfile to save changes
    Loop
End Sub

Sub ArcDelete()
    Dim oArc As ArcElement
    'on error resume next
    If DLongToString(elementID) <> "0" Then
        Set oArc = ActiveModelReference.GetElementByID(elementID) ' get Arc with given ID
        Debug.Print DLongToString(oArc.ID), CStr(oArc.ID64)
        ActiveModelReference.RemoveElement oArc ' delete element from active model
        elementID = DLongFromString("0")
    End If
End Sub