PhilOctet Posté(e) le 14 février 2010 Posté(e) le 14 février 2010 Bonjour, J'ai réussi avec les blocs : Public Sub RenamePathBlock(ByRef dtb As AcBdd.Database, ByRef acTrans As AcBdd.Transaction, ByVal NomBlock As String) Dim acBlcTbl As AcBdd.BlockTable = acTrans.GetObject(dtb.BlockTableId, AcBdd.OpenMode.ForRead)Dim acBlcTblRec As AcBdd.BlockTableRecord = acTrans.GetObject(acBlcTbl(NomBlock), AcBdd.OpenMode.ForWrite) Par contre, je n'arrive pas à accéder aux propriétés d'une image ou d'un calque sous jacent en connaissant son nom de référence afin de la modifier. Je pense que la routine doit commencer par : Public Sub RenamePathImage(ByRef dtb As AcBdd.Database, ByRef acTrans As AcBdd.Transaction, ByVal NomImage As String) Dim DBDIct As AcBdd.DBDictionary = acTrans.GetObject(dtb.NamedObjectsDictionaryId, AcBdd.OpenMode.ForRead)Dim DBImgDIct As AcBdd.DBDictionary = acTrans.GetObject(DBDIct.GetAt("ACAD_IMAGE_DICT"), AcBdd.OpenMode.ForRead) merci de votre aide. [Edité le 14/2/2010 par PhilOctet]
(gile) Posté(e) le 14 février 2010 Posté(e) le 14 février 2010 Salut, En DotNet les dictionnaires (Dictionary) sont des conteneurs de paires clé/valeur (Key/Value) où les clés sont uniques.Dans un DBDictionary, le clé est de type string et la valeur de type ObjectId.Pour accéder à une entrée du NamedObjectsDictionnary, on utilise la méthode GetAt(), et bien c'est la même chose pour les entrées de tous les DBDictionary. DBDictionary NOD = (DBDictionary)tr.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead); if (!NOD.Contains("ACAD_IMAGE_DICT")) return; DBDictionary imgDict = (DBDictionary)tr.GetObject(NOD.GetAt("ACAD_IMAGE_DICT"), OpenMode.ForRead); if (!imgDict.Contains("NomImage")) return; RasterImageDef img = (RasterImageDef)tr.GetObject(imgDict.GetAt("NomImage"), OpenMode.ForWrite, false); Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PhilOctet Posté(e) le 14 février 2010 Auteur Posté(e) le 14 février 2010 Bonsoir, Merci. Au risque de te surprendre, c'est bien ce que je faisais. Mais cela m'a permis d'aller chercher ailleurs d'où venait mon problème. En réalité, le nomimage que je passais en paramètre était une extraction du nom de fichier et non pas le nom de l'image dans le dictionnaire. encore merci
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant