Annonces

À partir du mois de décembre, nous archiverons le contenu de la communauté datant de 10 ans et plus. Cette FAQ fournit de plus amples informations.

Insertion de combobox dans le xml des classes d'objets

Anonymous

Insertion de combobox dans le xml des classes d'objets

Anonymous
Non applicable

Bonjour à tous !

 

Après de nombreuses recherches je n'ai toujours pas trouvé une solution à mon problème, je me tourne donc vers vous pour savoir si ce que je désire faire est techniquement possible avec AutoCAD Map 2017 ou pas...

 

Mon objectif est de pouvoir assigner des attributs pré-établis à des objets (sous un format .dwg) pour ensuite les exporter en shapefile.

 

La solution que j'utilise actuellement passe par la création de classes d'objets.

J'ai donc adapté un code XML afin de pouvoir assigner un configuration pré-établie sur mes objets.

 

Jusque là, pas trop de souci, mais je n'arrive pas à trouver une solution pour obtenir des liste déroulantes pour mes caractéristiques.

 

Voici une partie du code xml:

 

<Property name="NAT_CO" psrc="ACAD_OCP" primitivetype="OcText" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="Conduite_assainissement/Conduite_rejet_indus/Caniveau_filtre/Caniveau_fil_eau/Trace_virtuel/Fosse_assainissement/Autre" range=""/>
					<Property name="TYPE_TR" psrc="ACAD_OCP" primitivetype="OcText" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="EP/EU/Mixte/Autre" range=""/>
					<Property name="TYPE_CO" psrc="ACAD_OCP" primitivetype="OcText" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="Souterrain,Aerien,Autre" range=""/>
					<Property name="DIAM_TR" psrc="ACAD_OCP" primitivetype="OcNumericI4" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="200" range=""/>
					<Property name="GI_AMONT" psrc="ACAD_OCP" primitivetype="OcNumericI4" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="20" range=""/>
					<Property name="GI_AVAL" psrc="ACAD_OCP" primitivetype="OcNumericI4" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="20" range=""/>
					<Property name="TYPE_CO" psrc="ACAD_OCP" primitivetype="OcText" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="Beton/PVC/Autre" range=""/>
					<Property name="ANNEE_POSE" psrc="ACAD_OCP" primitivetype="OcNumericI4" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="2000" range=""/>
					<Property name="COMM_TR" psrc="ACAD_OCP" primitivetype="OcText" creatable="Oui" storageHint="&lt;Hint className=&quot;Assainissement&quot;/&gt;" readOnly="Non" visible="Oui" default="" range=""/>

(je n'ai pas mis la suite du code c'est inutile à mon avis)

 

Ce qui permet de définir le type d'attribut est donné par la variable

primitivetype="OcText"

dans le cas d'un texte.

 

Il est possible d'assigner des valeurs par défaut et même un range de valeurs.

 

Y-a-t-il un moyen d'obtenir une liste avec des attributs par défaut que l'on peut sélectionner ?

Actuellement je suis obligé de supprimer "à la main" les attributs qui ne conviennent pas comme sur le screenshot ci-dessous:

Capture.PNG

 

Cela pourrait amener à des erreurs d'encodage des valeurs et donc biaiser les valeurs insérées dans le shp.

 

Il est pourtant possible d'obtenir des listes comme ci-dessous:

Sans titre.png

 

ou encore

 

Sans titre2.png

 

Mais ces variables sont OcLayer et OcBool.

 

Je cherche juste à afficher une liste avec des attributs que j'aurai moi même intégrés dans mon code mais cela ne me semble pas faisable actuellement 😞

 

Est-ce qu'une liste existe dans les variables Oc ? Comme par exemple OcListbox ou quelque chose du style.

L'autre solution serait de voir du côté des valeurs assignées par défaut ou la possibilité d'écrire des intervalles spécifiques ?

Y-aurait-il moyen d'obtenir quelque chose grâce à un LISP ?

La seule piste que j'ai trouvé sur un forum montre un code XML de ce style:

