Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

J'ai dans mon plan un certain nombre de blocks dynamics avec des attributs.

 

J'aimerais en .Net supprimer un ou plusieurs attributs de ces blocks dynamics.

 

En vous remerciant par avance des vos réponses.

 

Cordialement.

http://www.carpetdiem.net

Plugins pour AutoCAD

Posté(e)

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

Posté(e)

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

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é