Slow dynamic components, Big file size

advice

#1

Dear Sketchup Community,

Lately I’ve been working a lot with dynamic components in sketchup. I use these components to automate most of the drawings I make and I’ve build up a library containing these components. However lately I’ve begun to integrate these components into bigger components with underlying connections to automate the drawing process even further. Currently I’ve got a dynamic component consisting of tons of dynamic sub-components with each there own attributes op to 6 “layers” deep. At this point it’s possible to change up integers in the outer most component and it can calculate and draw the whole drawing itself by copying and adjusting sub-components in size and shape etc based on their underlying relations and attributes.

The problem I’m facing is that however this is working for me at the moment, I’ve found that the drawings it creates are huge in size, up to 50mb for average drawings, and the calculation already takes up to 10-15 minutes. I’d like to find a way to automate the drawing process in such a way that it doesn’t create drawings this big in size as working with these drawings is slow and takes up too much of my Hard Drive. I’ve read a bit into it and found some posts talking about using excel sheets and a ruby script to automate the drawing but I can’t really find any details on how to do this or where to start.

Ideally I’d like to automate the drawing process even further in the future and expand the amount of values a user can imput to customize the drawings even further and at this point I don’t see this possible from within the sketchup dynamic components attributes due to the reasons explained above.

I’d like to ask if anyone in the community has had any experience with automating drawings in such a way, and can point me in the right direction on where to get started on such a project. At the moment I’m not very familiar with programming however I’m eager to learn new things.

Thanks and kind regards,


#2

@medeek has developed an extension, starting from scratch with Ruby:


#3

On a previous post you wanted to create a dc curves, is it these that are causing the big files and slowness?
I believe that some of your DCs are using the copies function, this is not very conservative, Copies should be used very limited, otherwise they chew up the memory and calculation time. I suggest you use a different technique, that is a path line calculated with DC, then after some explosion of the sub-components use the follow-me tool. Should you need to change the DC again, then swap the instance with the original definition.
example on warehouse:-


There are other methods to simplify DCs, depending how they are made to leave a one level DC. Once you have worked out a manual method then one can mimic via a ruby script. It is possible to change the option dialog via ruby too, so as to disable some of the options.
It would help if you share some of your DCs, workflow… if not publicly then maybe privately

It must be noted that DCs have hardly been updated since their conception, it may pay to consider profile builder 3, even wrapping these in a DC. With holes,cuts,extension, trim…it kind of leaves DCs for dead!


#4

Sorry for the late reply, I’ve been away for a few days and forgot that I created this thread. I’ve however found out what’s causing my models to be so big is size. It has to do with the fact that I have a Dynamic component with attributes for it’s length and width etc that can be set by the user. this component is part of a bigger component that copies itself over a length when it get’s stretched. By creating copies of this component each of the dynamic subcomponents copies becomes a unique component rather then a copy of the initial dc that it’s copied from. If for example I stretch the outer most component, the inner dynamic sub-component creates a ton of copies of itself causing my model to consist of up to 1500 component definitions eventhough they’re initially only build up of around 30. is there a workaround for this while remaining the capabilities of setting the length and with of a subcomponent and being able to copy it over a length as it get’s stretched?


#6
  1. you can use groups for your subs

  2. wrap the component in a group before copying (insulation)

  3. after making an instance, explode all the subs (manual via the “outliner” or a ruby script-?) to simplify then copy, then if there are any that need to be changed, swap them with original definition. You will need to purge to get rid of any unused sub components to reduce the file size.

for better recommendation can you private message any examples?