Aller au contenu

Pour les spécialistes des blocks dynamics


Messages recommandés

Salut,

 

Il faudrait que tu sois plus clair dans ta demande.

Parles-tu de définitions de bloc (BlockTableRecord) et de définitions d'attributs (AttributeDefinition) ou de références de block (blockReference) et de références d'attributs (AttributeReference) ?

Dans le premier cas, il faudra "synchroniser" les attributs pour que les modifications soient reflétées dans les références insérées.

Dans le second cas, les modifications faites aux références uniquement seront annulées en cas de synchronisation des attributs (ATTSYNC).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Alors, il suffit d'aller dans la définition du bloc dynamique (pas d'un bloc anonyme) de rechercher les définitions d'attributs selon test critères et de les effacer.

 

        private static void EraseAttrib(Database db, string blockName, string tag)
       {
           using (var tr = db.TransactionManager.StartTransaction())
           {
               var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
               if (!bt.Has(blockName)) return;
               var btr = (BlockTableRecord)tr.GetObject(bt[blockName], OpenMode.ForRead);
               foreach (ObjectId id in btr)
               {
                   if (id.ObjectClass == RXObject.GetClass(typeof(AttributeDefinition)))
                   {
                       var attDef = (AttributeDefinition)tr.GetObject(id, OpenMode.ForRead);
                       if (attDef.Tag == tag)
                       {
                           tr.GetObject(id, OpenMode.ForWrite);
                           attDef.Erase();
                       }
                   }
               }
               tr.Commit();
           }
       }

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité