Generate Report does not include component copies

generate_report

#1

Hi,

Has anyone else noticed that the post 2016 generate report does not include component copies?

I have historically used the pre 2016 report (by switching off the internet) but due to large models making this a very timely process I would like to benefit from the new report’s faster processing.

As an example, if I create a simple 30x30x30 cube, make it a component and then create and enter 5 into the ‘Copies’ attribute I can create an array of boxes by adding the following formula in Position X: =COPY*40.

I can then give each box a unique part code by adding a custom attribute ‘Part’ and adding the following formula:
=concatenate(“Cube-”,COPY+1).

Simple stuff and the basis for how I work with a number of dynamic models in Sketchup.

However, whilst the pre-2016 report would include all copies with their respective part codes, the current report does not.

The even stranger thing is I’m able force the report to include them but only if I select each copy of the component in the drawing and choose ‘current selection’ rather than ‘entire model’ in the ‘choose filters’ options in the generate report edit section.

My issue is that in every case that I have copied components they sit inside a parent component so it is impossible to select every component which is required to force this inclusion.

If anyone out there would like to look at the described example attached to see if they can shed any light on the subject I’d be eternally grateful!

BOX TEST.skp (89.3 KB)


#2

Yes, we have a bug filed: “Generate report does not list components that are generated dynamically using Copies/Copy attribute”. I tried it statically with 6 copies of Stacy, and that works, but that’s not much help to DC’s.


#3

That’s good it’s been recognised, thanks for dropping in.

I have a workaround (credit eneroth3 ) which essentially selects all child components. This includes all of the copied components as long as you check the ‘selection only’ filter.

# Select an instance and run snippet to select all child instances.

def select_children(instance)
  children = instance.definition.entities.select { |e| e.respond_to?(:definition) }
  instance.model.selection.add(children)
  children.each { |c| select_children(c) }
end

select_children(Sketchup.active_model.selection.first)

There is odd behaviour though, but again worked around in my case by only outputting level 1 data. Hope this helps others.

Any time-scale on the fix?


#4

Thanks for posting a work-around. It will help others if you wrap it into a code tag (edit post, select code, click </> button). The discourse forum use MarkDown for formatting, which interpretes characters within the message as markup (like (c) becomes © which is not valid code anymore).


#5

Thank you! All done and noted for future