查看单个帖子
旧 2009-05-06, 04:36 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】layer based entity iteration

layer based entity iteration?
layer based entity iteration?
hello,
is it possible to enumerate all the entities within a specific layer efficiently? the naive solution would be to iterate through the model-space btr and check each entity for the specific layer but this comes at a cost (ie iterations = numlayers * numentities ). does dwgdirect maintain a list of entities per layer anywhere? if so how do i get access to it?
thanks.
paul.
the only method is to iterate through btrs checking the layer. but i don't undestand why ( iterations = numlayers * numentities )
sergey slezkin
it sounds like you want to do this for each of the layers in the drawing.
if that's the case, iterate through the collection, build a list of layer-name - objectid pairs, and sort the list by layer name.
last edited by mjf; 26th april 2004 at 07:28 amfff">.
thanks sergey/mjf,
i'd already started writing code using a multimap with a layername/objectid pair (layer name being the key, objectid the value in this case). so i'll probably continue along this line as it's similar to what you suggested and sounds like the only way to do this.
sergey, w.r.t (iterations = numlayers * numentites) i wasn't clear. i was simply referring to my naive algorithm of accessing entities for each layer along the lines of:
for i = 1 to numlayers
for j = 1 to numentities
if( entity(j).layer == layer(i)) then
do something for layer(i) with entity(j)
end if
next
next
the problem being here is that i'm traversing the entity list 'numlayer' times searching for entities on layer(i) and doing something with them.
fyi: the database that we have for our product (which is nothing to do with autocad/dwg etc..), allows entity iteration on the entire entity list or on a per layer basis. with the layer iteration, we can access directly all objects that reside on it and i just wondered if dwgdirect had something similar.
anyway, your replies have answered my question,
many thaks
paul.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)