I want to serialize blockreference handle in an xml file and (its properties). So I store this value at the initialization :
blockReference.ObjectId.Handle.Value; // decimal value = 10658
But when I select the blockReference in AutoCAD the handle has changed.
private void database_ObjectModified(object sender, ObjectEventArgs e)
{
long currentId = e.DBObject.ObjectId.Handle.Value; // Now it's 10659 !!!!
...
}
Do I use handle no correctly ?
When you use the Handle in the XML file you need to get the
ObjectId
by its.Handle
and then useObjectId
that is valid only in the current session to read/write the object. See http://through-the-interface.typepad.com/through_the_interface/2007/02/getting_access_.htmlLook for the
Database.GetObjectId()
method in the SDK docs (the managed interface CHM file). This is it in a nutshell...[MarshalAs(UnmanagedType.U1)] bool createIfNotFound
Input Boolean indicating to create a objectId stub if input handle is not foundHandle objHandle
Input Handle object containing the handle being passed inint identifier
Reserved for future use