When drawing a section view, first a list of objects to draw is made.
Starting with the objects selected by the section plane, any groups or
group-like objects are recursively expanded. The resulting list contains
all contained objects, but also the expanded groups themselves (due to
Draft.get_group_contents with addgroups set).
This list of objects is then further categorized and processed. In this
categorization, there was already an exception for DocumentObjectGroup
instances, which were omitted from the resulting `nonspaces` list
(presumably since there is no point in drawing the groups themselves
when their contents are already in the list).
However, any groups that only contain flat objects would be caught by
`looksLikeDraf()` and added to the `drafts` list, before this exception
could ignore them.
This causes these groups to be processed by Draft.get_svg, which does so
by calling itself recursively on the group contents. Effectively, this
means that the contents of such groups is drawn on the section view
twice. Even more, since Draft.get_svg does not do a visibility check
like Arch.getSVG does, this causes invisible objects to show up when not
intended.
This commit fixes this by moving the DocumentObjectGroup exception a bit
further up, so all these objects should be dropped.
An alternative fix might be to pass addgroups=False to
Draft.get_group_contents (in getSectionData), but that also prevents
group-like objects (Building, BuildingPart, Space, Site) from being
returned, but those likely need to be returned so they can be sectioned
if needed (though if just spaces are needed, then
Draft.get_group_contents also have a spaces argument to return just
those).
Layers are Inkscape way of marking top level groups. Inkscape provides
convenient UI to show and hide these groups as well as to lock them to
prevent users from accidentally editing them. Although Inkscape can open
and edit files without layers (without any top level group having the
groupmode attribute set to "layer"), it is somewhat cumbersome to move
the group created by TechDraw to a separate layer, which is what I do,
when I want to add more layers with additional information.
Signed-off-by: Łukasz Stelmach <stlman@poczta.fm>