Quantcast
Channel: MicroStation Programming Forum - Recent Threads
Viewing all articles
Browse latest Browse all 4331

[VBA] RemoveElement crash

$
0
0

Why this approach crashes Microstation on RemoveElement line? The same approach is used in VBA help and it should be ok.

'Convert all elements to cells

Sub All2Cells()
Dim eE As ElementEnumerator
Dim sC As New ElementScanCriteria
Dim oCellNew As CellElement
Dim eeSub As ElementEnumerator
Dim oArr() As Element
Dim iNdex As Long
Dim rng As Range3d
Dim pntOrigin As Point3d

sC.ExcludeNonGraphical
'sC.ExcludeType msdElementTypeCellHeader'sC.ExcludeType msdElementTypeSharedCellDefinition'sC.ExcludeType msdElementTypeSharedCell

Set eE = ActiveModelReference.Scan(sC)
'Set eE = ActiveModelReference.GetSelectedElements   ' Activate this line if only selected objects are to be changed
Do While eE.MoveNext
    iNdex = 0
    ReDim oArr(0)
    If eE.Current.Type <> msdElementTypeCellHeader Or msdElementTypeSharedCell Or msdElementTypeSharedCellDefinition Then

     rng = eE.Current.Range
    With rng
        pntOrigin.X = .High.X - .Low.X
        pntOrigin.Y = .High.Y - .Low.Y
        pntOrigin.Z = .High.Z - .Low.Z
        pntOrigin = Point3dAddScaled(rng.Low, pntOrigin, 0.5)
    End With
    ReDim Preserve oArr(iNdex)
    
    Set oArr(iNdex) = eE.Current
 
        Set oCellNew = CreateCellElement1(vbNullString, oArr, pntOrigin, False)
        ActiveModelReference.AddElement oCellNew
        ActiveModelReference.RemoveElement eE.Current

    End If
Loop
End Sub

Viewing all articles
Browse latest Browse all 4331

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>