.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
How to get the ObjectIdCo llection of all entities in a certain layer?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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?
Solved! Go to Solution.
Re: How to get the ObjectIdCo llection of all entities in a certain layer?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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
Re: How to get the ObjectIdCo llection of all entities in a certain layer?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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.


