Showing posts with label Study. Show all posts
Showing posts with label Study. Show all posts

Tuesday, February 10, 2015

Randomize Color and Material in Revit - Dynamo Style!

I made a post almost a year ago about how to use a third party app to randomize color and material for curtain panel in Revit. I have been wanting to do more study on how to this in Dynamo. Dynamo has gained so much attention recently and there are always new builds coming out every other week or so. I saw a post from Zach Kron some time ago and haven't got time to look into that until recently. He even made a YouTube video to show his process. First of all, huge thanks to Zach and now I am able to make my own twist and use that on my Randomized Curtain Panel family and have some fun with it.



Below are some images that show by moving the Integer Slider back and forth to change the color of the curtain panels.








Check out this video to see how the slider works in action:

You can find the sample file in this link also.
Enjoy and more to come later!

Saturday, March 1, 2014

More Fun with Randomized Plug-in and Curtain Panel

Continue to do more studies with the dp Stuff Randomizer. This time I add a little twist to the curtain panel family. Pretty much using the same principle from the last example with nested family within the curtain panel and have an integer parameter driving the nested family types, I have added a rotation parameter using one of my tricks to create the nested family. Again, let the plug-in do the rest and see the result...




I overlooked one thing from my last experiment using this plug-in. As it turns out, it can perform this randomization with more than one set of parameter simultaneously. I also notice one strange thing the Randomizer does to the "Rotation" parameter. Since I have the minimum angle and maximum angle set to 0 and 360 respectively, all the "angle rotation" parameter from the panels should stay within the range. It, however, sets the angle to 4 digits value to many of the panels.


Applying the same panel to the Slope Glazing system (roof version of the Curtain Wall system) and I was able to make an interesting form as ceiling.





Throw it to the cloud rendering and get a nice perspective view for a group of random "ceiling" panels


I didn't stop there. I went on and used the same concept to come up with a "pattern" out of it. I create 4 different shapes of nested families and nest them to the curtain panel.


Click "Randomize" again...





Coincidentally, the result of this "pattern" reminds me of a famous monogram pattern from Louis Vuitton; maybe this could open up some good use for further study in the future. I am interested to investigate more by using curtain pattern based panel and adaptive components along with Dynamo. After taking the tex-fab workshop last week, I see a great potential of using Dynamo in Revit. Stay tuned to see my future post about my experiment.



Thursday, February 13, 2014

Randomize Color and Material in Revit

Over the past few years I have been using curtain wall system for many different things beside storefront and curtain wall, and yet there is an easy way to mimic a design with a random pattern. Since the introduction with reporting parameters, I was able to build in some of the intelligence in the curtain panel. I have come across an plug-in called Randomizer from dp Stuff for some time and really didn't have the opportunity to investigate more in depth until recently. I thought I would take a stab and see how this plug-in can do for me.

According to the description from the site:
"The way it (the Randomizer) works – it lets you locate the instance parameter that you want to randomize among the family instances in your document by selecting the Category, then Family and then Type of your objects." In other words, it will generate a numerical value in the instance parameter for you without doing this manually.

What I am trying to do is to use the plug-in to randomize the color (hint: material) in the curtain panel to create random/mosaic pattern. Since we are talking about a material, not a number, it probably won't work with the plug-in!? I, however, have another challenge to overcome. In the component family environment, Revit won't allow you to formulate the material parameter. All you can do is to set the material as a parameter; in the formula field, you won't be able to input formula like you can for other type of parameter (e.g. Length). I recall a trick from Alfredo Medina that you can parametrize a material with conditional statement using nested family. So, I ended up rigging up a curtain panel family with a setup that looks like this:


Here's the run down of the setup. I have a nested family with 4 types (each type assigned different colors) inside the curtain panel. In the curtain panel family, set up the nested family with a Generic Model type as instance parameter.

I set up an integer parameter called "Driver" (instance parameter). Use the "Driver" parameter as part of conditional statement. The integer is associated with a specific Generic Model type parameter (color):

1 = Green
2 = Yellow
3 = Red
4 = Blue

Now, I have an numerical value (integer) that the randomizer plug-in would recognize in order to run a random integer (material) in the project.

I start off running this plug-in on a curtain wall with grid divided by 60"x60". Select the "Driver" instance parameter; from the value range, I set my minimum value to 1 and my maximum value to 4, which it will randomly choose the color among the 4 types that I assign. Click the Randomize button and let the plug-in do the rest. A nice feature of the Randomizer is I could keep hitting the button and the plug-in will continue to run.





