Random ran
= new Random
(); Stopwatch sw
= new Stopwatch
();
[CommandMethod("TurnAllEntitesRandomColor")]
public void TurnAllEntitesRandomColor()
{
int colorIndex = ran.Next(1, 256);
Database db = HostApplicationServices.WorkingDatabase;
ObjectId msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
sw.Reset();
sw.Start();
using (Transaction trx = tm.StartTransaction())
{
BlockTableRecord btr = (BlockTableRecord)tm.GetObject(msId, OpenMode.ForRead, false, false) ;
foreach (ObjectId id in btr)
{
Entity ent = (Entity)tm.GetObject(id, OpenMode.ForWrite, false, false);
ent.ColorIndex = colorIndex;
}
trx.Commit();
}
sw.Stop();
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nStartTransaction\n");
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(sw.ElapsedTicks.ToString());
}
[CommandMethod("TurnAllEntitesRandomColorOpenClosetransaction")]
public void TurnAllEntitesRandomColorOpenClosetransaction()
{
int colorIndex = ran.Next(1, 256);
Database db = HostApplicationServices.WorkingDatabase;
ObjectId msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
sw.Reset();
sw.Start();
using (OpenCloseTransaction trx = tm.StartOpenCloseTransaction())
{
BlockTableRecord btr = (BlockTableRecord)trx.GetObject(msId, OpenMode.ForWrite, false, false);
foreach (ObjectId id in btr)
{
Entity ent = (Entity)trx.GetObject(id, OpenMode.ForWrite, false, false);
ent.ColorIndex = colorIndex;
}
trx.Commit();
}
sw.Stop();
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nOpenCloseTransaction\n");
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(sw.ElapsedTicks.ToString());
}
[CommandMethod("TurnAllEntitesRandomColorOpenClose")]
public void TurnAllEntitesRandomColorOpenClose()
{
int colorIndex = ran.Next(1, 256);
Database db = HostApplicationServices.WorkingDatabase;
ObjectId msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
sw.Reset();
sw.Start();
BlockTableRecord btr = (BlockTableRecord)msId.Open(OpenMode.ForRead, false, false);
foreach (ObjectId id in btr)
{
Entity ent = (Entity)id.Open(OpenMode.ForWrite, false, false);
ent.ColorIndex = colorIndex;
ent.Close();
}
btr.Close();
sw.Stop();
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nOpenClose\n");
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(sw.ElapsedTicks.ToString());
}
/////////Added at end just to mix them
[CommandMethod("TurnAllEntitesRandomColorOpenClosetransaction2")]
public void TurnAllEntitesRandomColorOpenClosetransaction2()
{
int colorIndex = ran.Next(1, 256);
Database db = HostApplicationServices.WorkingDatabase;
ObjectId msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
sw.Reset();
sw.Start();
using (Transaction trx = tm.StartTransaction())
{
BlockTableRecord btr = (BlockTableRecord)tm.GetObject(msId, OpenMode.ForWrite, false, false);
foreach (ObjectId id in btr)
{
using (OpenCloseTransaction openCloseTrx = tm.StartOpenCloseTransaction())
{
Entity ent = (Entity)openCloseTrx.GetObject(id, OpenMode.ForWrite, false, false);
ent.ColorIndex = colorIndex;
openCloseTrx.Commit();
}
}
trx.Commit();
}
sw.Stop();
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nStartTransAction&OpenCloseTransaction\n");
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(sw.ElapsedTicks.ToString());
}