Aller au contenu

Modifier les attributs d\'un bloc


Messages recommandés

Posté(e)

Bonjour,

 

Je suis nouveau ici et deja en quete d'information....

Je dois raliser une macro pour remplir des blocs deja present sur nos plans, mais je n'y arrive pas....

Pour le moment j'ai fait une boucle principale qui scrute tous les objets AcadBlockReference dans ModelSpace

avec "For Each" et je trouve bien tous mes blocs. Ensuite j'ai vu qu'on pouvait "lire" les attributs avec GetAttributes, cela fonctionne aussi. Maintenant je souhaiterai ecrire dans mes blocs..... et la.....c'est le drame......

On peut le faire facilement a l'insertion des blocs mais apres ?

J'ai tenter de faire un For Each des AcadEntity sur mes AcadBlockReference mais ca marche pas.

 

Si c'est pas faisable en VBA je veux bien essayer en LISP mais je n'y connais rien.

 

Merci pour vos conseils....

 

@+, Olivier

 

PS : desole pour les accents mais j'utilise un clavier qwerty....

Posté(e)

Le problème avec les anglophones, c'est qu'ils parlent l'anglais. :o Désolé, je viens de passer un bon moment à essayer de comprende des infos en UK.......bientôt le russe et le chinois

 

Le problème avec les blocs+attributs, c'est qu'il n'y a pas forcément le même nombre d'attributs pour chaque type de bloc et n'attendent pas tous le même type de données. Si toutes les valeurs d'attributs sont enregistrées quelque part, là c'est possible.

A moins que tes attributs en questions aient tous la même valeur ? Là c'est plus simple.

 

..........Pourraient pas tous parler en Fr ?

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

Posté(e)

Bonjour,

 

Merci pour cette reponse...

 

Je connais le type de valeurs attendu par chaque attribut car c'est moi qui ai fait les blocs, et dans l'avenir du futur j'irai lire un fichier qui contiendra l'ensemble des infos a ecrire dans les blocs. Mais en attendant je n'arrive toujours pas a acceder aux attributs en "mode ecriture".

 

Hier soir j'accedais directement aux attributs (sans GetAttribute) en bouclant tous les AcadAttribute contenus dans un AcadBlock. J'ai pu afficher le libelle des attributs avec TagString et la valeur avec TextString.

 

@+, Olivier

Posté(e)

Si ça peut t'aider

VarAttribut = ObjEntite.GetAttributes
For I = LBound(VarAttribut) To UBound(VarAttribut)
If VarAttribut(I).TagString = ListAttribut.Value Then                       
VarAttribut(I).TextString = Format(VarAttribut(I).TextString + ValAjout, "##.00")
End If
Next I 

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

Posté(e)

Yes !! Yes !

On est les champions! On est les champions !..........

 

J'ai trouvé, ça marche. C'est un peu sur le principe que ce que vient de poster Winfield (merci...) mais avec un "Update" à la fin....

 

 

@+, Olivier

 

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é