Next, I double up the grid number with the size of 30"x30".




I also have a parameter "Thickness", throw in to the mix with the Randomizer and it gets more interesting...
Note: I set the material with transparency of 20% as the panels appear to be somewhat opaque.




One thing that I wish for this plug-in to work better is to be able to randomize two sets of instance parameters simultaneously. As of now, I have to run the instance parameter one after another one, it will do just fine.

Double up the grid again to 15"x15" at last, this time Revit takes much longer to generate the results.






This has been a great experiment for me to explore this Randomizer to a different use in design without using the more advanced plug-in like Dynamo. On the other hand, I am sure there are other ways to do this using other plug-in.
Next week I will attend the tex-fab workshop up in Austin, Texas to learn more about Dynamo, we will see what I'll be able to get out from this event.

If you are interested in reverse engineer this curtain panel family, you can download it from the link below:

Randomized Panel rfa

Thursday, January 16, 2014

Making of Greeting Card

First post in 2014 I wanted to share with you on the "season greeting" image that I did back in the Christmas holiday. This was the third year that I made my own greeting card using Revit. In the other two years of the greeting images, I always had the same character "Parametric Snowman" as the main scheme but I would try to play with different background each year.

Snow and snow flake made from curtain wall system

So, this year following the "same" tradition, I chose snowman as a main character again but coming up with something new as a new "backdrop".

 
Staging of the Revit "model"

Snowman in the foreground used scalable trick by Kelvin Tam by nesting two levels of the "planting" family. 3D model text was created as face based generic model family. See more from this post.

When it comes to the Christmas light in the background, I got this initial idea from this precedent image.


I thought adaptive component is the way to do it. Immediately I start thinking of how I would go about making this Christmas light family.

I started by importing an image of the light bulb and used it as reference to make it as a nested light fixture family. I even assigned light source so it could glow.


Next, I nested this into an adaptive component. I stumbled on this for a number of times before I got it the way that would have the bulbs spread on both sides of the cable. After some trials and errors, I ended up creating 3 adaptive points and host the nested family on the opposite sides of point 1 and 2. The third adaptive point was needed since I need the first one to repeat itself once I nested this into another adaptive family.


Another challenge I had to overcome in this study was getting the orientation of the nested light bulb to point to my desired orientation. Andy from Shades of Grey made a series of diagram in this post that was helpful to get better sense of how adaptive point behaves. Still, I had to struggle many times to get it right. 


Once this was done, loaded it to another family, I created a 3 point spline and made all 3 points as adaptive points, divided the spline. Place the family on the first 3 points of the spline.


After the family is in place, select it and click "repeat"!



Finish up the cable as a sweep and assign material to it then it was good to go! I learned that if I set the nested light bulb as "Shared" before loading into the adaptive component, I can actually render them glowing with the photometric light source in the project.


Saturday, September 14, 2013

Old Meets New - Massing with Old School Array

I was working on something in the past 2 weeks on massing. I have used a trick of nesting traditional Generic Model family into massing (or adaptive component) and pick the lines to create form or surface on many occasions. This time around, I thought of another way of using Generic Model again for something new.

First, I started off with a Generic Model template and draw a spline as a model line, I have the spline constrained to the parameter "H". During the RTC NA this year, I learned something new from Marcello Sgambelluri about scaling with a spline.


Next, I nest this model line spline into another Generic model and array it.


In this family, I set up the "Scale" and "Array" as an instance parameter where I can use it to nest into a massing family.


Start another family as a mass, load the GM array family. Draw an ellipse (actually two open-ended arch to form an ellipse); and have the nested array family locked to the end point of the arch. Add parameters to constrain the ellipse "Radius_Depth" and "Radius_Width". At the same time, associate the parameter "Scale" and "Array" from the nested family to the mass.




 Next, select the spline array from both ends and the arch; then hit "Create Form"...

 

I have made a ribbed surface. To my surprise, the surface is now driven by the spline. When I flex the parameter "Array", it will flex along nicely...




 I went and made another surface on the opposite side and form a complete mass.

 
Load the mass family into the project and start messing with the instance parameters...

First one with Array = 12, and Scale = 10 & 20 respectively.

Second one with Array = 20, and Scale = 2 & 20 respectively.

 Third one with Array = 36, and Scale = 10 & 30 respectively.

 I could go on and make more masses but I was pretty happy with this result for now...

Ribbed towers using nested array old tricks
I am now in the process of using this method to create something which I will post for next week, so stay tuned!