.NET

Reply
Active Contributor
38 Posts
0 Kudos
Registered: ‎09-06-2007
Post 1 of 5
Accepted Solution

Counting instances of an image

192 Views, 4 Replies
05-29-2012 01:45 AM

Hi there,

 

I can find which images are attached to my current drawing with the following code. However, I don't know how to find out how many times they are attached.

 

Anybody ?

 

Using tr As Transaction = db.TransactionManager.StartTransaction
	Try

		Dim nod As DBDictionary
		Dim imageDict As DBDictionary

		Console.WriteLine("Getting ACAD_IMAGE_DICT DB dictionary")
		nod = CType(tr.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead, False), DBDictionary)
		imageDict = CType(tr.GetObject(nod.GetAt("ACAD_IMAGE_DICT"), OpenMode.ForRead, False), DBDictionary)

		For Each dicentry As DBDictionaryEntry In imageDict
			Dim myRasterImgDef As RasterImageDef = CType(tr.GetObject(CType(dicentry.Value, ObjectId), OpenMode.ForRead), RasterImageDef)

			If myRasterImgDef.IsLoaded Then
				Console.WriteLine("Found: " & myRasterImgDef.ActiveFileName)

				' NEED TO COUNT INSTANCES HERE
								
			Else
				Console.WriteLine("Not found: " & myRasterImgDef.SourceFileName)
			End If
		Next

		tr.Commit()

	Catch ex As Exception
		System.Windows.Forms.MessageBox.Show(ex.ToString, "Configurator", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Stop)
	End Try

End Using

 Thanx in advance

Hi

 

Can you try DevBlog solution "Identifying number times a Raster Image is used in a drawing"

http://adndevblog.typepad.com/autocad/2012/05/identifying-number-times-a-raster-images-is-used-in-a-drawing.html?

 

Thanks

Virupaksha aithal

Autodesk Devloper Network

Distinguished Contributor
104 Posts
11 Kudos
Registered: ‎04-21-2011
Post 2 of 5

Re: Counting instances of an image

05-29-2012 02:37 AM in reply to: btmsoftware
You need to search for raster reference entities of type RasterImage. There are two options I know for this, depending on your requirements: 1. Use Editor.SelectAll(), passing in a SelectionFilter with the appropriate dxf code. This is easiest but will only work in the current layout. Note: You might also need to zoom extents for this to work, i can't remember if you need to. 2. Iterate your block table records looking for RasterImage entities, using a counter. Advantage with this approach is that you can iterate your model space as well as all of your paper space block table records - i.e. you will get all of them.
Active Contributor
38 Posts
0 Kudos
Registered: ‎09-06-2007
Post 3 of 5

Re: Counting instances of an image

05-29-2012 03:11 AM in reply to: Artvegas

Will give option 2 a shot, seems the most appropriate indeed.

 

If you happen to have an example for this iteration ,great, if not, I'll figure it out by myself ;-)

 

ADN Support Specialist
102 Posts
26 Kudos
Registered: ‎06-15-2011
Post 4 of 5

Re: Counting instances of an image

05-29-2012 04:41 AM in reply to: btmsoftware

Hi

 

Can you try DevBlog solution "Identifying number times a Raster Image is used in a drawing"

http://adndevblog.typepad.com/autocad/2012/05/identifying-number-times-a-raster-images-is-used-in-a-...?

 

Thanks

Virupaksha aithal

Autodesk Devloper Network



Virupaksha Aithal KM
Developer Technical Services
Autodesk Developer Network

Active Contributor
38 Posts
0 Kudos
Registered: ‎09-06-2007
Post 5 of 5

Re: Counting instances of an image

05-29-2012 05:00 AM in reply to: Virupaksha.aithal

Exactly what I needed, thanx a lot

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post