When I try to think more over it, I think I know how to start grouping... I'll iterate through selection set of all surfaces and get their areas with AREA command - (vla-get-area) is not supported... Then I'll sort all surfaces from smallest area to the biggest one... Now comes the tricky part - the next question : how to get next touching surface with reference one - SURFTRIM command is I think good, but how to automate it... I don't know, maybe some other approach - is (vla-checkinterference) working with surfaces ?; I don't think so... Give me your opinion if you know... Then when acquired next surface find next one based on acquired one excluding first one and so on building group list... When last surface is added to list there should be no next one - checking should point to surfaces already added to group list... After that add that group to list of groups and iterate next bigger one surface by area from main list from which are removed surfaces from created group(s)... And so on, all until all selection set is processed and all groups are added to main group list...