.NET

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

Counting instances of an image

194 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
Announcements
Are you interested in helping shape the future of the Autodesk Community? To participate in this brief usability study, please click here. Your time and input is greatly appreciated!