.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

TransactionManager.StartTransation() causes null object error?

0 REPLIES 0
Reply
Message 1 of 1
jimmie_fulton
418 Views, 0 Replies

TransactionManager.StartTransation() causes null object error?

I have an event handler connected to the Database.ObjectAppended to watch when a particular object type has been appended to the database. Within the event handler, it seems that the database is in such as state that I can't get a transaction to query the database with; it causes a null object exception when I call StartTransaction() on the database's TransactionManager. Any ideas why?

// ObjectEventHandler event handler
private static void Database_ObjectAppended(object sender, ObjectEventArgs e)
{
Database database = sender as Database;
PropertySet propertySet = e.DBObject as PropertySet;
if (propertySet != null && database != null)
{
ObjectId sheetnoteSetDefId = ObjectId.Null;
// *** Error happens on next line ***
using (Transaction trans = database.TransactionManager.StartTransaction())
{
using (DictionaryPropertySetDefinitions propertySetDefIds = new DictionaryPropertySetDefinitions(database))
{
foreach (ObjectId propertySetDefId in propertySetDefIds.Records)
{
PropertySetDefinition propertySetDef = (PropertySetDefinition)trans.GetObject(propertySetDefId, OpenMode.ForRead);
if (propertySetDef.Name.ToLower() == "sheetnote_data")
{
sheetnoteSetDefId = propertySetDef.ObjectId;
break;
}
}
}
if (propertySet.PropertySetDefinition == sheetnoteSetDefId)
{
int number = (int)propertySet.GetAt(propertySet.PropertyNameToId("Number"));
string text = (string)propertySet.GetAt(propertySet.PropertyNameToId("Text"));
SheetnoteInfo sheetnoteInfo = new SheetnoteInfo(number, text);
sheetNoteControl.AddSheetnote(sheetnoteInfo);
}
}
}
}
0 REPLIES 0

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost