sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    New to DC: topic for my simple questions to the pros

    Scheduled Pinned Locked Moved Dynamic Components
    sketchup
    74 Posts 3 Posters 56.4k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P Offline
      pcmoor
      last edited by

      There a few things you need to consider

      Scaling a material / face does not automatically update FACEAREA, here are some ways to get produce the result you may require.

      1. Calculate the area from the input, works for simple shapes, like with the door face, height * width
      2. Use FACEAREA, then after any operation, (you may need to make the component unique if their are others) scale definition then redraw.
      3. Incorporate a small "scaler" DC, a technique introduced by TIG, that is say a xy 10mmx10mm sample of any material, set x=1,y=1 and hidden. This then resets the material to scale and any FACEAREA calculation. This however conflicts with the internal DC copies sizes, so provided you do not need the use of copies that have different sizes from each other, then it is the best method
        https://sketchucation.com/forums/viewtopic.php?f=289&t=66642

      Texture materials need to be added to a DC as swatches, as Sketchup does not automatically load them even if correctly named in the DC.
      https://help.sketchup.com/en/sketchup/dynamic-component-predefined-attributes

      You can use named colors directly without swatches as per chart at http://ruby.sketchup.com/Sketchup/Color.html

      You need to consider how the user will interact with the pallet, for large number, it seems impractical to load all to the DC, so an exposed sample point maybe the solution: say, use generic swatches named doorfront, doorback, dooredge, benchtop, benchedge......this would be in a global DC, that the other DCs would reference in a template. The user would select by dropping the appropriate colors/material to the global DC. Ideal to switch and compare paint selections.

      So it depends on the scope of the project, simple DCs loaded to the warehouse would have color codes and/or material textures added with swatches. Whereas a room design/kitchen could be based on the template with global options, as such, it will need some simple ruby scripting to update all the parts (redraw).

      Material selection in a DC is to a group or component, not a face. So coloring different faces with attributes is not possible. You could pre-color a back face for calculation purposes though. But you need the "scaler" to automate the area calculation. Then with the material selection the rest would change. For edges of different materials, you would have to make then separate groups or components as you see fit. (note: groups are automatically cleaned from the file and components are required if you need to swap)

      example attached
      can paint any material
      has swatches of some edge alternatives, some color, and option to match top (note use of equals in the value part of the dropdown, plus quotes around the material
      the component surfaces have hidden "scalers" embedded.
      the area calculated from a red painted surface


      bench top material example.skp

      1 Reply Last reply Reply Quote 0
      • P Offline
        pcmoor
        last edited by

        I add some attributes to your example, the door FACEAREA is done on the front rectangle, divided by 2 as to remove the backface from the calculation, Because its not the parent, it requires a redraw after the change in size for the parent to update its value.
        There are two external group DCs to which the door references to change its material, change these and after a redraw the door changes
        You can set a short cut to the redraw to make life a bit easier, but a small script would be best, so all components are up to date after the changes


        parete_TAMB_v1.skp

        1 Reply Last reply Reply Quote 0
        • P Offline
          pcmoor
          last edited by

          Some ideas for the carpet in your warehouse page,
          added facearea("")/2
          standard colors
          you need to match then closer, maybe use the RGB values


          carpet example.skp

          1 Reply Last reply Reply Quote 0
          • P Offline
            pibuz
            last edited by

            Pcmoor, you're very kind...Thank you so much!!

            I unfortunately have been derailed to other urgent matters, so I'm now back with another question on materials. I almost got the panel work the way I'd like it to work.

            Basically, I set fixed values for length and height for the user to change from a list, and this is perfect. Now, the two faces may be painted with whatever colour we want, so I thought to make two different inner components with inner faces painted with defaul material. This way, if I get INTO the main component and apply whatever material to my 2 faces (even separately) I get the applied material name being showed up in the "Material" attribute.

            I have now two attributes related to the applied material name (CODICE, and FIN_PARETE), and it's crucial for me to have these two attributes updated after I apply a new material. At the moment, I get the material attribute to be updated, but I need to manually change the dimension of the panel to have the linked attributes updated.

            Is there a way to automatically update the related attributes?

            Many many thanks in advance!


            panel_TAMB_smart_v1.skp

            WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

            1 Reply Last reply Reply Quote 0
            • P Offline
              pibuz
              last edited by

              Hi again! I have discovered the "redraw" command (which I did not know at all), and it seems to be intuitive enough for my colleagues to use 😛

              Another question for the pros: in the attached component I set an onclick function on the two coloured faces: when you click on a face it is set to HIDDEN. That works perfectly, but when I copy that same component the onclick action operates on the original component, and I don't understand why...

              Can you please point me to the solution?

              Thanks in advance!


              pannello_tessuto_smart_v3.skp

              WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

              1 Reply Last reply Reply Quote 0
              • P Offline
                pcmoor
                last edited by

                copying does not make the item unique, so a connection exists until its broken usually by changing a size. So right click an make unique before the interaction

                1 Reply Last reply Reply Quote 0
                • P Offline
                  pibuz
                  last edited by

                  hi again! Is there a way to insert a formula depending on the fact the result of an operation is an integer number? something like: IF LENX/LENY IS AN INTEGER NUMBER THEN WRITE 1,0.

                  I know how to use the If function, but i don't know if there's a way to check an integer number...

                  Thanks a lot!

                  WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                  1 Reply Last reply Reply Quote 0
                  • P Offline
                    pcmoor
                    last edited by

                    you can check for the remainder and if none then must be an integer

                    =if(lenx/leny - int(lenx/leny),0,1)

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pibuz
                      last edited by

                      Thank you sir! Gonna test asap!!!

                      WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                      1 Reply Last reply Reply Quote 0
                      • P Offline
                        pibuz
                        last edited by

                        Hi again! i have a new small issue: I have a basic Dynamic Component which can be edited in its inner parts. I just want the dynamic component to report the size of its bounding box, depending of the things I put inside. In the component attributes, window the LenX LenY LenZ parameters correctly update when I add/move things inside the DC, but if I link to those values three different addributes ("length"=LenX, "width"=LenY, "height"=LenZ) I have to REDRAW the components if I want the values to update. Is there a way to update automatically?

                        THANK YOU IN ADVANCE AS SUSUAL!

                        WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                        1 Reply Last reply Reply Quote 0
                        • P Offline
                          pcmoor
                          last edited by

                          Most likely you need to do a redraw, you can set a short cut key to it provided you have a component selected.
                          Another method is to set a ruby script to a button
                          https://forums.sketchup.com/t/redraw-all-dynamic-components/77512

                          You probably need to use some ruby to overcome the shortcomings of DCs

                          1 Reply Last reply Reply Quote 0
                          • P Offline
                            pibuz
                            last edited by

                            Bummer... Thanks a lot by the way!

                            WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                            1 Reply Last reply Reply Quote 0
                            • P Offline
                              pibuz
                              last edited by

                              Hi again!
                              ..I am wondering: is there any way I can make a list option in a DC to be displayed in red?

                              WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                              1 Reply Last reply Reply Quote 0
                              • P Offline
                                pcmoor
                                last edited by

                                You can alter the font on component info attributes and labels, not values using syntax as per
                                https://help.sketchup.com/en/sketchup/dynamic-components-supported-html-tags

                                you can change via formula as per example, so a particular value could set up a warning in the info section


                                colors in label and component info.skp

                                1 Reply Last reply Reply Quote 0
                                • P Offline
                                  pibuz
                                  last edited by

                                  Hi Moor! Thank you very much for your support!

                                  I've encountered another issue: I need to "cut" holes into a cloth sheet. Basically, I decide the cloth dimensions and, based on that, a series of holes must appear for it to be fixed to the surrounding structure. I observed that the "cutting component" works, but its copies do not.
                                  Is there a way to fix this?

                                  THANKS A LOT!


                                  cielino tessuto occhiellato_v3.skp

                                  WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                                  1 Reply Last reply Reply Quote 0
                                  • P Offline
                                    pcmoor
                                    last edited by

                                    you basically create a cutting component within another cutting component

                                    https://sketchucation.com/forums/viewtopic.php?f=180&t=67635&hilit=+hole

                                    1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      pibuz
                                      last edited by

                                      Thank you very much! After a little hassle I found my way!

                                      WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                                      1 Reply Last reply Reply Quote 0
                                      • P Offline
                                        pibuz
                                        last edited by

                                        Hi again! I have an issue with the attached dynamic component: I can't figure out why I don't get the lower plane length to be updated if I change the length AFTER the copies are done. Seems like the lemgth parameter doesn't apply to the copies.... Does anyone have an hint or me?


                                        cielino v6.skp

                                        WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                                        1 Reply Last reply Reply Quote 0
                                        • P Offline
                                          pcmoor
                                          last edited by

                                          to overcome (workaround) this issue you can collect the geometry into another component then reference the current state of the size property

                                          When experiencing problems with rotation or sizes< I have found that adding another "shell" isolates and protects the contents from SketchUp making unwanted updates.

                                          The encasing and reference to a current value is the basis for creating components that can be swapped so their current size properties are retained. Like a timber beam with a length in say lenx, can be swapped with a steel beam and their lengths match. Of course you would not want this to to happen when you swap a toilet for a basin, which is the behavior that is built into the DC code and what you are experiencing.


                                          cielino_fascione coverup (use of current and extra component shell).skp

                                          1 Reply Last reply Reply Quote 0
                                          • P Offline
                                            pibuz
                                            last edited by

                                            Thanks a lot Moor! I'm going to keep this in mind!

                                            WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 1 / 4
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement