.... 'Gestion Bloc en mémoire Dim BlocSpace As BlockTable 'Coll des BlockDef en ModelSpace Dim BlocDef As BlockTableRecord 'Def du bloc Try tr = db.TransactionManager.StartTransaction() BlocSpace = tr.GetObject(db.BlockTableId, OpenMode.ForRead) If BlocSpace.Has(Tableau.NomBlocDessin) = False Then 'création d'un nouveau Def BlocDef = New BlockTableRecord BlocDef.Name = Tableau.NomBlocDessin 'Open.ForWrite BlocSpace.UpgradeOpen() 'Ajout à la base et mémorisation de l'ID pour l'add sur le dessin ' blocref = new blockreference(point3d,id) Dim BlocDefId As ObjectId = BlocSpace.Add(BlocDef) 'Ajout au dessin tr.AddNewlyCreatedDBObject(BlocDef, True) Else 'récupération de la def. BlocDef = tr.GetObject(BlocSpace.Item(Tableau.NomBlocDessin), OpenMode.ForWrite) 'suppression de tous les élements dans la def. End If Catch ex As Exception MsgBox(ex.ToString, vbOKOnly, "Erreur système dans ClassFichier.CréationTableau") Finally tr.Commit() tr.Dispose() End Try ....
now i have a BlockTableRecord in car BlocDef.
How i can delete all entity in this ?
I want to create a new order in the blocdef but i dont want delete the Blockreference. so i dont 'purge'
Thx.
Solved! Go to Solution.
Solved by _gile. Go to Solution.
Hi,
You can iterate the BlockTableRecord, open each entity and erase it.
Salut,
Tu peux parcourir le BloctTableRecord ouvrir chaque entité et l'effacer.
foreach (ObjectId id in BlocDef)
{
Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
ent.erase();
}
ah ok Thanks i have to try it tomorrow.
If i delete all BlockReference and purge the DefBloc: it is much fast no ?