Aller au contenu

Autocad MAP 2020 -attributs de blocs


Messages recommandés

Posté(e)

Bonjour à toutes et à tous. 

Depuis 1 semaine j'essaie  sans succès de trouver une méthode pour associer une liste de valeurs à mes attributs de blocs. Impossible de trouver la méthodologie... Quelqu'un pourra m'apporter son éclairage ? Votre aide sera la bienvenue...

 

Moi : dessinateur projeteur depuis 1 année en Collectivité. Pas de contrat d'assistance avec Géomédia. 

 

Posté(e)

Bonjour @lalau

Il est compréhensible que pour le premier message, on ne s'exprime pas tout à fait correctement.
En effet, bien expliquer un souci est souvent la meilleure façon de s'approcher de la solution.

D'où nos questions pour compréhension du problème ...

Avez-vous une liste de valeurs, par exemple dans un fichier texte externe, que vous devez dispatcher dans des blocs avec attributs ?
Si oui comment faire la relation entre les lignes du fichier texte et les blocs avec attributs (coordonnées d'insertion, noms des étiquettes ...)

Ou bien est-ce autre chose ?

Amicalement

Posté(e)

Bonjour, 

Merci pour votre retour....

Ce que je tente d'obtenir, c'est la possibilité de compléter la valeur d'un attribut de bloc, avec une liste de choix de valeurs. Oui c'est plutôt attribuer des valeurs à mes attributs à partir d'une table ou mieux encore à partir d'une liste déroulante. Un peu sur le même principe que les jeux de valeurs pour les blocs dynamiques.  mais il  me semble les jeux de valeurs ne  peuvent être mise en place qu'avec des contraintes de type dimensionnelles, angulaires, etc .... 

Dans l'absolue, par exemple si j'ai un Bloc "Compteur" avec un attribut "Statut" et 4 valeurs possibles " En service / Hors Service / En attente / Abandonné ". Et surtout avec la possibilité pour l'opérateur qui doit remplir les données d'attributs de pouvoir choisir entre les différentes valeurs dans une liste afin de l'inciter à valider une valeur attendues, pour éviter les erreurs de rédactions, voir un gain de temps. 

 

 

Posté(e)

Coucou,

Donc si je comprends bien tu ne veux pas remplir en automatique un ensemble de blocs avec attributs à partir d'un fichier Excel. Ce que tu veux c'est de pouvoir limiter la valeur d'un attribut à certaines chaînes de caractères ?
Si c'est bien cela, il faut créer un table des propriétés de bloc me semble-t-il. Depuis l'éditeur de bloc, tu as dans l'onglet "Actions" la commande "Table des propriétés de bloc". Cela va créer un paramètre (similaire à une poignée de visibilité de bloc) et tu auras un tableau dans lequel tu peux ajouter une colonne correspondant à ton attribut. Tu spécifie la liste de valeurs et tu coches l'option "Les propriétés du bloc doivent correspondre à une rangée de la table" (en bas à gauche).
J'espère que cela correspond à ta demande 🙂 Autrement il faudra expliquer plus clairement avec un fichier d'exemple.

Bisous,
Luna

Posté(e)

Bonjour Didier, 

Toute mes excuses pour la formulation de ma problématique, je  commence donc à mieux cerner les bonnes pratiques du forum. 

Pour le moment je dispose d'un certains de blocs, avec des attributs spécifiques pour chaque blocs. Pour chaque attribut, je souhaite une valeur soit ponctuelle (exemple  une dimension) ou valeur prédéfinie (exemple : jeu de 4-5 valeurs possibles). 

Je connais l'ensemble de mes valeurs type, je les ai associés à certains bloc dans la définition d'attribut  où j'ai rentré dans la cellule "INVITE" les différentes valeur attendues dans l'espoir que l'opérateur ecrit les mêmes termes pour compléter la valeur de l'attribut. 

Je ne sais pas encore comment associer une liste de valeurs d'un fichier externe à mes attributs et je souhaite évidemment  le savoir afin de créer des listes pour ensuite les intégrer à des attributs. 

 

 

 

Posté(e)

en vba :

 

sub liste_d_un_fichier
arr = array("CHOIX1","CHOIX2",...,"CHOIXX")
'ensuite tu l'injecte dans un userform avec un combox pour revoir ta liste
Combobox1.list = arr
end sub

après tu as juste à remplir l'attribut :

ou le blorefobj est ton objet bloc

For Each Att In BLOCKREFOBJ.GetAttributes
    If Att.TagString = "Nom de l'attribut" Then
    Att.textString = VALEUR
        Exit For
    Else
    End If
Next Att

 

Posté(e)

Bonjour Luna et merci...

Oui, tu as très bien résumé ma problématique. Pour certains attributs, je souhaite pouvoir proposer une liste bloqués de valeurs, afin d'éviter les erreurs de saisies de l'opérateur. Je vais donc essayer avec la table de propriétées. 

Posté(e)

@lalau,

En plus de ma réponse ci-dessus, tu peux également créer une visibilité à la place de ton attribut (uniquement dans le cas où tu n'as qu'un seul attribut qui doit correspondre à une liste de valeurs prédéfinies !). L'avantage de la visibilité c'est que tu peux sélectionner plusieurs blocs d'un coup et modifier la visibilité en une seule fois, contrairement aux tables de propriétés (uniquement accessible en cliquant sur la petite flèche, mais tu peux avoir plusieurs tables de propriétés par bloc !) où il faut modifier les blocs un à un.
Donc en fonction de tes besoins et de la vitesse d'exécution que tu recherches, tu as plusieurs options. 😉

Si jamais tu as des questions n'hésites pas !

Bisous,
Luna

Posté(e)

Curlygoth, 

Je vais tenté dans un 1er temps la méthodologie de Luna, car  je ne ne suis pas suffisamment aguerri pour la tentative en VBA. Mais je compte bien m'initier à court terme. 

 

 

Posté(e)

Luna, 

Travaillant sur des réseaux d'assainissement, les situations seront différentes d'un plan à l'autre. Pour certains blocs, je n'aurai qu'un seul attribut qui sera associé à un jeu de valeurs, d'autres blocs seront à associés à 2 ou 3 attributs demandant un jeu valeur. Pour le même bloc un certain nombres auront les données entièrement similaires et d'autres avec des données différentes. 

Je vais donc tester la table des propriétés dans un premier temps et je ferai un retour au forum. 

 

 

Posté(e)

Bonjour Luna  et autres membres contributeurs, 

Je me permet de faire un retour suite à la proposition de Luna d'utiliser les tables de propriétés pour les attributs de blocs. Merci Luna, après l'avoir testé la méthode  fonctionne. Je peux ainsi choisir une valeur au sein d' une liste à partir d'une poignée insérée sur mon bloc. 

Cette étape constitue une 1ère et grande avancée par rapport à ma problématique énoncée. Le dessinateur étant en perpétuelle recherche d'optimisation  de ses manips, j'espère pouvoir affiner la méthode actuelle. 

Pour le moment, je dois cliquer sur la poignée associé aux blocs pour avoir accès à ma liste de valeurs. Mais quand je sélectionne le bloc, dans la fenêtre de propriété je ne retrouve plus de liste de valeur affecté à un attribut. L'étape suivante, c'est de trouver une méthodologie afin qu'au moment où je sélectionne un bloc, je puisse dans la fenêtre de propriété,  en cliquant dans la cellule d'un attribut, avoir accès à une liste de valeur associée à cet attribut.

 

 

Posté(e)

Coucou,

J'ai déjà évoqué ce problème dans mon message précédent. J'ai cependant dit des bêtises ^^"
En effet si tu as plusieurs références de blocs qui doivent avoir la même valeur d'attributs, il faut cliquer sur la table de propriétés (dans la palette des propriétés) (cf. la ligne surlignée ci-dessous).
image.png.b5f477ea44bb539ab824f0dbf84b8132.png
Cela va ouvrir la table des propriétés et il suffit de cliquer sur la valeur désirée et de dire "OK" pour que tous les attributs se mettent à jour avec la nouvelle valeur. Donc il est tout à fait possible de modifier plusieurs blocs d'un coup directement depuis la palette des propriétés 😉
Il faut simplement faire attention au nom des tables de propriétés de bloc si jamais tu veux avoir un même table de propriétés entre deux définitions de bloc, bien penser à mettre le même nom !

Bisous,
Luna

  • 2 semaines après...
Posté(e)

Bonjour Luna, 

En retour à tes précieux conseils, effectivement les manips proposées fonctionnent. J'envisage une amélioration des manips, mais j'attends de trouver un peu de temps pour étudier le vba et peut-être pouvoir modifier certaines commandes.   

Encore merci pour ton aide. 

Bien à toi, 

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é