I can't really make sense of the bits and pieces of code you posted, but my guess is that you are trying to access the dynamic block reference's properties at a point when you can't, and it has something to do with the state of the object when it's modified from the properties palette. If the object is not open in a transaction, and is in the notifying state, opening the object in a transaction is probably going to fail.
The basic problem with reacting to events like this is that you can't do much from the handler of the event directly, and instead should only capture ObjectIds of notifying objects, and do nothing else.
Then at some later point you react on the captured ObjectIds, at a point when the objects are in an accessable state.
--
http://www.caddzone.com
AcadXTabs: MDI Document Tabs for AutoCAD 2008
Supporting AutoCAD 2000 through 2008
http://www.acadxtabs.com
wrote in message news:5864537@discussion.autodesk.com...
This is the react to change code, which formats the event call to the form.
Public Sub ReactToChange(ByVal Check As Object)
Try
If Check(0) = False Then
Dim aex As New System.Exception("Error in finding local object, check object returned false.")
Throw aex
Exit Sub
End If
Dim ipe As Boolean = Palette.IgnorePanelEvents
Palette.IgnorePanelEvents = True
Select Case Check(1)
Case "PanelRef"
'Debug.Print(" PanelRef " & Check(2).ToString)
PublishEvent("Panel", "Modified", Check(2))
PublishEvent("Level", "Modified", Check(3))
Case "HoldDownRef"
'Debug.Print(" HoldDownRef " & Check(2).ToString)
Case "OpeningRef"
'Debug.Print(" OpeningRef " & Check(2).ToString)
PublishEvent("Opening", "Modified", Check(2))
PublishEvent("Level", "Modified", Check(3))
Case "Elevation"
'Debug.Print(" Elevation " & Check(2).ToString)
PublishEvent("Level", "Modified", Check(3))
End Select
Palette.IgnorePanelEvents = ipe
Catch ex As Exception
Dim aex As New System.Exception("Error Reacting to Erased: ", ex)
Throw aex
End Try
End Sub