.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to get the ObjectIdCollection of all entities in a certain layer?

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
dynamicscope
797 Views, 2 Replies

How to get the ObjectIdCollection of all entities in a certain layer?

How could I get the ObjectIdCollection of all entities (points, polyline) in a certain layer?

I am using the following code at this moment.

 

private ObjectIdCollection GetEntitiesOnLayer(string layerName)

        {

            Editor ed = doc.Editor;

            TypedValue[] tvs = new TypedValue[1] { new TypedValue((int)DxfCode.LayerName, layerName) };

            SelectionFilter sf = new SelectionFilter(tvs);

            PromptSelectionResult psr = ed.SelectAll(sf);

 

            if (psr.Status == PromptStatus.OK)

                return new ObjectIdCollection(psr.Value.GetObjectIds());

            else

                return new ObjectIdCollection();

        }

 

But it seems the function fetches more ObjectId than I expected.

For example, if I draw 3 points and 2 polylines in "A" layer.

 

ObjectIdCollection obc = GetEntitiesOnLayer("A");

int i = obc.Count;

 

I was expecting i to be 5 (3 points and 2 polylines), but i seems to be more than 5.

 

Any thought?


2 REPLIES 2
Message 2 of 3
Hallex
in reply to: dynamicscope

Your code is working good on my end

Maybe you need to add filter on entities in

the current layout, just a guess, e.g:

 

TypedValue [] tvs = newTypedValue[2] { newTypedValue((int)DxfCode.LayerName, layerName),

newTypedValue((int)DxfCode.LayoutName, "Model") };

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
Message 3 of 3

That would be my guess as well.  SelectAll will return entities that are not in the current space, but otherwise your code should be fine, and I've never had a simple selection filter give me entities that did not meet the criteria.

Dave O.                                                                  Sig-Logos32.png

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost