Max73 Posté(e) le 23 septembre 2022 Posté(e) le 23 septembre 2022 Bonjour, a tous petit question auriez vous une solution pour optimiser l extraction de donne sans passé part toute les fenêtres ? ci-joint vidéos explicatif. https://drive.google.com/drive/folders/1XxMCNLsdWXStd2VvWFoZ6ulr7bLJe43o?usp=sharing Merci Citer
Curlygoth Posté(e) le 23 septembre 2022 Posté(e) le 23 septembre 2022 oui par programmation c'est beaucoup plus simple ! Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
didier Posté(e) le 25 septembre 2022 Posté(e) le 25 septembre 2022 Bonjour @Max73 C'est bien d'avoir pensé à déposer un fichier. Mais il n'est pas accessible, ça c'est moins bien. J'ai demandé une autorisation d'accès qui n'est jamais venue. Je pense, sans avoir vu le fichier explicatif, que la solution est : soit la programmation soit Enregistrer la requête (fichier dxe) Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Max73 Posté(e) le 26 septembre 2022 Auteur Posté(e) le 26 septembre 2022 bonjour, @didier oui j ai vue, et j ai modifier l accès normalement ca doit être bon tu as accès au fichier. Citer
lecrabe Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Hello No Comprendo ! Quand tu fais l extraction de donnees, quels sont les Objets que tu traites ? et quelles proprietes t'interessent ? Par exemple : je suis interesse par les Polylignes closes, les Cercles et je desire le nom du calque, la longueur / perimetre et la surface / aire !? ou bien les Blocs avec le Calque et les attributs, etc La Sante, Bye, lecrabe Citer Autodesk Expert Elite Team
didier Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Bonjour @Max73 Je ne comprends pas bien la réponse juste avant le message de Lecrabe. C'est OK ou il faut continuer à chercher ? En programmation ou non ? Quelles données faut-il extraire ? Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Steven Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Bonjour @Max73, Non, on ne peut pas optimiser l'extraction e données à AutoCAD. Si vous souhaitez juste faire un tableau répertoriant des blocs, vous pouvez utiliser le lisp TABLOBLO de @Tramber ou le lisp de Lee Mac, Count, en pièces jointes, qui vous évitera toutes les étapes de l'extraction de données d'AutoCAD. Cependant, il n'y aura aucune liaisons entre le tableau et les blocs. Vous ne pourrez donc pas mettre à jour les données si vous copier des blocs, si vous ajouté ou si vous en supprimer. Il faudra effacer le tableau existant pour en créer un nouveau. De ce fait, si vous souhaitez pouvoir mettre à jour votre tableau avec le clic droite > Mettre à jour les liaisons de données..., il faudra passer par l'extraction de données et ses étapes au moment de sa création . Si la mise à jour des tableaux ne vous est pas indispensable, vous pouvez utiliser les lisp. TABLOBLO.lsp CountV1-5.lsp Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Luna Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Coucou, Le plus simple je pense est d'enregistrer les choix de types d'objets, propriétés et ordre des colonnes dans un fichier .dxe et de réutiliser ce fichier .dxe à chaque nouvelle extraction similaire (comme chat le nombre de fenêtres de l'assistant est le même mais il suffit d'appuyer sur suivant sans se poser de questions, ce qui est très rapide). Et il faut créer autant de fichiers .dxe que d'extractions de données différentes. Alors certes au début c'est long et emmerdant mais une fois que tu as une bibliothèque de fichier .dxe pour l'ensemble des extractions de données possibles au cours d'un projet, cela va très vite finalement. Après s'il y a certaines propriétés que tu désires extraire mais qui ne sont pas dispo via l'extraction de données, alors là pas le choix il faudra un programme spécifique pour une extraction spécifique (donc le nombre de programmes risque d'être conséquent si tu as plein d'extractions différentes possibles). Autrement il faudrait prévoir une programmation beaucoup plus complexe et généraliste, mais du coup on va se rapprocher de ce que fait l'assistant d'extraction de données, donc pas vraiment de gain de temps au final (mais une perte de temps considérable en terme de prog' !). Bref, le sujet est vaste et ton fichier .pptx avec juste une capture d'écran de ton plan .dwg n'aide pas vraiment à nous orienter sur la bonne voie. Bisous, Luna Citer
lecrabe Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Hello Alors en effet j utilise souvent des Lisps specifiques pour l'Extraction de donnees ! Surtout pour certains trucs que AutoCAD ne sait pas faire : -- Extraire le Handle / Code maintien d une Entite -- Extraire la Longueur / Perimetre ou la Surface / Aire d'un MPOLYGON -- etc Le Lisp "OD&PROP2CSV" ci-apres est de notre grand Maitre Bruno (Bonuscad) A l'origine il a ete concu pour extraire les Proprietes principales des Entites (Lineaires et Surfaciques et NON PAS les Blocs) ET les Donnees d Objet (Object Data) de AutoCAD MAP (et AutoCAD CIVIL) ... Choses "Inconnues" pour AutoCAD ! Ce Lisp a ete modifie recemment pour traiter AUSSI les Entites SANS Donnees d Objet (Object Data) A vous de voir ... La Sante, Bye, lecrabe ;; ;; Routine v1.03 developee par Bruno V. (Bonuscad) pour Patrice B. ;; ;; Pour les ODs de AutoCAD MAP / CIVIL 201X ;; ;; ---- Version modifiee avec Uniquement les Champs OD + Proprietes voulues ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Vers 1.03 qui traite aussi les objets SANS OD ! ;; ;; Vers 1.03 qui permet de multiples selections ! (Multiples Types d objet) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (vl-load-com) (defun c:OD&PROP2CSV ( / js most js_sel dxf_cod mod_sel n lremov nb file_name cle f_open key_sep str_sep oldim tmp_file dcl_file lst_tabl_def lst_def l_tag e_meas l_tod l_val) (setq js (ssadd) most "Yes") (while (eq most "Yes") (princ "\nChoix d'un objet modele pour le filtrage: ") (while (null (setq js_sel (ssget "_+.:E:S" (list '(0 . "*") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n est pas un objet valable pour cette fonction ! ") ) (setq dxf_cod (entget (ssname js_sel 0))) (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 2 66 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov)))) (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) (initget "Unique Tout Manuel _Single All Manual") (if (eq (setq mod_sel (getkword "\nMode de selection filtree, choix [Unique/Tout/Manuel]<Manuel>: ")) "Single") (setq n -1) (if (eq mod_sel "All") (setq js_sel (ssget "_X" dxf_cod) n -1) (setq js_sel (ssget dxf_cod) n -1) ) ) (repeat (setq nb (sslength js_sel)) (ssadd (ssname js_sel (setq nb (1- nb))) js) ) (initget "Oui Non _Yes No") (setq most (getkword "\nAjouter une autre sélection filtrée [Oui/Non]? <Non>: ")) (if (not most) (setq most "No")) ) (setq file_name (getfiled "Nom du fichier a créer ?: " (strcat (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3)) "csv") "csv" 37)) (if (null file_name) (exit)) (if (findfile file_name) (progn (prompt "\nFichier éxiste déjà!") (initget "Ajoute Remplacer annUler _Add Replace Undo") (setq cle (getkword "\nDonnees dans fichier? [Ajouter/Remplacer/annUler] <R>: ") ) (cond ((eq cle "Add") (setq cle "a") ) ((or (eq cle "Replace") (eq cle ())) (setq cle "w") ) (T (exit)) ) (setq f_open (open file_name cle)) ) (setq f_open (open file_name "w")) ) (setq oldim (getvar "dimzin")) (setvar "dimzin" 0) (setq tmp_file (vl-filename-mktemp "OD2CSV.dcl") dcl_file (open tmp_file "w") ) (write-line "OD2CSV : dialog { label = \"Parametrage de l'export CSV\"; : column { label = \"Choix du separateur de champs\"; :radio_button { label = \"Separateur = Espace\"; mnemonic = \"e\"; key = \"SPace\"; } :radio_button { label = \"Separateur = Virgule\"; mnemonic = \"v\"; key = \"Comma\"; } :radio_button { label = \"Separateur = Point-virgule\"; mnemonic = \"p\"; key = \"SEmicolon\"; } :radio_button { label = \"Separateur = Tabulation\"; mnemonic = \"t\"; key = \"Tabulation\"; } } : column { label = \"Choix des colonnes a inscrire\"; : column { : toggle { label = \"type de l Objet\"; mnemonic = \"O\"; key = \"Typ_obj\"; } : toggle { label = \"caLque de l objet\"; mnemonic = \"L\"; key = \"q_lay\"; } : toggle { label = \"Couleur de l objet\"; mnemonic = \"C\"; key = \"q_col\"; } : toggle { label = \"Type de ligne de l objet\"; mnemonic = \"T\"; key = \"q_ltyp\"; } : toggle { label = \"Epaisseur de ligne de l objet\"; mnemonic = \"E\"; key = \"q_weig\"; } : toggle { label = \"Handle l objet\"; mnemonic = \"H\"; key = \"q_hand\"; } : toggle { label = \"lonGueur l objet\"; mnemonic = \"G\"; key = \"q_length\"; } : toggle { label = \"Aire de l objet\"; mnemonic = \"A\"; key = \"q_area\"; } } } ok_cancel_err; }" dcl_file ) (close dcl_file) (setq str_sep (chr 59) Typ_obj "1" q_lay "1" q_col "0" q_ltyp "0" q_weig "0" q_hand "0" q_length "0" q_area "0") (setq dcl_id (load_dialog tmp_file)) (setq what_next 2) (while (< 1 what_next) (if (not (new_dialog "OD2CSV" dcl_id)) (exit)) (cond ((eq str_sep (chr 32)) (set_tile "SPace" "1") (mode_tile "SPace" 2)) ((eq str_sep (chr 44)) (set_tile "Comma" "1") (mode_tile "Comma" 2)) ((eq str_sep (chr 59)) (set_tile "SEmicolon" "1") (mode_tile "SEmicolon" 2)) ((eq str_sep (chr 9)) (set_tile "Tabulation" "1") (mode_tile "Tabulation" 2)) ) (set_tile "Typ_obj" Typ_obj) (set_tile "q_lay" q_lay) (set_tile "q_col" q_col) (set_tile "q_ltyp" q_ltyp) (set_tile "q_weig" q_weig) (set_tile "q_hand" q_hand) (set_tile "q_length" q_length) (set_tile "q_area" q_area) (set_tile "error" "") (action_tile "SPace" "(setq str_sep (chr 32))") (action_tile "Comma" "(setq str_sep (chr 44))") (action_tile "SEmicolon" "(setq str_sep (chr 59))") (action_tile "Tabulation" "(setq str_sep (chr 9))") (action_tile "Typ_obj" "(setq Typ_obj $value)") (action_tile "q_lay" "(setq q_lay $value)") (action_tile "q_col" "(setq q_col $value)") (action_tile "q_ltyp" "(setq q_ltyp $value)") (action_tile "q_weig" "(setq q_weig $value)") (action_tile "q_hand" "(setq q_hand $value)") (action_tile "q_length" "(setq q_length $value)") (action_tile "q_area" "(setq q_area $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq what_next (start_dialog)) ) (unload_dialog dcl_id) (vl-file-delete tmp_file) (repeat (sslength js) (setq ename (ssname js (setq n (1+ n))) vla_obj (vlax-ename->vla-object ename) TC (vlax-get-property vla_obj 'TrueColor)) (setq lst_def nil l_tag nil e_meas nil l_tod nil l_val nil) (foreach z '(q_area q_length q_hand q_weig q_ltyp q_col q_lay Typ_obj) (if (not (zerop (atoi (eval Z)))) (cond ((eq z 'Typ_obj) (setq l_tag (cons "Type d'Objet" l_tag) l_val (cons (vlax-get vla_obj 'ObjectName) l_val))) ((eq z 'q_lay) (setq l_tag (cons "Calque" l_tag) l_val (cons (vlax-get vla_obj 'Layer) l_val))) ((eq z 'q_col) (setq l_tag (cons "Couleur" l_tag) l_val (cons (cond ((eq (vlax-get-property TC 'ColorMethod) 195) (itoa (vlax-get-property TC 'ColorIndex)) ) ((eq (vlax-get-property TC 'ColorMethod) 194) (if (eq (vlax-get-property TC 'ColorName) "") (strcat "R=" (itoa (vlax-get-property TC 'Red)) ",G=" (itoa (vlax-get-property TC 'Green)) ",B=" (itoa (vlax-get-property TC 'Blue)) ) (vlax-get-property TC 'ColorName) ) ) ((eq (vlax-get-property TC 'ColorMethod) 193) "ByBlock" ) ((eq (vlax-get-property TC 'ColorMethod) 192) "ByLayer" ) ) l_val ) ) ) ((eq z 'q_ltyp) (setq l_tag (cons "Type Ligne" l_tag) l_val (cons (vlax-get vla_obj 'Linetype) l_val))) ((eq z 'q_weig) (setq l_tag (cons "Epaisseur Ligne" l_tag) l_val (cons (vlax-get vla_obj 'Lineweight) l_val))) ((eq z 'q_hand) (setq l_tag (cons "Handle de l'Objet" l_tag) l_val (cons (vlax-get vla_obj 'Handle) l_val))) ((eq z 'q_length) (setq l_tag (cons "Longueur de l'Objet" l_tag)) (if (member (vlax-get vla_obj 'ObjectName) '("AcDbEllipse" "AcDbSpline" "AcDbHelix")) (setq e_meas (vlax-curve-getDistAtParam vla_obj (vlax-curve-getEndParam vla_obj))) (foreach typ_measure '("Length" "ArcLength" "Circumference" "Perimeter") (if (vlax-property-available-p vla_obj (read typ_measure)) (setq e_meas (vlax-get vla_obj (read typ_measure))) ) ) ) (setq l_val (cons (if e_meas e_meas 0.0) l_val)) ) ((eq z 'q_area) (setq l_tag (cons "Surface de l'Objet" l_tag) l_val (cons (if (vlax-property-available-p vla_obj "Area") (vlax-get vla_obj 'Area) 0.0) l_val) ) ) ) ) ) (if (setq lst_tabl_def (mapcar 'ade_odtabledefn (ade_odgettables ename))) (foreach n lst_tabl_def (foreach el n (if (listp (cdr el)) (foreach sel (cdr el) (foreach msel sel (if (eq (car msel) "ColName") (setq lst_def (cons (cdr msel) (cons (ade_odgetfield ename (cdar n) (cdr msel) 0) lst_def))) (if (eq (car msel) "ColDesc") (setq lst_def (cons (cdr msel) lst_def))) ) ) ) ) (while lst_def (repeat 3 (setq l_tag (cons (car lst_def) l_tag) l_tod (cons (cadr lst_def) l_tod) l_val (cons (caddr lst_def) l_val) lst_def (cdddr lst_def) ) ) ) (if (and l_tag l_tod l_val) (progn ;|La ligne suivante peut etre mise en rem ou supprimee si le titre et la description de la table ne doivent pas etre exportees.|; ;;; (write-line (strcat (cdaar lst_tabl_def) " " (cdadar lst_tabl_def)) f_open) ;|Les 2 lignes suivantes peuvent etre mise en rem ou supprimees si la definition de l'etiquette et sa valeur ne doivent pas etre exportees.|; ;;; (write-line (apply 'strcat (mapcar '(lambda (x) (strcat (if (not (type x)) " " x) str_sep)) l_tag)) f_open) ;;; (write-line (apply 'strcat (mapcar '(lambda (x) (strcat (if (not (type x)) " " x) str_sep)) l_tod)) f_open) (write-line (apply 'strcat (mapcar '(lambda (x) (strcat (cond ((eq (type x) 'INT) (itoa x)) ((eq (type x) 'REAL) (rtos x 2)) ((not (type x)) " ") (T x) ) str_sep ) ) l_val)) f_open ) (setq l_tag nil l_tod nil l_val nil) ) ) ) ) (if (and l_tag l_val) (progn (write-line (apply 'strcat (mapcar '(lambda (x) (strcat (cond ((eq (type x) 'INT) (itoa x)) ((eq (type x) 'REAL) (rtos x 2)) ((not (type x)) " ") (T x) ) str_sep ) ) l_val)) f_open ) (setq l_tag nil l_val nil) ) ) ) ) (close f_open) (setvar "dimzin" oldim) (prin1) ) Citer Autodesk Expert Elite Team
Max73 Posté(e) le 26 septembre 2022 Auteur Posté(e) le 26 septembre 2022 bonjour a tous et merci a tous pour votre réponse, Moi ce qui m intéressait dans un premier temps c'était de savoir ci c'était possible de réduire et simplifier toute les étapes (même si il na qua faire suivant) de l'extraction de donnée. et j ai du coup mes réponses dans tout ce que vous avez répondu. Ce qui m intéressait c'est d extraire des attributs des bloc, et de ne plus avoir de lien entre le tableau de donne et les blocs donc je vais tester les Lisps et je verrai bien ce que cela donne. Effectivement ci la programmation et trop long et qu' il faut autant de clic a la fin que de faire l'extraction de donne original il n y a aucun intérêt surtout que vue que j ai des fichier de base enregistre il me suffit de faire suivant. Merci a tous pour votre réponse. Citer
Curlygoth Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Citation Effectivement ci la programmation et trop long et qu' il faut autant de clic a la fin C'est justement le but de la programmation ! un bouton et c'est tout ! suivant ce que TU veux Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
Luna Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 @Curlygoth, Mon point était que la programmation peut s'adapter à pleins de situation, et dans le cas des extractions de données, on peut soit faire le choix d'avoir un programme pour chaque type d'extraction (et donc le nombre de clic se résume à un ou deux car tous les filtres sont écrits en dur dans le programme) soit avoir un programme un peu plus généraliste et auquel cas il est en mesure de faire des extractions différentes (et donc le nombre de clics est beaucoup plus important car les filtres sont définis pendant l'exécution du programme par l'utilisateur lui-même). Donc tout dépend dans quel cas on peut/veut se situer. Certains client préfèrent avoir 400 boutons différents et d'autres veulent un bouton unique qui regroupe tout. Mais il n'y a aucun moyen de faire UN programme qui fait TOUT avec UN seul clic 😜 Bisous, Luna Citer
Curlygoth Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 @Luna je suis d'accord de ton point de vue ^^ J'ai la chance de travailler avec des bases "à remplir" XD ("ca depend aussi de ma bibliothéque") Je dois extraire du Télécom (vidéo, fibre, portail),de l'éclairage public, de l'AEP, de la BT,de la HTA, De l'assainissement, du chauffage urbain, etc... chaque extraction de ces réseaux sont différentes (Long AEP != Long BT != Long Télécom) ce calcul tous différemment, mais les résultats vont dans une base et le détail de chaque "tracé" vont dans des tableaux de détail suivant le client pour leur envoyé. J'ai donc plusieurs résultats pour un bouton. Mais je suis d'accord avec toi, demain j'ai un nouveau "client" qui veut encore quelque chose de différent, il faudra que je me creuse les méninge pour le satisfaire ^^ parce que en fin de compte l'extraction de données le résultat => c'est un tableau ! et un tableau ça s'adapte ! Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
Steven Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Il y a 2 heures, Max73 a dit : bonjour a tous et merci a tous pour votre réponse, Moi ce qui m intéressait dans un premier temps c'était de savoir ci c'était possible de réduire et simplifier toute les étapes (même si il na qua faire suivant) de l'extraction de donnée. et j ai du coup mes réponses dans tout ce que vous avez répondu. Ce qui m intéressait c'est d extraire des attributs des bloc, et de ne plus avoir de lien entre le tableau de donne et les blocs donc je vais tester les Lisps et je verrai bien ce que cela donne. Effectivement ci la programmation et trop long et qu' il faut autant de clic a la fin que de faire l'extraction de donne original il n y a aucun intérêt surtout que vue que j ai des fichier de base enregistre il me suffit de faire suivant. Merci a tous pour votre réponse. L'intérêt de l'extraction de données avec un lien entre les attributs de blocs et un tableau est de pouvoir mettre le tableau à jour lorsqu'on modifie les attributs ou lorsqu'on ajoute des blocs avec attributs. Pourquoi vouloir faire une extraction de données avec les attributs sans avoir de lien avec le tableau ? Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Steven Posté(e) le 26 septembre 2022 Posté(e) le 26 septembre 2022 Le 26/09/2022 à 14:10, Max73 a dit : bonjour a tous et merci a tous pour votre réponse, Moi ce qui m intéressait dans un premier temps c'était de savoir ci c'était possible de réduire et simplifier toute les étapes (même si il na qua faire suivant) de l'extraction de donnée. et j ai du coup mes réponses dans tout ce que vous avez répondu. Ce qui m intéressait c'est d extraire des attributs des bloc, et de ne plus avoir de lien entre le tableau de donne et les blocs donc je vais tester les Lisps et je verrai bien ce que cela donne. Effectivement ci la programmation et trop long et qu' il faut autant de clic a la fin que de faire l'extraction de donne original il n y a aucun intérêt surtout que vue que j ai des fichier de base enregistre il me suffit de faire suivant. Merci a tous pour votre réponse. Aussi, les 2 Lisps que j'ai mis à disposition ne te serviront pas si tu souhaites extraire les attributs de blocs. Ceux-ci servent à extraire les blocs pour faire un quantitatif. Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Max73 Posté(e) le 4 octobre 2022 Auteur Posté(e) le 4 octobre 2022 Bonjour, bon je suis d accord un peut avec tout le monde dans l idée générale de l'extraction et de la programmation. Moi l idée et que j obtienne le tableau ci joint en évitant de passé par toute les fenêtre même ci j ai que des "entrée" a faire. Cela d optimisé mon travail. Ce sont des bloc avec des attribues que je renseigne en fonction de mon type de support et de tube. Maintenant je sais aussi que tout n ai pas évident, simple et possible. Ce que je recherche c'est du simple et pas compliqué, et si c'est pas possible c'est pas un soucis. Citer
Curlygoth Posté(e) le 4 octobre 2022 Posté(e) le 4 octobre 2022 en programmation : tout est possible et moi je dis c'est possible et les lignes en background gris c'est quoi ? Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
Luna Posté(e) le 5 octobre 2022 Posté(e) le 5 octobre 2022 Coucou, Et la commande QUANTITE (ou NOMBRE) peut-elle répondre à ton besoin ? Seul problème, elle permet de séparer les quantités par rapport à l'état de visibilité uniquement (et non les attributs, etc...). Si en revanche il te faut un programme, c'est faisable mais dans ce cas il faudra définir si tu as des contraintes à imposer (par exemple, seuls les blocs dont le nom commencent par "DN*" sont sélectionnables. Ont-ils un seul et unique attribut ou plusieurs ? Sont-ils dynamiques ou non ? ...) Bisous, Luna Citer
Mathieu C Posté(e) le 6 octobre 2022 Posté(e) le 6 octobre 2022 Pour cette utilité là j’utilisais la commande ATTOUT qui sort les attributs des blocs sélectionnés dans un fichier CSV. Puis créais un Excel qui récupère ces données et les présente au propre dans un tableau croisé dynamique. Pas de prog (je ne sais pas faire). En plus avec ATTIN tu peux aussi modifier les données sur ton csv et les réinjecter dans Autocad. Citer Anciennement ZZA427 sur CADXP, je ne fais quasiment plus d'Autocad, mais je viens voir si la partie REVIT du Forum est active. Un crédo que j'aime bien : Nul n'est si vieux qu'il ne puisse apprendre, nul n'est si jeune qu'il ne puisse enseigner.
Luna Posté(e) le 6 octobre 2022 Posté(e) le 6 octobre 2022 @Max73, Serait-il possible d'avoir un .dwg d'exemple avec quelques références de blocs que tu désires comptabiliser pour voir les blocs à prendre en compte (essaye de mettre toutes les différentes possibilités pour être sûr que l'on prenne bien toutes tes contraintes) et tester en cas de besoin ? Bisous, Luna Citer
Messages recommandés