<aocStorageHints>
					<table aocbeneficiaries="Autogenerated_SDF_ID,LENGTH,L_F_ADD,L_T_ADD,NAME,PREFIX,R_F_ADD,R_T_ADD,SEG_ID,ST_NAME,ST_TYPE,SUFFIX,TYPE,ZIPL,ZIPR">
						<description>
							<tabletype>2</tabletype>
							<name>Schema_Roads</name>
							<fieldcount>15</fieldcount>
							<fullname>Schema_Roads</fullname>
						</description>
						<field>
							<order>0</order>
							<name>Autogenerated_SDF_ID</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>1</order>
							<name>LENGTH</name>
							<type>8</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>2</order>
							<name>L_F_ADD</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>3</order>
							<name>L_T_ADD</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>4</order>
							<name>NAME</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>5</order>
							<name>PREFIX</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>6</order>
							<name>R_F_ADD</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>7</order>
							<name>R_T_ADD</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>8</order>
							<name>SEG_ID</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>9</order>
							<name>ST_NAME</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>10</order>
							<name>ST_TYPE</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>11</order>
							<name>SUFFIX</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>12</order>
							<name>TYPE</name>
							<type>12</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>13</order>
							<name>ZIPL</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
						<field>
							<order>14</order>
							<name>ZIPR</name>
							<type>4</type>
							<key>0</key>
							<precision>0</precision>
							<scale>0</scale>
						</field>
					</table>

Mais ça n'a pas l'air de vraiment fonctionner ou il est possible que quelque chose m'échappe !

 

Merci à ceux qui ont eu le courage de lire mon sujet jusqu'au bout 😛

Et si vous n'avez pas la solution, croyez-vous que c'est réalisable d'une manière ou d'une autre dans AutoCAD Map 2017 ?

 

PS: s'il vous faut des infos supplémentaires n'hésitez pas à demander !

 

Cordialement,

Valentin

0 J'aime
Répondre
441 Visites
6 Réponses
Replies (6)

patrick.emin
Alumni
Alumni
Bonjour, as tu déjà posé ta question sur les forums anglo-saxons?

Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
0 J'aime

Anonymous
Non applicable

Bonjour,

 

J'ai parcouru les forums anglo-saxons (même russes) mais je n'ai pas posté dessus.

 

Je n'ai pas trouvé de problèmes exactement similaires au mien.

 

Aurais-je vraiment plus de chances ? Car j'ai l'impression que les possibilités sont limitées.

 

Merci,

 

Valentin

0 J'aime

braudpat
Mentor
Mentor

 

Hello

 

Welcome to the Autodesk / AutoCAD Forums !

 

Je ne suis pas sur de bien te suivre !?

 

SVP tu parles de quoi exactement :

- GeoClassification avec ACAD MAP 2004-2017 ?

- Modeles Metiers (ex TopoBase) de MAP 2012-2017 et formulaires de saisie ?

- Autre chose ?

 

Regards, Patrice

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


0 J'aime

Anonymous
Non applicable

Merci braudpat !

 

Pour résumer simplement je me demande s'il existe une fonction métier dans AutoCAD qui permet d'insérer une combobox dans les classes d'objets.

 

Je veux ajouter des attributs à un .dwg qui soient établis à l'avance pour faciliter l'encodage par des utilisateurs (dessinateurs). Mais comme il y a plusieurs choix possibles pour chaque attribut voudrais avoir une liste déroulante pour sélectionner celui qui convient.

 

Je ne pense pas que ce soit une Geoclassification et je n'utilise pas TopoBase, juste une version d'AutoCAD Map 2017 classique (pas d'extension) et sans utiliser les FDO.

 

Je travaille avec des fichiers .dwg classiques (des dessins provenant de levés).

 

En espérant que ce soit plus clair maintenant.

 

Merci d'avance !

 

Valentin

0 J'aime

braudpat
Mentor
Mentor

 

Hello

 

OK merci pour les precisions ...

 

Desole mais je ne suis pas developpeur donc je ne peux pas t'aider dans ce domaine !

 

Neanmoins par programmtion en Lisp/VLisp, VBA, ARX, Dotnet, etc, il est "facile" de presenter a l'utilisateur une liste de choix possible pour N Attributs (ou champs) puis d'inserer le Bloc/Symbole et APRES de remplir automatiquement les attributs en consequence ...

 

Regards, Patrice

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


0 J'aime

Anonymous
Non applicable

Merci pour la réponse !

 

Je pense aussi que la solution se trouve dans cette voie 😉

 

Je tenterai de me plonger un peu plus dans ce domaine quand j'aurai le temps !

 

Si je trouve une solution (complète ou partielle) je viendrai donner de mes nouvelles sur cette discussion afin de faire partager mon expérience 🙂

 

Cordialement,

 

Valentin

0 J'aime