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)


Close Component Option & Component Attribute windows using ruby script
#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


#6

Really hope this gets fixed soon! I would need to get that to work for a project I’m working on. Simonbenjamincalendar’s posted code doesn’t help In my case since it messes up the quantity count when generating reports (at least for me it did) and It works only on level1. If it is gonna take long to fix this problem, do you know if there is a work around ruby code that doesn’t mess up the quantity count and works on deeper levels?

Disconnecting internet, generating an excel file and cleaning the unneeded data from that is one option, but definitely not a preferable one because of the difficulty and time it takes every time to do that. The excel file does have the right data of the copies, that doesn’t show up with the basic online generate report.

Cheers