.NET
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Iterate Through Raster Images/Ima ge Dictionary
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
184 Views, 4 Replies
02-28-2012 11:44 AM
Here's the Code I have so far:
I want to iterate through the Image Dictionary and Connect into the Raster ImageDef Properties.
I want to be able to modify and fix missing Raster Images.
Can someone help me get this code sorted out.
For Each myObjID As ObjectId In myModelSpace
Dim myEnt As Entity = myObjID.GetObject(OpenMode.ForRead)
If TypeOf myEnt Is Image Then
Dim myRasterImg As RasterImage
Dim myRasterImgDef As RasterImageDef
'Open The Dictionary
Dim ImgDict As ObjectId = RasterImageDef.GetImageDictionary(DatabaseIn)
For Each dictEntry In ImgDict
Next
End If
Solved! Go to Solution.
Re: Iterate Through Raster Images/Ima ge Dictionary
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
02-28-2012 12:21 PM in reply to:
VB_Autocad_guy
assuming transaction "avctivetx" is started
For Each dicentry As DBDictionaryEntry In imageDict
Dim rasterimgDef As RasterImageDef = CType(activetx.GetObject(CType(dicentry.Value, ObjectId), OpenMode.ForRead), RasterImageDef)
msg = msg & rasterimgDef.ActiveFileName & vbCrLf
Next
Re: Iterate Through Raster Images/Ima ge Dictionary
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
02-28-2012 01:31 PM in reply to:
fieldguy
How would I get the RasterImageDef and it's attached properties?
ElseIf TypeOf myEnt Is Image Then
Dim myExtImage As New extractRasterImage
Dim myRasterImage As RasterImage = CType(myTrans.GetObject(myEnt.ObjectId, OpenMode.ForRead), RasterImage)
MsgBox(myRasterImage.Path)
myExtImage.Path = myRasterImage.Path
myExtractedDB.RasterImages.Add(myExtImage)
Re: Iterate Through Raster Images/Ima ge Dictionary
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
02-28-2012 01:36 PM in reply to:
VB_Autocad_guy
If anyone's wondering this is how I got it to work.
'Start(Transaction)
Using myTrans As Transaction = DatabaseIn.TransactionManager.StartTransaction
'Take a Look at Attachments
'Open The Dictionary
Dim nod As DBDictionary
Dim imageDict As DBDictionary
nod = CType(myTrans.GetObject(DatabaseIn.NamedObjectsDic tionaryId, OpenMode.ForRead, False), DBDictionary)
imageDict = CType(myTrans.GetObject(nod.GetAt("ACAD_IMAGE_DICT "), OpenMode.ForRead, False), DBDictionary)
Dim msg As String = ""
For Each dicentry As DBDictionaryEntry In imageDict
Dim myRasterImgDef As RasterImageDef = CType(myTrans.GetObject(CType(dicentry.Value, ObjectId), OpenMode.ForRead), RasterImageDef)
msg = (msg & myRasterImgDef.ActiveFileName & vbTab & myRasterImgDef.FileType & vbCr & _
vbTab & myRasterImgDef.SourceFileName & vbCrLf)
Next
MsgBox(msg)
Re: Iterate Through Raster Images/Ima ge Dictionary
Options
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
02-28-2012 01:46 PM in reply to:
VB_Autocad_guy
Never mind...
Found it
ElseIf TypeOf myEnt Is Image Then
'Database Image Attachment
Dim myExtImage As New extractRasterImage
Dim myRasterImage As RasterImage = CType(myTrans.GetObject(myEnt.ObjectId, OpenMode.ForRead), RasterImage)
Dim myRasterImageDef As RasterImageDef = CType(myTrans.GetObject(myRasterImage.ImageDefId, OpenMode.ForRead), RasterImageDef)
myExtImage.Path = myRasterImage.Path
myExtImage.ActiveFullFileName = myRasterImageDef.ActiveFileName
MsgBox(myRasterImage.Path & myRasterImageDef.ActiveFileName)
myExtractedDB.RasterImages.Add(myExtImage)
