tag:blogger.com,1999:blog-90066253705237650532024-03-28T16:58:17.181+09:00Enjoy RevitFEW MINUTES THINKING SAVES FEW DAYS WORKINGHyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.comBlogger73125tag:blogger.com,1999:blog-9006625370523765053.post-10206971561275514172022-09-18T12:44:00.001+09:002022-09-18T12:44:05.482+09:0010'th Anniversary of EnjoyRevit<p> This was my first YouTube vidoe of mine in 2012.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/fG96OqNfDSA" width="640" youtube-src-id="fG96OqNfDSA"></iframe></div><br /><p>After a year, I posted <a href="https://plevit1.blogspot.com/2013/08/im-starting-blogger-in-english.html">my first article</a> of EnjoyRevit here to share my experiences and knowledge with Revit users in the world. (I have had my Korean Blog already)</p><p>Now, it's 2022 and have been 10years after my first video.</p><span><a name='more'></a></span><p>I created another Legoman to celibrate it. The legoman in my previous video was all created using AC families to make it's movements. </p><p><br /></p><p>But the new legoman is assembled with all generic families, and a simple Dynamo graph is used to make the legoman to walk.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/8wJLT6kXLhc" width="640" youtube-src-id="8wJLT6kXLhc"></iframe></div><br /><p>Except the difference of modeling methology, theories for the movements are all the same.</p><p>You can see the concept at <a href="https://plevit1.blogspot.com/2014/03/trigonometric-function.html">one of my old posts.</a></p><p><br /></p><p>For some reason, I've been posting my articles not very often recently. I'd like to say it's because of my work, but frackly to say, it's more because of my laziness. </p><p>I hope I can post more frequently like when I did 10 years ago from now on.</p><p><br /></p><p><a href="https://sites.google.com/site/enjoyrevit/just-for-fun/lego-man?authuser=0">You can download my new Legoman and Dynamo graph here</a></p><p><br /></p><p>Enjoy :)</p>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-81544406711453018412022-01-24T15:17:00.018+09:002023-02-04T11:39:07.426+09:00BIM as a Design Tool for Architects, Is it Fantasy or Salvation?<h1 style="text-align: left;"><span style="text-align: justify;"><span style="color: #666666;">The 2nd Digital Revolution, BIM</span></span></h1><div><span style="text-align: justify;"><span style="color: #666666;"><br /></span></span></div><div><span style="text-align: justify;"><span style="color: #666666;"><span style="color: black;"><div>The first use of the word ‘digital’ in the building industry was with the introduction of CAD.</div></span><span style="color: black;"><div>The introduction of CAD brought about great change not only for architectural design, but also overall construction industry which includes aproval and construction. And in an extremely short time.</div></span><span style="color: black;"><div>What is noteworthy in this process is that architects has become the protagonist, more than anyone like the permit holder, the ordering party, or the contractors</div></span><span style="color: black;"><div>Architects have already taken the lead in introducing ‘digital’ into architecture, and the aforementioned related fields, and even urged to introduce for them. With the introduction of CAD, architects have already experienced salvation by themselves.</div></span><span style="color: black;"><div>More than a decade have passed since the BIM discussion began in Korea, most of architects regard it as fantasy rather than salvation. And the reason as follow.</div><div><br /></div></span></span></span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj-okTHYfXlErfjbGVKkLW-MRdu2wI02homN83bG_rz7gswAbJWM06ko6bL9MezzoHjtEoXKi1mfYEnUOMKi-9hmkVI5MSDCO5YidS7BNhJVOrlGhALafFVy2makSLV2_N0fm0C6RLK9bk5ZMb8YaX_rq0R7rsLSWfA1XP-OgNnPlJ-N32d1_NYWgti=s1061" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="793" data-original-width="1061" height="478" src="https://blogger.googleusercontent.com/img/a/AVvXsEj-okTHYfXlErfjbGVKkLW-MRdu2wI02homN83bG_rz7gswAbJWM06ko6bL9MezzoHjtEoXKi1mfYEnUOMKi-9hmkVI5MSDCO5YidS7BNhJVOrlGhALafFVy2makSLV2_N0fm0C6RLK9bk5ZMb8YaX_rq0R7rsLSWfA1XP-OgNnPlJ-N32d1_NYWgti=w640-h478" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="text-align: justify;">This is my contribution for the magazine 'Architects' Jan.2022 which was published by KIRA (Korea Institute of Resistered Architects)</span></td></tr></tbody></table><span style="text-align: justify;"><span><a name='more'></a></span><h1 style="text-align: justify;"><span style="color: #666666;"><br /></span></h1><h1 style="text-align: justify;"><span style="color: #666666;">Fantasy?</span></h1></span><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="text-align: justify;"><span style="color: #e69138;">1. Difference of Dimension</span></span></h3><span style="text-align: justify;"><div style="text-align: justify;">Digitization of 2D drawing represented by CAD was just "tool change" that creates the same result. The lines and characters with pencils to digitezed lines and characters. Infinite replication, transformation, storage, inquiry, etc. provided in this process was incomparably convenient and the results were same or better. BIM differs from CAD not only in 'tools' but also in 'dimension'. </div><div style="text-align: justify;">In BIM envirenments, There is a fundamental difference from the CAD method of literally ‘drawing’ using lines and characters because we create a three-dimensional information-based model beyond creating simple drawings with lines. It means that the 2D-based design technique with a long history needs to be completely changed from the ground up.</div></span><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="text-align: justify;"><span style="color: #e69138;">2. Difference in Learning Volume</span></span></h3><span style="text-align: justify;"><div style="text-align: justify;">Even someone who are engaged in architectural design and have used CAD for more than a decade rarely use more than 5% of the functions provided in the CAD software in use. If someone is using more than 10% of the functions, then he regarded as a CAD expert.</div></span><span style="text-align: justify;"><div style="text-align: justify;">In a way, we can say that not many fuctions are necessary for make 2D drafting. It means that it has the advantage of being able to easily master the required level of skill without significant deviations depending on individual learning abilities.</div></span><span style="text-align: justify;"><div style="text-align: justify;">On the other hand, in order to utilize BIM in design, it is necessary to understand a broad aspect of the software. Rather than simply drawing two straight lines and promising a wall, the "wall"fuction has to be used to make walls, and the "floor"fuction has to be used for floors. Although it is a simple example, each function for designing numerous elements of a building is provided, and its complexity is also not comparable to that of CAD. For this reason, the proficiency period is lengthened, which is regarded as a fatal disadvantage for architects who always have to deal with dead-line.</div></span><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="text-align: justify;"><span style="color: #e69138;">3. Difference of DATA and Software</span></span></h3><span style="text-align: justify;"><div style="text-align: justify;">In the CAD environment, we simply create a drawing using a few layers, designate the leading thickness and print it to get the desired drawing. In this process, the reliability of the data is very high that it is safe to say that there are hardly any embarrassing incidents such as the sudden disappearance of the drawing or the change in the thickness of lines. It is right to think that this is due to the simplicity of the data used rather than the technical achievements of CAD.</div></span><span style="text-align: justify;"><div style="text-align: justify;">Even when designing in a BIM environment, designers have to create results in the form of 2D drawings (at least until now), In this process, unlike the CAD environment, 2D drawings of 3D models are generated by calculation of the software. Due to the complexity of this process, it feels relatively difficult to obtain a drawing of the desired shape, and in some cases, it may be necessary to think about a workaround due to a lack of a provided function or an unknown error.</div></span><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="text-align: justify;"><span style="color: #e69138;">4. Difference of Information</span></span></h3><span style="text-align: justify;"><div style="text-align: justify;">CAD-based data that has been used for about 30 years in Korea is overflowing everywhere, and it is not difficult to create a new library. Building material manufacturers provide CAD libraries for promotion or even actively provide project-specific libraries. This environment has made CAD-based design more convenient and has accelerated technological advancement.</div><div style="text-align: justify;">In the BIM environment, more sophisticated and reliable libraries and design codes are required as it is a design based on ‘information’. However, the production of the library requires a higher level of skill and a longer time compared to CAD, and the standard code for information input is still blurry in Korea. Most of the material manufacturers only provide CAD-based services yet, and only a few international companies provide BIM-based libraries. Even if all of the above is provided, always new libraries are needed because in the end a building is like a gigantic handicraft. In the case of large firms, it is possible to ready separate team to respond to this aspect, but in the case of small and medium-sized firms, which account for the majority, it may not be easy to respond in this area.</div></span><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="text-align: justify;"><span style="color: #e69138;">5. Fixation of Document Expressions</span></span></h3><span style="text-align: justify;"><div style="text-align: justify;">As mentioned above, the CAD environment is simply a digital change of tools, and the representation of drawings has hardly changed from that done in the drafting board environment. For example, all of the legends and tables are information, but they have been expressed in analog form.</div><div style="text-align: justify;">In the BIM environment, since all information is related to each other and stored in objects, it is possible to organize and express more effectively than the existing methods. However, most permission departments, clients, and contractors still require the conventional method of notating drawings that are widely used.<span style="text-align: left;"> </span><span style="text-align: left;">Of course, most of the existing methods can be expressed in BIM tools, but this reduces the efficiency that can be obtained in the BIM environment and goes against the purpose of introducing BIM.</span></div><div style="text-align: left;"><span style="text-align: left;"><br /></span></div><h1 style="text-align: left;"><span style="text-align: left;"><span style="color: #666666;">Salvation?</span></span></h1><div style="text-align: left;"><span style="text-align: left;"><br /></span></div><div style="text-align: justify;"><span style="text-align: left;">Although all of the above acts as obstacles for architects to approach BIM, a small number of domestic architects are actively introducing and using BIM as a design tool. </span>It is also true that the transition is taking place more rapidly in major foreign countries. As one of them, I will list the attractiveness and advantages of BIM as a design tool that I know empirically.</div><div style="text-align: left;"><br /></div><h3 style="text-align: left;"><span style="color: #3d85c6;">1. Comprehensive Plan Review</span></h3><div style="text-align: justify;">In general, one of the most important considerations in architectural design is 'area'. Of course, it is not difficult to obtain an area in a CAD environment, but in BIM, the review is completely real-time. All inputs, including areas, become data, can be stored and retrieved. This part greatly shortens the time required for architectural planning and enables more diverse approaches within the same period. In addition, it is possible to comprehensively and in real-time review not only the floor plan, but also the elevation and cross-section because it is planned with a three-dimensional model rather than simply sketching a ‘floor plan’.</div><div style="text-align: left;"><br /></div><h3 style="text-align: left;"><span style="color: #3d85c6;">2. Visualization</span></h3><div style="text-align: justify;">Visualization work called 'presentation' is always an important task in architectural design. Visualization, especially 3D visualization, is very important for accurate information delivery and evaluation before it is made into an actual building. Existing real model production or work through simple 3D modeling has been done separately from design work dealing with drawings. In the BIM environment, the architectural design process is made in 3D space, so 3D visualization is much easier and faster than the existing methods. A bigger advantage is that visualization and drawing are possible with one software and one model at the same time, so visualization with guaranteed simultaneity with design drawings is possible. This greatly increases the efficiency on each of design steps.</div><div style="text-align: justify;"><br /></div><h3 style="text-align: left;"><span style="color: #3d85c6;">3. Document Quality</span></h3><div style="text-align: justify;">What I want to say is not about 'Design Quality' but about 'Document Quality'. it's about how good instruction it can be for construction. In CAD environment, it is difficult to avoid numerous errors because most drawings are made without being related to each other, and the expression of complex shapes is limited. In the BIM environment, document errors can be minimized with little effort because all data is correlated with each other, and even complex shapes can be expressed in various ways because it is based on a 3D model.</div><div style="text-align: justify;"> It has already been proven in many cases at home and abroad that more creative buildings can be created through this part.</div><div style="text-align: left;"><br /></div><h3 style="text-align: left;"><span style="color: #3d85c6;">4. Scalability of DATA</span></h3><div style="text-align: justify;">Data created with BIM can be used not only in design but also in various related fields such as construction and maintenance. Although it is difficult to predict the limit of its scalability, it is easy to say that at some point construction will be accomplished only with 3D design information rather than 2D drawings.</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><h1 style="text-align: left;"><span style="color: #666666;">Architects' Choice</span></h1><div style="text-align: justify;"><br /></div><div style="text-align: justify;">In fact, the word 'salvation' itself is just a 'fantasy' for those who have never experienced it. However, the word ‘salvation’ is generally a passive concept that cannot be obtained through effort, but for architects, ‘salvation’ by BIM is an active one that is applied according to the actions of the person involved. Of course, it is not something like “prayer” or “faith” required in religion, but something more substantial, such as “investment” or “learning”.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">I expect more architects to be interested in BIM and lead building industry.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div></span><p><br /></p>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com6tag:blogger.com,1999:blog-9006625370523765053.post-84058240851667241262021-08-11T00:00:00.007+09:002021-08-12T22:34:40.188+09:00Geometrical Construction in Dynamo<p><span> </span>Recently I've been asked about how to make a Tetra-Pod with Dynamo. After I created one, I felt it's a quite simple but good example of using geometrical construction in Dynamo, so I'm posting about it.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuBUXlvniz6nTwsdeZKwEsCy17g3E1EVD60wtkSwjPH5zLsKP816n5NtJfvymwNzwYsXCjDoZeRWETYmhUvmgj9pFeD_crVPaUa_F1Jb0opkL_2SyN8HaFzytczJrmBZobxHs6fcYelvA/s828/2021-08-10+21_26_05-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="485" data-original-width="828" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuBUXlvniz6nTwsdeZKwEsCy17g3E1EVD60wtkSwjPH5zLsKP816n5NtJfvymwNzwYsXCjDoZeRWETYmhUvmgj9pFeD_crVPaUa_F1Jb0opkL_2SyN8HaFzytczJrmBZobxHs6fcYelvA/w400-h234/2021-08-10+21_26_05-Window.png" width="400" /></a></div><p><br /></p><p><span> </span>Basically, the geometry of a Tetra-Pod is from a regular tetrahedron as it's name. So if a regular tetrahedron could be created, making a Tetra-Pod wouldn't be very difficult.</p><span><a name='more'></a></span><p><span> </span>Actually, I've already posted about creating five types of regular polyhedrons a few years ago.<a href="https://plevit1.blogspot.com/2015/04/polyhedrons.html">(You can read the post here)</a> I've used math to find each necessary angles at the post. This time, I didn't use any math calculations to find angles. Only pure geometrical methods were used instead. Geometrical constructions are useful especially when you want to avoid errors of float numbers.</p><p><br /></p><p><b><span style="font-size: medium;">1. Define regular triangle for bottom (in geometrical method)</span></b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih96oOqA7RXUx7U3Z3vkzNmKrTqslEUjFTOwQI_Itoz7YqNhRFF1pf4dbXL8vGjOpFwoHREb1dm0e0nWCgJIeYCQPVHPOPEo2Txfh6ux49EpRaHriS7EyTqCXNJGBYY-YQ0ISWB2__Q-8/s1588/2021-08-10+22_29_25-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="1588" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih96oOqA7RXUx7U3Z3vkzNmKrTqslEUjFTOwQI_Itoz7YqNhRFF1pf4dbXL8vGjOpFwoHREb1dm0e0nWCgJIeYCQPVHPOPEo2Txfh6ux49EpRaHriS7EyTqCXNJGBYY-YQ0ISWB2__Q-8/w400-h158/2021-08-10+22_29_25-Window.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div> RegularPolygon node can be used for creating a regular triangle, but I got one by geometrical method which is just like using a compass on a drafting board.<div class="separator" style="clear: both; text-align: center;"><br /><br /></div><br /><div><span style="font-size: medium;"><b>2. Find top apex.</b></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDlMWxeSKBH45QaFZ41CdQB2RPrK2o1AsraICPme-RgCRyjzy3CF9uElE5Vq303felBmL8fP3ZUw_bPrOfFS7EXWkGRIb3nA3lKHOIC8XxeeXDwPvMCWycAcdFtuZ608VedGu576uqVPk/s1455/2021-08-10+22_35_25-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="782" data-original-width="1455" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDlMWxeSKBH45QaFZ41CdQB2RPrK2o1AsraICPme-RgCRyjzy3CF9uElE5Vq303felBmL8fP3ZUw_bPrOfFS7EXWkGRIb3nA3lKHOIC8XxeeXDwPvMCWycAcdFtuZ608VedGu576uqVPk/w400-h215/2021-08-10+22_35_25-Window.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: justify;"><span style="text-align: left;"> The top apex can be found from intersect between arcs which has center points at each mid point of base lines and radius from the height of base triangle. Two of three arcs were used to find it. Now, all four apexes are found.</span></div><div style="text-align: justify;"><br /></div><div><span style="font-size: medium;"><b>3. Get the rest of the edges, and find the center point of the tetrahedron.</b></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhecCihd2mIpXnwoGHrvEFuGz1pVV7fOE-UBdMuhqxASC0AWgLYZBLLPQhGYKDd9nkNHYJs8ky1KIGXD9utbCkms08AMZQa0zn4JGpKIq-opPOIUvtpsmmA7toEKtYKCzF4kLTDKmnIlOs/s1353/2021-08-10+22_41_18-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="744" data-original-width="1353" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhecCihd2mIpXnwoGHrvEFuGz1pVV7fOE-UBdMuhqxASC0AWgLYZBLLPQhGYKDd9nkNHYJs8ky1KIGXD9utbCkms08AMZQa0zn4JGpKIq-opPOIUvtpsmmA7toEKtYKCzF4kLTDKmnIlOs/w400-h220/2021-08-10+22_41_18-Window.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><span> Create the rest of the three edges. Center point of the tetrahedron can be found from intersecting between lines which are across mid points of edge lines facing each other. A simple python code is written for it.</span><div><br /></div><div><span style="font-size: medium;"><b>4. Get frames.</b></span></div><div> <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifzUzNZsZA58Ja2vHPQ4VVDCQ7RX1R-ZBy8rokAPUn4qh8CkqWIdsjXw2G0i6cqOux8i7SkbSt0-OY-1TcF-aNoN4_8XP6iI1sFGwYBABULqY-aAjyeUFLQQw2AeXMlGO9fK1ScIcrqoA/s835/2021-08-10+22_44_31-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="770" data-original-width="835" height="369" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifzUzNZsZA58Ja2vHPQ4VVDCQ7RX1R-ZBy8rokAPUn4qh8CkqWIdsjXw2G0i6cqOux8i7SkbSt0-OY-1TcF-aNoN4_8XP6iI1sFGwYBABULqY-aAjyeUFLQQw2AeXMlGO9fK1ScIcrqoA/w400-h369/2021-08-10+22_44_31-Window.png" width="400" /></a></div><br /><span> Four lines which connect between center point and each apexes can be found. They are four legs of a Tetra-Pod.</span></div><div><span><b><span style="font-size: medium;"><br /></span></b></span></div><div><span><b><span style="font-size: medium;">5. Create circles for loft</span></b></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbVVd7tcD1kU9PdFyBBjVhwdFHRSWbTCe0FZbkQPyC5-0Yi8kPNBnuV4Y7HTkaU-U1uE5V97gOMGBLNw5fUGoUGBbkT_7HO8JUljcz4hX4fDs0vg4BKID0BG-9axPo9ucQI4aAcfDTpvs/s1055/2021-08-10+22_56_16-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="817" data-original-width="1055" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbVVd7tcD1kU9PdFyBBjVhwdFHRSWbTCe0FZbkQPyC5-0Yi8kPNBnuV4Y7HTkaU-U1uE5V97gOMGBLNw5fUGoUGBbkT_7HO8JUljcz4hX4fDs0vg4BKID0BG-9axPo9ucQI4aAcfDTpvs/w400-h310/2021-08-10+22_56_16-Window.png" width="400" /></a></div> <span> </span>Three circles are necessary for each leg to make solid geometries by loft. Each radius of circles is directly proportional with the base length at the beginning.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ORPpenvGkbxHQSG78VVaHd_HUNflw8XsPCI3_hUSytpYAE8xXOZwMzRSYp5W6T4V_s1G2A7abt8gECdQRhXU4uJnOf4KxxDD3DgsGPJUIhDjwNVTra6TQ6Hg1IHCV0CGjQlGuq4IFu0/s871/2021-08-10+23_04_11-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="871" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ORPpenvGkbxHQSG78VVaHd_HUNflw8XsPCI3_hUSytpYAE8xXOZwMzRSYp5W6T4V_s1G2A7abt8gECdQRhXU4uJnOf4KxxDD3DgsGPJUIhDjwNVTra6TQ6Hg1IHCV0CGjQlGuq4IFu0/w400-h275/2021-08-10+23_04_11-Window.png" width="400" /></a></div><br /><div><br /></div><div><b><span style="font-size: medium;">6. Generate a solid by loft.</span></b></div><div><span> A few Solids can be generated using loft from circles. And use Union.</span><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7TX5evJYGVu_OhCqawPplnz9z0BKuuqmHKZ0-PR78pa5teNpUgIAgHSBTEHdvIRyvBA64KXbDV176am1xV1bA0eIsUBzd-zqKvADtNv8xWdL8xJ6RNDWTY10wUy83_Glji3A8FQjqgIU/s1222/2021-08-10+23_08_12-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="790" data-original-width="1222" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7TX5evJYGVu_OhCqawPplnz9z0BKuuqmHKZ0-PR78pa5teNpUgIAgHSBTEHdvIRyvBA64KXbDV176am1xV1bA0eIsUBzd-zqKvADtNv8xWdL8xJ6RNDWTY10wUy83_Glji3A8FQjqgIU/w400-h259/2021-08-10+23_08_12-Window.png" width="400" /></a></div><br /><div><br /></div><div><br /><span>Now, a fine accurate Tetra-Pod geometry is generated without any complicated math.</span></div><div><span><br /></span></div><div>Again, the above is not the fastest way to get the geometry. Using math is faster in most cases. But it would be a good example for practicing geometrical approach in Dynamo. </div><div><br /></div><div><a href="https://sites.google.com/site/enjoyrevit/dynamo/tetra-pod-generator">You can build your own graph or just use mine.</a></div><div><br /></div><div>Enjoy :)</div><div><br /><div>--------------------------------</div><div>Update.</div><div><br /></div><div>This is about how to make a natural scene with Tetra-Pod.</div><div><a href="https://youtu.be/kI2qnQWxjbA">https://youtu.be/kI2qnQWxjbA</a></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/kI2qnQWxjbA" width="640" youtube-src-id="kI2qnQWxjbA"></iframe></div><br /><div><br /></div><div><div><br /></div><div><br /><div><br /><p><br /></p><p><br /></p></div></div></div></div>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-56791782618547115662021-08-06T19:14:00.026+09:002021-08-09T16:49:26.241+09:00Unfolding Curtain Walls for Documents<p><span> One of</span> the advantages of using Revit is in making documents. Revit makes it easy for me to create plans, elevations, legends or schedules. But some of elements in Revit models are quite tricky to make it's documents.</p><p><span> Curtain Wall is one of them. It's harder especially when it has curved location line. In Autocad environments, I've naturally drawn a planar for it's documents, but in Revit, I had to use 3d views, assembly or other ways to explain it through documents.</span><br /></p><p> I know there are several Dynamo solutions for unfolding. But I couldn't find a great one for creating construction documents from any of them. So, I created my own dyn for the job.</p><p><br /></p><p><b>1. Approach</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4dZqpZtljKAP8yRX6hobOEOA39PV4YSJv2C57y9ZAtikYkFEWdAeT7gOt8OhHAKYJetE2pNevHW3CI11XqeeTp5ybi-Zk6_NOe-z36ZhLWfvjBjR0a5rLgn8DwenMSTCbHbvRcRd6agA/s930/2021-08-06+17_43_05-Dynamo.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="361" data-original-width="930" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4dZqpZtljKAP8yRX6hobOEOA39PV4YSJv2C57y9ZAtikYkFEWdAeT7gOt8OhHAKYJetE2pNevHW3CI11XqeeTp5ybi-Zk6_NOe-z36ZhLWfvjBjR0a5rLgn8DwenMSTCbHbvRcRd6agA/w400-h155/2021-08-06+17_43_05-Dynamo.png" width="400" /></a></div><p><span> From a selected Curtain Wall , you can get Panels or Mullions. </span></p><p><span></span></p><a name='more'></a><p></p><p><span><span> At the moment, I realized that what I needed in documents were not Panels but Mullions, except the case without Mullions which is rare. And the size of data to be cared is smaller in mullions than the one in Panels.(Lines vs Surfaces) So I choose to go with Mullions. The choice makes a lot of differences in following graph. </span><br /></span></p><p><br /></p><p><b>2. Categorize</b></p><p><span> There are two kinds in mullions. Horizontal(transoms) and Vertical(mullions). I just separated them. </span><br /></p><p> Below code is written for making the work easy.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG0uxthm_yng5sZvwRvaWdTmIiDI6FeBE231HiudmQtiObl5j_JSNe5IDvfh1Gk5p-LylrDFzj5x_oihDAah1JkwlanLA-SalwAEVKk-RmZy-epsdLLaax7NBwTIXEIxX3a_946PauhEo/s550/2021-08-06+18_08_56-V+and+H+lines.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="493" data-original-width="550" height="359" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG0uxthm_yng5sZvwRvaWdTmIiDI6FeBE231HiudmQtiObl5j_JSNe5IDvfh1Gk5p-LylrDFzj5x_oihDAah1JkwlanLA-SalwAEVKk-RmZy-epsdLLaax7NBwTIXEIxX3a_946PauhEo/w400-h359/2021-08-06+18_08_56-V+and+H+lines.png" width="400" /></a></div><br /><div><br /></div><div><b>3. Merge vertical lines from Mullions.</b></div><div><span> </span><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9O2DYMt9PQGTePRlMUFIWDcbF5WffkUdUC3BYNxAEB8BM_T3VatqdHfxISTBshlDkpDedosjwu0cBoi35VtQJO6cnzT7ZAZf9RJYTG6qTB82zoV5l-iQPoUe02t8vwfMuFuaM8XgSYQ/s640/2021-08-06+18_14_10-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Elevation_+South%255D.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="601" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9O2DYMt9PQGTePRlMUFIWDcbF5WffkUdUC3BYNxAEB8BM_T3VatqdHfxISTBshlDkpDedosjwu0cBoi35VtQJO6cnzT7ZAZf9RJYTG6qTB82zoV5l-iQPoUe02t8vwfMuFuaM8XgSYQ/w376-h400/2021-08-06+18_14_10-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Elevation_+South%255D.png" width="376" /></a></div><span> The lines from mullions are all split to several ones in one aligned mullion. Lines are all merged if they are in one mullion. it will make the code run fast and let the work easy potentially.</span><div><br /></div><div><br /></div><div><b>4. Translate vertical lines at a plane.</b></div><div><br /></div><div><span> For translating standing lines to an xy plane, a baseline should be defined with proper length. It is shorter than the length of Walls location line when the wall is curved. The length can be found by calculating each distance between mullions.</span><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJQ_Zw7LZMUzdo8tvweep4ou7INErVB7AQx6_tUwssSfu_xMNgb4-cGPl9Cney7mJEdSVfk6OJp0X_N3SQ4OREyrAd3dhyphenhyphenZfpwobj2RUwM02TqMjnas5QP1p5LZD3mpOfwALJ6M2rPx90/s1079/2021-08-06+18_29_41-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1079" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJQ_Zw7LZMUzdo8tvweep4ou7INErVB7AQx6_tUwssSfu_xMNgb4-cGPl9Cney7mJEdSVfk6OJp0X_N3SQ4OREyrAd3dhyphenhyphenZfpwobj2RUwM02TqMjnas5QP1p5LZD3mpOfwALJ6M2rPx90/s320/2021-08-06+18_29_41-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Floor+Plan_+Level+1%255D.png" width="320" /></a></div><div style="text-align: justify;"> After defining a baseline, lines for vertical mullions can be easily located at the plane by replacing z coordinates of the original standing lines to y coordinates for a plane.</div></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>5. Translate horizontal lines at a plane.</b></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><span> Measure parameter of each horizontal lines at original wall location, and apply it to the new baseline. It will be x coordinates in the plane. Z coordinates will be y coordinates again. Mullion width also can be found from distance between aligned horizontal lines.</span></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>6. Adjust V and H lines.</b></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><span> Now all lines are translated at a plane. But one last thing had to be done before offset each lines.</span><br /></div><div style="text-align: justify;"><span><span> As a picture below, mullion lines are at the outside of each mullion if it's for border.</span><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg50UqlUA6xkKqOcjNnlyrr3EePaye1Eyx7zja2HAN48g0s-YbtxMWE6FoxvgZSY78MW-C64M_g-1f49gr1iJPuJ_N9AWHPtvQH1tdxWcMVWt0zcxFU7A6YOg9zcbW0YHsJ2tWrhf6WCEA/s968/2021-08-06+18_48_27-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Elevation_+South%255D.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="739" data-original-width="968" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg50UqlUA6xkKqOcjNnlyrr3EePaye1Eyx7zja2HAN48g0s-YbtxMWE6FoxvgZSY78MW-C64M_g-1f49gr1iJPuJ_N9AWHPtvQH1tdxWcMVWt0zcxFU7A6YOg9zcbW0YHsJ2tWrhf6WCEA/w400-h305/2021-08-06+18_48_27-Autodesk+Revit+2022+-+%255BCurtain+wall+Round+test.rvt+-+Elevation_+South%255D.png" width="400" /></a></div><span> These lines should be moved to each center of mullions. The mullion width which I took above tells me the distance to move.</span></div><div><br /></div><div><br /><div><br /></div><div><b>7. Offset lines and get the final draft.</b></div><div><br /></div><div><span><span> It's the e</span>asiest part. Just offset and use DetailCurve.ByCurve node</span></div></div><div><span><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKgnqlo-YraZfkfk4LftkwFUIr_jPgPcq4vbWvShwzmCSAGG7IrB3ejeGotwU76iHfZA2mIzQXolGfOslv6kVWmJMW0fYbkU7upkLml2AY843XOWha6TfQJNHIe74znasJgD9B168iRNc/s1227/2021-08-06+18_59_59-Dynamo.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="606" data-original-width="1227" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKgnqlo-YraZfkfk4LftkwFUIr_jPgPcq4vbWvShwzmCSAGG7IrB3ejeGotwU76iHfZA2mIzQXolGfOslv6kVWmJMW0fYbkU7upkLml2AY843XOWha6TfQJNHIe74znasJgD9B168iRNc/w400-h124/2021-08-06+18_59_59-Dynamo.png" width="400" /></a></div><div><br /></div>Watch how it works.</div><div><a href="https://youtu.be/EHRqOvTfmp8">https://youtu.be/EHRqOvTfmp8</a></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/EHRqOvTfmp8" width="640" youtube-src-id="EHRqOvTfmp8"></iframe></div><br /><div class="separator" style="clear: both; text-align: justify;"><span style="text-align: left;"><span> </span>I used python nodes mostly, but I believe the same can be done with the original Dynamo nodes.</span></div><div style="text-align: justify;"><br /></div><div>I have no idea how the documents for Curtain Walls are delivered in each country though, hope it would help some of you.</div><div><br /></div><div><a href="https://sites.google.com/site/enjoyrevit/dynamo/curtain-wall-unfolding-generator?authuser=0">You can create your own code or just use mine</a>.</div><div><br /></div><div>Enjoy. :)</div>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com4tag:blogger.com,1999:blog-9006625370523765053.post-74105937655016152172021-07-25T15:15:00.018+09:002021-08-04T11:59:08.741+09:00How to Speedup Your Dynamo<p><span> </span>When ever I create a Dynamo graph, what I do at the end is reviewing the graph (or python code) and ask myself whether it is the fastest flow. (Yes, I'm a Korean. <a href="https://chrissantosra.wordpress.com/2012/03/05/koreas-pali-pali-culture-and-its-dynamism/">Click if you want to learn a Korean word pali-pali)</a></p><p><br /></p><p>There would be a lot of situations though, there are some representative ways to speedup Dynamo.</p><p><br /></p><p><b>1. Use Numbers rather than Geometries as possible.</b></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrsDcdwfFRxLinIVDmJRgPurlWAj_VsI1FX3Oprk5tW0cRhGO7y1Oo4Fhj85dQGNw1N695iK8wWNIoW6wD6PqFv-n8tEFd3i3dZF8GfOqAC3TGhyphenhyphen_CH4zAaDg5lvnzQIUG2ZthzOMVzH4/s1340/2021-07-25+13_09_32-Dynamo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="474" data-original-width="1340" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrsDcdwfFRxLinIVDmJRgPurlWAj_VsI1FX3Oprk5tW0cRhGO7y1Oo4Fhj85dQGNw1N695iK8wWNIoW6wD6PqFv-n8tEFd3i3dZF8GfOqAC3TGhyphenhyphen_CH4zAaDg5lvnzQIUG2ZthzOMVzH4/w400-h141/2021-07-25+13_09_32-Dynamo.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">figure#1. Geometry.Translate</td></tr></tbody></table><br /><span><a name='more'></a></span><div class="separator" style="clear: both; text-align: center;"><br /></div><span> </span>Figure#1 is a graph to generate 100,000 points by using Geometry.Translate. And it took 2.55 seconds.<div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNiJIFgSMd91cDCGoyqChmeuCgOfgMJnI4h0Zh4ywWoaouiYqGGwHLxJXn5xptAGg1pekLvbXBqOf1DIxONFh6eeGMYFat6gM1nExu7sA2NgeyLew2owQnWUrc9pokX4Xa0JA_KS7_kmw/s902/2021-07-25+13_12_01-Dynamo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="410" data-original-width="902" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNiJIFgSMd91cDCGoyqChmeuCgOfgMJnI4h0Zh4ywWoaouiYqGGwHLxJXn5xptAGg1pekLvbXBqOf1DIxONFh6eeGMYFat6gM1nExu7sA2NgeyLew2owQnWUrc9pokX4Xa0JA_KS7_kmw/w400-h181/2021-07-25+13_12_01-Dynamo.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">figure#2. Point.ByCoordinates</td></tr></tbody></table><div class="separator" style="clear: both; text-align: center;"><br /></div><span> F</span>igure#2 is a graph using Pioint.ByCoordinates from generated coordinates directly to get the same list as figure#1. It took 2.02 seconds.<div><br /></div><div>0.5 seconds doesn't look long time, it's literally less than 'just a second'. But if you are dealing with a large graph and it can contain a huge data set, it won't be 'just a second ' difference.</div><div><br /></div><div><b><br /></b></div><div><b>2. Don't make the same data twice or more.</b></div><div><span><br /></span></div><div><span> Sometimes, in a large graph, You can create the same lists or items several times just for the graph to look pretty or make it easy to understand. Remember that all of data will be calculated and saved. The larger data the slower your system.</span><br /><p><br /></p><p><b>3. Use Python.</b></p><p><span> One known good reason to use python in Dynamo is to import Revit API, but</span> it is not the only advantage.</p><p><span> 1st. Minimize data sets to save.</span></p><p><span> 2nd. Make a Dynamo graph smaller.</span><br /></p><p><span><span> 3rd. Easy to combine multiple calculations.</span><br /></span></p><p><span><span><span> 4th. Enable to skip unnecessary calculations.</span><br /></span></span></p><p><span><span><span><span> and more...</span><br /></span></span></span></p><p><span><span><span> </span></span></span></p><p><span><span><span> Below is an example of using python. One simple Python Script replaced multiple nodes. Python made the graph smaller and speedup the flow.</span></span></span></p><p><span><span><br /></span><span></span></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0dJalqvuKYf1_K9IzXX-U_2Gkc5SW5spoZwiepseSnPDlO99pFprFB25jsoTyrnaShMPF_GhiRIXdihY1v7tmU9_bBCO_ZSyhtelULHr8dSgxVEmc0nMu5z4wGwgFUNKLcI369UgAJF8/s2013/2021-07-25+14_16_06-Dynamo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="822" data-original-width="2013" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0dJalqvuKYf1_K9IzXX-U_2Gkc5SW5spoZwiepseSnPDlO99pFprFB25jsoTyrnaShMPF_GhiRIXdihY1v7tmU9_bBCO_ZSyhtelULHr8dSgxVEmc0nMu5z4wGwgFUNKLcI369UgAJF8/w400-h164/2021-07-25+14_16_06-Dynamo.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">figure#3. Categorizing curves using original nodes</td></tr></tbody></table><br /><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipWf22hwXmUkDCzKOo2pE_zQXiwpGU7A4Z48L-Gv6E5BXaTNJypUG7lqbMj1M0XdadjeirFK2i3LerfTK_vNVzn6MmgS8XDxczgHhxv4o1pbY2qBfQ1ca5tY7xitPbfH-aFRD93-YoDEs/s1160/2021-07-25+14_20_15-Dynamo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="560" data-original-width="1160" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipWf22hwXmUkDCzKOo2pE_zQXiwpGU7A4Z48L-Gv6E5BXaTNJypUG7lqbMj1M0XdadjeirFK2i3LerfTK_vNVzn6MmgS8XDxczgHhxv4o1pbY2qBfQ1ca5tY7xitPbfH-aFRD93-YoDEs/w400-h193/2021-07-25+14_20_15-Dynamo.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">figure#4. Categorizing curves using python</td></tr></tbody></table><p><br /></p></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZCizuN3c-QkXeQKkMWV9wgaTnTDpqOc5DwrVeMW60KXSRsQW3LthsjDYuhbMjHp9kykl222snZihYw8MgCfqkOb7y8ziT-6UBECgpilabC_YFGXJZgG72BZ3M2oweqtPSqs4ymb-nNhM/s511/2021-07-25+14_24_50-Separate+Curves.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="511" data-original-width="394" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZCizuN3c-QkXeQKkMWV9wgaTnTDpqOc5DwrVeMW60KXSRsQW3LthsjDYuhbMjHp9kykl222snZihYw8MgCfqkOb7y8ziT-6UBECgpilabC_YFGXJZgG72BZ3M2oweqtPSqs4ymb-nNhM/w309-h400/2021-07-25+14_24_50-Separate+Curves.png" width="309" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">firuge#4-1 Python code for Categorizing curves</td></tr></tbody></table></div><div><span> </span></div><div><span><br /></span></div><div><span> I'm not a programmer but an </span>architect. What I know about Python is just few. But just small knowledge of python should help you a lot.</div><div><br /></div><div>Enjoy :)</div>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com1tag:blogger.com,1999:blog-9006625370523765053.post-19316400612278958102021-07-21T11:50:00.018+09:002021-07-30T12:00:55.347+09:00What is Vector.AlmostEqualTo and Vector.IsParallel?<p> Vector is one of the most important factors when you manipulate geometries with Dynamo.</p><p><br /></p><p>If so, Here is a question.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6BbAMsnoGI7MIRTv3mAoigVbv2CRoCrFRv6HNchtC9WKd_J9U6493kWQ-UAIlCMlfnps8YbXQJyir2Lp1WzNfXltFpX6hWlD5ApqYz6fiAsXuH52S20Kz65hnj0EdPDgBUPkMBny640U/s901/2021-07-21+10_35_50-Window.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="521" data-original-width="901" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6BbAMsnoGI7MIRTv3mAoigVbv2CRoCrFRv6HNchtC9WKd_J9U6493kWQ-UAIlCMlfnps8YbXQJyir2Lp1WzNfXltFpX6hWlD5ApqYz6fiAsXuH52S20Kz65hnj0EdPDgBUPkMBny640U/w400-h231/2021-07-21+10_35_50-Window.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">What will these two return???</td></tr></tbody></table><br /><p><span><span></span></span></p><a name='more'></a><span> </span><span> </span>As known, a vector has two factors in it. One is Direction, another is Length.<p></p><p>I wondered what does 'Almost' means In Vector.AlmostEqualTo node. There is no 'Almost' kind of things in Math. There are only Right or Wrongs.</p><p><br /></p><p>So, I've tested the node with some vectors which are Almost Equal (for me) to each other to find out what 'Almost' means in the node.</p><p><br /></p><p><b>1. Almost Equal Length</b></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiOI4BNqRBZJ-sIFAnk-l1X7vfJiv1E7CxiZ4cgtzLVtM1sVy_wpV9q2Yn6jv5k73X6LxE7q7xidB4jCfi1Ad2_zgtbIKgvJoAWqMZZyv8Q_6nC3mxY1M7NPrghF0jUe0tXU56J8fUvf8/s741/2021-07-21+10_44_59-Window.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="407" data-original-width="741" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiOI4BNqRBZJ-sIFAnk-l1X7vfJiv1E7CxiZ4cgtzLVtM1sVy_wpV9q2Yn6jv5k73X6LxE7q7xidB4jCfi1Ad2_zgtbIKgvJoAWqMZZyv8Q_6nC3mxY1M7NPrghF0jUe0tXU56J8fUvf8/w400-h220/2021-07-21+10_44_59-Window.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><br /></td></tr></tbody></table><span> As you can see above, 1 and 1.09 are almost equal lengths. But 1 and 1.1 are totally different lengths. It means under 10% longer lengths are regarded as Almost Equal.</span><div><br /><div><br /></div><div><b>2. Almost Equal Direction</b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDe0vKN3psl_whTH888D9EoUujS606wVkR-PeFGVpKUpr1D9vXkGxP5zmESvJPoqCjmPh5ryQCv7-jK4ckbrVpmbNZRRQyqdlSNbLgRns3CtDRGP4niL6PdX-i3H8_wUft-mvJ2pbGcGI/s768/2021-07-21+10_54_49-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="526" data-original-width="768" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDe0vKN3psl_whTH888D9EoUujS606wVkR-PeFGVpKUpr1D9vXkGxP5zmESvJPoqCjmPh5ryQCv7-jK4ckbrVpmbNZRRQyqdlSNbLgRns3CtDRGP4niL6PdX-i3H8_wUft-mvJ2pbGcGI/w400-h274/2021-07-21+10_54_49-Window.png" width="400" /></a></div><br /><div><span> </span>According to the test, under 5.74 degree difference is Almost Equal and others are totally different direction for the node. And of course 180 degree difference is also totally different direction.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEeXplGkGtKpwtFK8cHgGh9ozQ-_uCDvX2NBC74z_uc81sEMwrZLmhmR4018_qrrrUwIFMDV2kJWRlrqV0EPJMpCTgA0DjAgM0JZqhYZbFjCCirz2d3-yhxXq9Q8kr3FcJAp6LNHwOabA/s899/2021-07-21+15_36_44-Autodesk+Revit+2019.2+-+%255BUnit+At+Once+Test.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="296" data-original-width="899" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEeXplGkGtKpwtFK8cHgGh9ozQ-_uCDvX2NBC74z_uc81sEMwrZLmhmR4018_qrrrUwIFMDV2kJWRlrqV0EPJMpCTgA0DjAgM0JZqhYZbFjCCirz2d3-yhxXq9Q8kr3FcJAp6LNHwOabA/w400-h131/2021-07-21+15_36_44-Autodesk+Revit+2019.2+-+%255BUnit+At+Once+Test.rvt+-+Floor+Plan_+Level+1%255D.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Almost Equal Direction by the node</td></tr></tbody></table><br /><div><br /></div><div><br /></div><div>So, if you want to take 'Almost Equal Direction' while ignoring Lengths of both, you can use Vector.Normalized to make both Lengths to the same.</div><div><br /></div><div><br /></div><div><b>3. Parallel</b></div><div><b><br /></b></div><div><span> I don't think I have to explain 'Parallel', but I tested Vector.IsParallel node to make it sure.</span><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_m8kqtWoYSW-h5lSBQjn9-JrDp7BFvZZ5KsSHiQXvDZ0uZtm1BKl1PJKT7G4SKpWrU3yYDCW5ynLKEaHSja6RRsbWfEtiSrAF4y_m3kadrksgnYZTsUKCManMFbdh6kV7ClQr0xdKKY/s794/2021-07-21+11_05_15-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="530" data-original-width="794" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC_m8kqtWoYSW-h5lSBQjn9-JrDp7BFvZZ5KsSHiQXvDZ0uZtm1BKl1PJKT7G4SKpWrU3yYDCW5ynLKEaHSja6RRsbWfEtiSrAF4y_m3kadrksgnYZTsUKCManMFbdh6kV7ClQr0xdKKY/w400-h268/2021-07-21+11_05_15-Window.png" width="400" /></a></div><span> Only the same direction and 180 degree rotated direction are regarded as Parallel. Lengths of both vectors are not considered.</span></div><div><span><br /></span></div><div><br /></div><div><b>4. After above experiments were conducted, a simple Python code for Dynamo named "Vector.IsAlmostParallel" can be wrote.</b></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKe_NNgcjtxE7hWcWFYsg7XMDa7KjH2SAk_ilMbMjJKCESmQhjulRC4QUUD2YE-tlOvWuZ4lcpDlUvRkvWoIaA7sScdZzfDmpNSWgtKjgSsc0HOD1cmxen8iVspCB5dx2NpPKnOfvge88/s761/2021-07-21+11_29_04-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="517" data-original-width="761" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKe_NNgcjtxE7hWcWFYsg7XMDa7KjH2SAk_ilMbMjJKCESmQhjulRC4QUUD2YE-tlOvWuZ4lcpDlUvRkvWoIaA7sScdZzfDmpNSWgtKjgSsc0HOD1cmxen8iVspCB5dx2NpPKnOfvge88/w400-h271/2021-07-21+11_29_04-Window.png" width="400" /></a></div><div><br /></div>You can use below code if necessary.</div><div><br /></div><div>Enjoy :)<br /><div><br /></div></div>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: #888888;"># Enable Python support and load DesignScript library</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">clr</span>
clr<span style="color: #333333;">.</span>AddReference(<span style="background-color: #fff0f0;">'ProtoGeometry'</span>)
<span style="color: #008800; font-weight: bold;">from</span> <span style="color: #0e84b5; font-weight: bold;">Autodesk.DesignScript.Geometry</span> <span style="color: #008800; font-weight: bold;">import</span> <span style="color: #333333;">*</span>
<span style="color: #888888;"># The inputs to this node will be stored as a list in the IN variables.</span>
dataEnteringNode <span style="color: #333333;">=</span> IN
<span style="color: #888888;"># Place your code below this line</span>
vector1<span style="color: #333333;">=</span>IN[<span style="color: #0000dd; font-weight: bold;">0</span>]
vector2<span style="color: #333333;">=</span>IN[<span style="color: #0000dd; font-weight: bold;">1</span>]
v1 <span style="color: #333333;">=</span> vector1<span style="color: #333333;">.</span>Normalized()
v2 <span style="color: #333333;">=</span> vector2<span style="color: #333333;">.</span>Normalized()
v3 <span style="color: #333333;">=</span> v2<span style="color: #333333;">.</span>Reverse()
<span style="color: #888888;"># determine Almost Equal Angle Only.</span>
<span style="color: #008800; font-weight: bold;">if</span> v1<span style="color: #333333;">.</span>IsAlmostEqualTo(v2):
IsAlmostEqualDirection<span style="color: #333333;">=</span><span style="color: #007020;">True</span>
<span style="color: #008800; font-weight: bold;">else</span>:
IsAlmostEqualDirection<span style="color: #333333;">=</span><span style="color: #007020;">False</span>
<span style="color: #888888;"># determine Almost Parallel.</span>
<span style="color: #008800; font-weight: bold;">if</span> v1<span style="color: #333333;">.</span>IsAlmostEqualTo(v2) <span style="color: black; font-weight: bold;">or</span> v1<span style="color: #333333;">.</span>IsAlmostEqualTo(v3):
IsAlmostParallel<span style="color: #333333;">=</span><span style="color: #007020;">True</span>
<span style="color: #008800; font-weight: bold;">else</span>:
IsAlmostParallel<span style="color: #333333;">=</span><span style="color: #007020;">False</span>
<span style="color: #888888;"># Assign your output to the OUT variable.</span>
<span style="color: #888888;"># Use IsAlmostEqualDirection if you want.</span>
OUT <span style="color: #333333;">=</span> IsAlmostParallel
</pre></div>
<span><!--more--></span><span><!--more--></span><span><!--more--></span><span><!--more--></span>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-66119744296819340042021-06-22T13:30:00.006+09:002021-07-22T23:57:32.939+09:00What Makes Your Revit Slow?<p> I know this is a rusty issue in Revit community. And There were several opinions about it.</p><p>But most of them are about view browsing speed or file size. So they were not very useful to speed up my Revit projects.</p><p><br /></p><p>Here is my opinion from my experience that really help you to minimize delay in Revit projects</p><p><br /></p><p><b><span style="font-size: medium;">1. Disable Structure Analysis.</span></b></p><p>Revit calculates structure analysis internally. If your Project is not for Structure calculation, just remove the function from the project. You need two steps to do it.</p><p> 1st. Uncheck all of the structure analysis options.</p><table align="center" cellpadding="0" cellspacing="0" class="gmail-tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWI6AaVP4XqJgP_UoETkhxfMcNpNQH7y_UxBoIMpudKI7Y4YQE9KEyqQSnBA0OtU3Rc3geQGUQjiGvLaaKXJ8im0VXKexH2TzAizYm6ONdVf9EYt53SEXOln0w2c4XIGgtg4ZBkZNGfKw/s877/2021-06-22+11_02_35-Window.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWI6AaVP4XqJgP_UoETkhxfMcNpNQH7y_UxBoIMpudKI7Y4YQE9KEyqQSnBA0OtU3Rc3geQGUQjiGvLaaKXJ8im0VXKexH2TzAizYm6ONdVf9EYt53SEXOln0w2c4XIGgtg4ZBkZNGfKw/w400-h319/2021-06-22+11_02_35-Window.png" width="400" /></a></td></tr><tr><td class="gmail-tr-caption" style="text-align: center;">Uncheck all of them</td></tr></tbody></table><span><a name='more'></a></span><p><br /></p><div> 2nd. Uncheck 'Enable Analytical Model' from all of the Structure elements.</div><div class="gmail-separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6uyurVgtdtNLwpftrFDrDr9F6G2GazNIP9_-RGYAo7l954A3tZfuW9q6PTDb2Fn7htGC6FUr27JuU8pwD_LJyYIrSCEEMv6U-iF1U_W2Phl7SxcIsr1REddwkPSnHRyNQZju5LsLHJA/s557/2021-06-22+11_10_19-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6uyurVgtdtNLwpftrFDrDr9F6G2GazNIP9_-RGYAo7l954A3tZfuW9q6PTDb2Fn7htGC6FUr27JuU8pwD_LJyYIrSCEEMv6U-iF1U_W2Phl7SxcIsr1REddwkPSnHRyNQZju5LsLHJA/w370-h400/2021-06-22+11_10_19-Window.png" width="370" /></a></div><p> You can do the job at once using a simple Dynamo graph as bottom.</p><div class="gmail-separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-32VJAYmJd0Lwqnbve4AEr1GjJoL_i7xpfwZaUHqDPxEH-1ArK6fltYh2UzvsIKhKVCKhZYoofDkvzs_H2RwVND5dhTYWsr4L6rwscbd-Deh3Z8iqyCSC7vbo9SeVbFTHHaW5wQgMHAg/s1011/2021-06-22+11_46_36-Window.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-32VJAYmJd0Lwqnbve4AEr1GjJoL_i7xpfwZaUHqDPxEH-1ArK6fltYh2UzvsIKhKVCKhZYoofDkvzs_H2RwVND5dhTYWsr4L6rwscbd-Deh3Z8iqyCSC7vbo9SeVbFTHHaW5wQgMHAg/s320/2021-06-22+11_46_36-Window.png" width="320" /></a></div><p><br /></p><div> If you want the Analytic data at any moment, you can easily enable the above options.<br /><div><br /></div><div><br /><p><b><span style="font-size: medium;">2. Too large Profile (of floor)</span></b></p><p>A floor with a large profile makes quite a long delay when you edit it. Even if one floor is large, make it as separated small ones. This may make the project file size bigger a little, but it will shorten your working time.</p><p><br /></p><p><span style="font-size: medium;"><b>3. Constraint & Attachment</b></span></p><p>Make Constraint or Attachment as less as possible. It makes data to calculate larger, and may cause potential error in your projects.</p><p><br /></p><p><span style="font-size: medium;"><b>4. Join / Unjoin</b></span></p><p>I know Joining model elements is inevitable. But leave them as unjoined as possible. A project with all Joined elements behaves even slower than the one with Unjoined. If you want your model with all joined, do it after most of inputs are done. Dynamo is a good solution to do it for sure.</p><p><br /></p><p><span style="font-size: medium;"><b>5. Use Linked Model</b></span></p><p>If your project is very large, you'd better separate your project into several parts of the project. You can experience a dramatic raise of performance if you make just only floors as a linked model.</p><p>Some users use Workset as layers or just to separate Discipline. It is not a good idea. It doesn't speed up Revit but makes you annoyed.</p><p><br /></p><p><br /></p><p>You can suggest any of yours about above.</p><p><br /></p><p>Enjoy :)</p></div></div>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com2tag:blogger.com,1999:blog-9006625370523765053.post-15447759974133484042021-06-13T23:57:00.018+09:002021-07-22T23:56:48.600+09:00Why Can't I Use Curved Insulation in Revit yet?<p> If you are one of my old subscribers, you may remember <a href="https://plevit1.blogspot.com/2013/10/curved-insulation.html" target="_blank">one of my old posts which is about Curved Insulation in Revit.</a> It's 8 years ago and Revit still doesn't provide curved insulation... Really? It's 2021, Musk is going to Mars!!</p><p><br /></p><p>My last insulation family was not bad but not good enough either. This time, I created a Dynamo graph for the same job. And it's more convenient and better than basic insulation tool in some ways.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJWa7lKS-Lgdjevike8c8jahpA6aoi1PMN2eHgNOKYhGVLXQkDiM7tmy2SZA1nvt9TCA32LoWp_9-C96dyzqvR3E0Vz27znLPM01j3OV-_e9bNd2ybwTri56JLa-x3xP7MbR3jOy6Bdc/s840/curved+insulation.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="620" data-original-width="840" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJWa7lKS-Lgdjevike8c8jahpA6aoi1PMN2eHgNOKYhGVLXQkDiM7tmy2SZA1nvt9TCA32LoWp_9-C96dyzqvR3E0Vz27znLPM01j3OV-_e9bNd2ybwTri56JLa-x3xP7MbR3jOy6Bdc/w400-h295/curved+insulation.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Is this what you imagine? See below if yes.</td></tr></tbody></table><br /><span><a name='more'></a></span><p><br /></p><p>I created two different Dynamo graph.</p><p><br /></p><p><b>1st. Using Arcs and Straight Lines.</b></p><p> It's created by my traditional method, Math.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIxvTFJbyIzDHzTtkAhugSNEPBY8q7ULmZQjAfApuCrjQVzyu0KKWE4jaoFclO-rJeNlC3qHatjKJFB-uHXa1wpi_gN9Ui_TnlvCHTFYzrjnjOjTUOwxYwTcTkd4NtGooNrNU-kBJMhF4/s1682/2021-06-13+18_23_54-Window.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="506" data-original-width="1682" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIxvTFJbyIzDHzTtkAhugSNEPBY8q7ULmZQjAfApuCrjQVzyu0KKWE4jaoFclO-rJeNlC3qHatjKJFB-uHXa1wpi_gN9Ui_TnlvCHTFYzrjnjOjTUOwxYwTcTkd4NtGooNrNU-kBJMhF4/w640-h192/2021-06-13+18_23_54-Window.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">This is just a part of the graph.</td></tr></tbody></table> <br /><p>It works quite well, but I found a small faulty on this.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhto9x6HHLDt9HYXL97WneUw0vEYQduSnqXpt7UShyEPT8qIAOqUmubJDKjL8I_3isKc74ZG0LZuLkTeKokeTwir3qBClguipDor70phtgdHuVM-GnWP2CU6BoqLfFh1yZd-BrJOPSKBUs/s814/2021-06-13+21_44_44-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="337" data-original-width="814" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhto9x6HHLDt9HYXL97WneUw0vEYQduSnqXpt7UShyEPT8qIAOqUmubJDKjL8I_3isKc74ZG0LZuLkTeKokeTwir3qBClguipDor70phtgdHuVM-GnWP2CU6BoqLfFh1yZd-BrJOPSKBUs/w400-h165/2021-06-13+21_44_44-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Looks fine.. But.</td></tr></tbody></table><br /><p>It can't generate an insulation which has small Width Ratio(wide insulation interval) like below picture. </p><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmfnv5YCorNmlIM1xvaS_ysgp7qMwm7kyGBwWPI2H4l9T53jjmN8FVXw8Cmhn13dOA6YemloZR9aMvy51_WUBMdD4vBY3T0VUHvrwpxWUGVGJqhDTqI0w_G95RlzP-_MTNVTvB9YMY3Y/s522/2021-06-13+21_35_07-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="180" data-original-width="522" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmfnv5YCorNmlIM1xvaS_ysgp7qMwm7kyGBwWPI2H4l9T53jjmN8FVXw8Cmhn13dOA6YemloZR9aMvy51_WUBMdD4vBY3T0VUHvrwpxWUGVGJqhDTqI0w_G95RlzP-_MTNVTvB9YMY3Y/w400-h138/2021-06-13+21_35_07-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Basic Revit Insulation. Width Ratio=1</td></tr></tbody></table><br /><div><b>2nd. Using NurbsCurve.</b></div><div><br /></div><div>As you can see above picture, curve of Insulation in Revit is not arc&line but NurbsCurve which can be drawn with Spline tool. So I reverse-engineered insulation of Revit and got some rules to imitate it.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ5_WQdoy_AUry0ZSvh5LOwNhhrSowunNPTWtbKBUyR9Qznw8A0-CRg2hoOyGp4exiRP1dQf8e04g2JZqRtOFzAZyzH1YWBzNv2m8mV5LyLPU1aFQkaYJrsNGlqTAxF7isu6K-_vd9bDg/s1262/2021-06-13+22_44_28-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="636" data-original-width="1262" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ5_WQdoy_AUry0ZSvh5LOwNhhrSowunNPTWtbKBUyR9Qznw8A0-CRg2hoOyGp4exiRP1dQf8e04g2JZqRtOFzAZyzH1YWBzNv2m8mV5LyLPU1aFQkaYJrsNGlqTAxF7isu6K-_vd9bDg/w400-h201/2021-06-13+22_44_28-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">11 points are necessary to imitate a half unit of insulation at least</td></tr></tbody></table><br /><div>By cycling above points, I could get fine insulation for curves by Dynamo as below.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3EBTclgyX5Pkk2wiNdjqF_Xxx_X13LaJ1nF18vLUScfUOSrTO411mDPVrQj501PSqeEU7Iu3lNzQadckWncIBjijUcyrJk6tksqo495YN2xmxwwEsV6g7ZunmZ49aBMyA9F7j_17bc0/s929/2021-06-13+22_48_55-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="367" data-original-width="929" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3EBTclgyX5Pkk2wiNdjqF_Xxx_X13LaJ1nF18vLUScfUOSrTO411mDPVrQj501PSqeEU7Iu3lNzQadckWncIBjijUcyrJk6tksqo495YN2xmxwwEsV6g7ZunmZ49aBMyA9F7j_17bc0/w400-h158/2021-06-13+22_48_55-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Can you find where is the original Insulation?</td></tr></tbody></table><br /><div><br /></div><div>And More..</div><div><br /></div><div>There is another inconvenience of Revit insulation. It creates insulation by unit, so it's hard to adjust both ends to fill all wall section. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOCo2aSvnXkI_dqUIfdRhjeNgnluMiw4sGvrOTpuhpELs5xz1AoL-u8RuFm5uIuwp06o8TxMP0OopCvlwpZi2yRJdcJ3-UaZilcaAhbp6tXfK9cOdC4EktuGLXPtmbIRU8n1nV-MvZnmY/s755/2021-06-13+22_58_34-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="263" data-original-width="755" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOCo2aSvnXkI_dqUIfdRhjeNgnluMiw4sGvrOTpuhpELs5xz1AoL-u8RuFm5uIuwp06o8TxMP0OopCvlwpZi2yRJdcJ3-UaZilcaAhbp6tXfK9cOdC4EktuGLXPtmbIRU8n1nV-MvZnmY/s320/2021-06-13+22_58_34-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Revit Insulation.. it's hard to fill wall section(or plan) completely.</td></tr></tbody></table><br /><div><br /></div><div>So I made my dyn to find nearest ratio and automatically adjust to fill completely from given ratio.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq354E08OR5wbRhi5KukZ8w1zH-n9OT-BBSWecfwpiifR1FY3nkOZM3FujpSf0qTyCCY7GTbvNeV07sVvkHCRHVtsJGI4ZSZV3GqmX-P0qztY72m0ysvRWIj9HnU5oSIZTF_WlpkGaZ6Q/s689/2021-06-13+23_01_04-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="630" data-original-width="689" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq354E08OR5wbRhi5KukZ8w1zH-n9OT-BBSWecfwpiifR1FY3nkOZM3FujpSf0qTyCCY7GTbvNeV07sVvkHCRHVtsJGI4ZSZV3GqmX-P0qztY72m0ysvRWIj9HnU5oSIZTF_WlpkGaZ6Q/s320/2021-06-13+23_01_04-Autodesk+Revit+2019.2+-+%255BinsulationTest.rvt+-+Floor+Plan_+Level+1%255D.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Automatic Ratio Adjust from my dyn. <br />Yes, it works for not only curve but also straight line.</td></tr></tbody></table><br /><br /><div>Here is a short video, you can watch how it works.</div><div><a href="https://youtu.be/tAiqxcsZGuk">https://youtu.be/tAiqxcsZGuk</a></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/tAiqxcsZGuk" width="640" youtube-src-id="tAiqxcsZGuk"></iframe></div><br /><div><br /></div><div><br /></div><div><br /></div><div>In most cases, the insulation tool of Revit should be enough, but for those who need more...</div><div><br /></div><div>You can create your own dyn or just <a href="https://sites.google.com/site/enjoyrevit/dynamo/insulation-generator-dynamo"><b>use mine for a coffee.</b></a></div><div><br /></div><div>Enjoy :)<br /><div><br /></div><div><br /><br /></div></div>Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-63156942134667526492020-06-27T00:33:00.005+09:002021-07-22T23:56:00.932+09:00DynaPAT - Ultimate Pattern Maker for Revit by DynamoAs you know, there are plenty of good solutions to make custom patterns for Autocad.<br />
<div>
But, if you are really into Revit, there are not many choices. In my case, I've used a solution for Autocad, and used *.pat files from it. I can't say it's very inconvenient, but can't say it great either.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
I know there are some apps which creates patterns for Revit.</div>
<div>
They can create pattern directly in Revit. And some of them have a bit complicated options.</div>
<div>
<br /></div>
<div>
But I haven't seen below functions from any of them.</div>
<div>
<br /></div>
<div>
1. Non square pattern.</div>
<div>
2. Patterns with curves.</div>
<div>
3. Honeycomb(hexagonal) pattern.</div>
<div>
4. Custom pattern size. (I know pattern can be scaled when be used, but..)</div>
<div>
<br /></div>
<div>
So.... I developed a pattern maker named DynaPAT using Dynamo.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzc4blzvGvcSRY8H2IcRdNEu27ntObUWJAAFGIy4hlZV3bQ5pBedIiZ_KQfcEVi1bzDK9WmRvELe2E9N_v3nD4B02jWEolYBzViSmMQtFn267qWG8t5wiZxRqTRcxKV7_9vPiXcUsbV2s/s977/%25ED%2595%25B4%25EC%25B9%2598%25EC%2583%2598%25ED%2594%258C.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="755" data-original-width="977" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzc4blzvGvcSRY8H2IcRdNEu27ntObUWJAAFGIy4hlZV3bQ5pBedIiZ_KQfcEVi1bzDK9WmRvELe2E9N_v3nD4B02jWEolYBzViSmMQtFn267qWG8t5wiZxRqTRcxKV7_9vPiXcUsbV2s/s320/%25ED%2595%25B4%25EC%25B9%2598%25EC%2583%2598%25ED%2594%258C.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">a Sample created by DynaPAT</td></tr>
</tbody></table>
<div>
<br /></div>
<br />
<a name='more'></a><br />
<div>
<br /></div>
<div>
DynaPAT can do below.</div>
<div>
<br /></div>
<div>
<ol style="text-align: left;">
<li>Non square pattern (any rectangles available)</li>
<li>Patterns with curves</li>
<li>Honeycomb pattern (because of no.1)</li>
<li>Custom pattern size (What you draw is what you get)</li>
<li>No installation.. It's Dynamo!!</li>
<li>No "for 2017" or "for 2021" thing... It's Dynamo!!! I'm sure it will be able to be used with Revit2022 and later version as well.</li>
<li>No template or line type specification. Just draw your own pattern with any lines on any view. (you can use any two different line styles for boundary and pattern)</li>
<li>It creates *.pat file, so you can use created files for other apps like Autocad.</li>
<li>You can select the pattern style as Drafting or Model.</li>
<li>Automatically detect using project units and apply it to PAT file.</li>
<li>It creates one pat file at a time, so you can use it repeatably not only in Dynamo player but also in Dynamo app.</li>
<li>And most Importantly, it's easy to use!!!</li>
</ol>
<div style="text-align: center;">
<iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/8I5uQKy1a3c" width="640" youtube-src-id="8I5uQKy1a3c"></iframe></div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd99_QKIwQp81L18ZGOPEvJJADk3FRoGfRPfcTN_fJErrjpETPOT5CIqG5OEETllO2Tu9YGEV3wbznvUTUvSb5EJ1Iy5O_6W4kC8_Z5HyMB2BjVpf4jToXdI4umTjsOyN_FclSgtRxmA/s1270/%25EB%258B%25A4%25EC%259D%25B4%25EB%2582%2598%25EB%25AA%25A8%25EC%25BD%2594%25EB%2593%259C%25EC%25BA%25A1%25EC%25B2%25981.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="449" data-original-width="1270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd99_QKIwQp81L18ZGOPEvJJADk3FRoGfRPfcTN_fJErrjpETPOT5CIqG5OEETllO2Tu9YGEV3wbznvUTUvSb5EJ1Iy5O_6W4kC8_Z5HyMB2BjVpf4jToXdI4umTjsOyN_FclSgtRxmA/s320/%25EB%258B%25A4%25EC%259D%25B4%25EB%2582%2598%25EB%25AA%25A8%25EC%25BD%2594%25EB%2593%259C%25EC%25BA%25A1%25EC%25B2%25981.JPG" width="320" /></a></div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody>
<tr><td class="tr-caption" style="text-align: center;">This is one of the largest codes I've ever created.</td></tr>
</tbody></table>
<div>
<br /></div>
<br />
There is one more thing.<br />
<div>
After developing DynaPAT, I developed one more code.</div>
<div>
It's only for honeycomb patterns, so I named it HoneyPAT(Feat. Dynamo).</div>
<div>
Of course DynaPAT can make honeycomb patterns also, but using HoneyPAT is even more straightforward to use if you want only hexagonal patterns.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/qORCk9MNzB4" width="640" youtube-src-id="qORCk9MNzB4"></iframe></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
You can use DynaPAT and HoneyPAT right now!!!</div>
<div>
<br /></div>
<div>
<a href="https://sites.google.com/site/enjoyrevit/dynamo/pattern-hatch-maker?authuser=0">DOWNLAOD LINK</a></div>
<div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com12tag:blogger.com,1999:blog-9006625370523765053.post-909542274221021422019-07-24T14:58:00.004+09:002020-06-28T07:59:16.886+09:00FormWork Generator by DynamoCast-in-Place Concrete is mostly used in construction site in Korea instead of Precast.<br />
So calculating Formwork area is one of the most important work at a site.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0GpLcjCQpunWleHkhCI2Gb0E4IW5udfS_4_Oc10p-lvM5FIS_fXlF4SJSdix_6B62eTJVFDyxBLO3SQFCXKTSfajvxZp52OiHvchfCLwtGClGX4cgrbets-DeYQBvaUJydkK_yC6mAdE/s1600/%25EA%25B8%25B0%25EC%25B4%2588%25EB%25B0%258F%25EC%25A7%2580%25EC%25A4%2591%25EB%25B3%25B4_%25EA%25B1%25B0%25ED%2591%25B8%25EC%25A7%2591%25EC%2584%25A4%25EC%25B9%2598_%25EC%2599%2584%25EB%25A3%258C0508.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="384" data-original-width="512" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0GpLcjCQpunWleHkhCI2Gb0E4IW5udfS_4_Oc10p-lvM5FIS_fXlF4SJSdix_6B62eTJVFDyxBLO3SQFCXKTSfajvxZp52OiHvchfCLwtGClGX4cgrbets-DeYQBvaUJydkK_yC6mAdE/s320/%25EA%25B8%25B0%25EC%25B4%2588%25EB%25B0%258F%25EC%25A7%2580%25EC%25A4%2591%25EB%25B3%25B4_%25EA%25B1%25B0%25ED%2591%25B8%25EC%25A7%2591%25EC%2584%25A4%25EC%25B9%2598_%25EC%2599%2584%25EB%25A3%258C0508.jpg" width="320" /></a></div>
<br />
<br />
<a name='more'></a><br />
<br />
Here is a simple Dynamo code i created.<br />
It calculates formwork area and concrete volume of selected zone and export the data to selected excel file.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Lf0VK3VTMRo/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/Lf0VK3VTMRo?feature=player_embedded" width="640"></iframe></div>
<br />
Calculated volume will be more accurate than one from Revit schedule. It joins every unjoined geometries in dynamo before calculation.<br />
<br />
Actually I haven't been interested in this issue because I'm an architect who works at an office room most of times.<br />
<br />
I just created the dyn code for the engineers in Revit-Dynamo community.<br />
<br />
Oh, you still don't know how to use Dynamo?<br />
Don't worry, you can easily use it with Dynamo Player.<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/formwork-generator-by-dynamo">download the file</a> as usual.<br />
<br />
<br />
Enjoy :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com8tag:blogger.com,1999:blog-9006625370523765053.post-27560353826313544152019-02-08T16:44:00.003+09:002020-06-15T19:19:42.153+09:00When a Man Loves RevitFew years ago, the world famous singer, Michael Boltton visited Korea to have his concert.
'When a Man Loves Woman' is one of his great hits.<br />
<br />
<br />
I love Revit. But, sometimes I almost forget it while I struggle with technical issues in busy projects. So, I do some useless works when ever I realize it.<br />
<br />
What do you imagine when you think about LOVE? There can be a lot of candidates, But nobody can deny that flowers should be one of the strong ones. Especially ROSES.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs5MOXr8O641qFFWJNif9xRjbDmJ6A16bUzoPJGuuxqLrp39DTJFdN8CE0w5BPV5kaePSg3bRtjp1v-SGfbZczPPW8jGF-e969KP_xdjwmIIhEgz9gaW0djCbMplRNQjk5zPiJ3KkYW10/s1600/52.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs5MOXr8O641qFFWJNif9xRjbDmJ6A16bUzoPJGuuxqLrp39DTJFdN8CE0w5BPV5kaePSg3bRtjp1v-SGfbZczPPW8jGF-e969KP_xdjwmIIhEgz9gaW0djCbMplRNQjk5zPiJ3KkYW10/s1600/52.jpg" width="320" /></a></div>
<br />
So, I decided to give a rose to Revit to prove my love for her. (Please don't tell my wife)<br />
<br />
<a name='more'></a><br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/8S5UUBioL4M/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/8S5UUBioL4M?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
<br />
Do you love Revit? If so, try it.<br />
<br />
<br />
At first, I found it that roses have almost irregular membrane structure. What makes roses look like roses?<br />
<br />
1. Rose Petal<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ybeObcjaCytbfecJvcVQmlUekwVwCnmDaJz7D4wK1_SL0tBv430VjNrpSK_0alwpRNiR85HbZa6e5EN5JIO893GnCDzGNKuf6viZgDNFiKmc4MzQjCbQ11tR-gvkAGA6nc1FeIAl448/s1600/red+rose+petals.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ybeObcjaCytbfecJvcVQmlUekwVwCnmDaJz7D4wK1_SL0tBv430VjNrpSK_0alwpRNiR85HbZa6e5EN5JIO893GnCDzGNKuf6viZgDNFiKmc4MzQjCbQ11tR-gvkAGA6nc1FeIAl448/s1600/red+rose+petals.jpg" width="320" /></a></div>
<br />
Above is petals when they're not bloomed. They are all cupped yet.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiMOMKnOG2itZPpj7PD3BRUqyNKDBAIfsL8Yas7Mcf1BGLM7ubCE7zrS9ytoFzF8j6p4iI5YDwJtSy2F2kYmzdPtNUxgWQfFa-jAIbllAA1BZIB4kO9n1_6B4l-mrPqH0ZNtKjS6aHW0/s1600/rose-petal-on-white-background-michal-bednarek.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiMOMKnOG2itZPpj7PD3BRUqyNKDBAIfsL8Yas7Mcf1BGLM7ubCE7zrS9ytoFzF8j6p4iI5YDwJtSy2F2kYmzdPtNUxgWQfFa-jAIbllAA1BZIB4kO9n1_6B4l-mrPqH0ZNtKjS6aHW0/s1600/rose-petal-on-white-background-michal-bednarek.jpg" width="320" /></a></div>
<br />
After bloomed, it goes out-bent from outside edge like above picture.<br />
<br />
<h4>
1. Petal Profile</h4>
So, I created a track for section profiles to simulate above like this.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg42kLQnu4kbqA_MkdljE09myrfwekFDcFr8tVan-50o_Ycfln_hLPxI_AJhFcQHbM1Ae88P4ZVTqymR7pjyNOThdqKjLOIcRIp4V_amljQywtb5MKcnLIqAwODoBGPoZArNzMYIgXQIUM/s1600/path.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg42kLQnu4kbqA_MkdljE09myrfwekFDcFr8tVan-50o_Ycfln_hLPxI_AJhFcQHbM1Ae88P4ZVTqymR7pjyNOThdqKjLOIcRIp4V_amljQywtb5MKcnLIqAwODoBGPoZArNzMYIgXQIUM/s1600/path.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRatio=0</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNoBs0dVbWKxl1VCbdIR0iLAhLVxbuvKk3J8jfgW5PFSw9orh3laGYHCRWVH44-6ZjkxWY7E1tpV6EuGiOui0ZJc6GGlYBJhiY6i8vcs5fduvQndHSeqgRI9CkakJ1EF5EK6a9tmwR1A/s1600/path+002.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzNoBs0dVbWKxl1VCbdIR0iLAhLVxbuvKk3J8jfgW5PFSw9orh3laGYHCRWVH44-6ZjkxWY7E1tpV6EuGiOui0ZJc6GGlYBJhiY6i8vcs5fduvQndHSeqgRI9CkakJ1EF5EK6a9tmwR1A/s1600/path+002.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRatio=0.5</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg8fVoHoJfRiURQf72MWtbg1y6h0a8ShBqzlXOLU8ZDIAQDuq2iFHLA3JhqB_oNvziPAm4nfzRCZ66JSbkJHhmoh8VEuME6Vc5cFM6ESsKT7ojHK-4uMWPiwDCRK0jhscE4SVC0WE9_xY/s1600/path+003.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg8fVoHoJfRiURQf72MWtbg1y6h0a8ShBqzlXOLU8ZDIAQDuq2iFHLA3JhqB_oNvziPAm4nfzRCZ66JSbkJHhmoh8VEuME6Vc5cFM6ESsKT7ojHK-4uMWPiwDCRK0jhscE4SVC0WE9_xY/s1600/path+003.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRatio=1.0</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
Profiles for a petal can be transformed by a parameter, BloomRatio.<br />
<br />
2. Petal Path<br />
<br />
And Created another track for a path with the same concept.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ATfseNnCZgOVJD9gi9UX0BpXDwlnNxhLSsb4c_4A3DlCTe6XB4vZhP_Ly1Oo2jDfbHtrs8XurGMood2mFhC-e_ulTyQLEW7OMcn3DVfiE-Bvk99CUg-d4fOzlqiXdCx_v4qSngZoZDY/s1600/path2+004.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ATfseNnCZgOVJD9gi9UX0BpXDwlnNxhLSsb4c_4A3DlCTe6XB4vZhP_Ly1Oo2jDfbHtrs8XurGMood2mFhC-e_ulTyQLEW7OMcn3DVfiE-Bvk99CUg-d4fOzlqiXdCx_v4qSngZoZDY/s1600/path2+004.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRatio=0</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOt7HuzWDUMCf22IjBUQft0TuJ_RgMElLphB3iGhedtShVapqV9-hM9elPLlZiOBF1iWPLUxbEo26pL4yqI9Nid3KThAD1vn-qPWIJyY4NVgeAQ3xKGgUwQf9Q2C8YqISwYM7AtX9M2U/s1600/path2+005.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOt7HuzWDUMCf22IjBUQft0TuJ_RgMElLphB3iGhedtShVapqV9-hM9elPLlZiOBF1iWPLUxbEo26pL4yqI9Nid3KThAD1vn-qPWIJyY4NVgeAQ3xKGgUwQf9Q2C8YqISwYM7AtX9M2U/s1600/path2+005.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRatio=0.5</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhowN95wcbfMIh2dR9H6Db-gqV_YGvhOtSzBoA7b5z2ujJyWr9yBpm5sCaP5Ml5celK2myg-u4htMMEUJOU6qAeHVj2nC6TYyieTjYG4Zm3rFlWnF772HppcCqhpF_aP-qewtsTQbixmW8/s1600/path2+006.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhowN95wcbfMIh2dR9H6Db-gqV_YGvhOtSzBoA7b5z2ujJyWr9yBpm5sCaP5Ml5celK2myg-u4htMMEUJOU6qAeHVj2nC6TYyieTjYG4Zm3rFlWnF772HppcCqhpF_aP-qewtsTQbixmW8/s1600/path2+006.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BloomRation-1</td></tr>
</tbody></table>
3. Petal Form<br />
<br />
The sizes of the profile track instances had to be adjusted to create rose petal shape when they were attached at Petal Path.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzw-4Aaddq3uyYZ3YbeubnY4zePim7PIpwalvHkpWT7E2YSHDShOFR4rlNn-jAgxoGR3q0tRlUuP5VxHTAyj-fXWUN2F8rwaU9FF68idqSG3wgjB-JN19rcGW6cpZdN0nctM9ny6guJr0/s1600/petal+form+001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzw-4Aaddq3uyYZ3YbeubnY4zePim7PIpwalvHkpWT7E2YSHDShOFR4rlNn-jAgxoGR3q0tRlUuP5VxHTAyj-fXWUN2F8rwaU9FF68idqSG3wgjB-JN19rcGW6cpZdN0nctM9ny6guJr0/s1600/petal+form+001.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidh1wItOmg21ASzAY_pSbhCaCGoOpcgO5uRWa2dfAKsUSEBzxukWH5mMpiWwzwyWVfbt-cLyKGa8lDlh-IP7sPA55MPl_79810mLL9ZNg8tXg4s0cmZvag3mtn0cdMVhFz9dZAeJPbc1E/s1600/petal+form+002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidh1wItOmg21ASzAY_pSbhCaCGoOpcgO5uRWa2dfAKsUSEBzxukWH5mMpiWwzwyWVfbt-cLyKGa8lDlh-IP7sPA55MPl_79810mLL9ZNg8tXg4s0cmZvag3mtn0cdMVhFz9dZAeJPbc1E/s1600/petal+form+002.png" width="320" /></a></div>
<br />
Five profile track instances were used to create the shape above. And BloomRatio parameter of each profile and Petal-Path was associated with one ratio parameter of this AC family, so it can make blooming movement.<br />
<br />
4. Structure of Rose<br />
<br />
Before placing petals, I found it that rose petals are placed in spiral rule.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAivBAde0RiEkf5ewOAhJV3g0ZtnefOIO65iT434AFLeO-rKe-AXCeZRcfkxxUa4s-yUp6SAcgoo2ADJKzRJmesq6vQG36LvIT04rs9qcOtEJbbYHKd_m0MahHzBY_7kxUOv-DBM7t78Q/s1600/Small_Red_Rose.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAivBAde0RiEkf5ewOAhJV3g0ZtnefOIO65iT434AFLeO-rKe-AXCeZRcfkxxUa4s-yUp6SAcgoo2ADJKzRJmesq6vQG36LvIT04rs9qcOtEJbbYHKd_m0MahHzBY_7kxUOv-DBM7t78Q/s1600/Small_Red_Rose.JPG" width="320" /></a></div>
<br />
If above is a site-plan view, then a mid-plan view can be as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjVrAtXd2AK_rWzbIP7RZgpX9-_55fuFwGodadGg7D6ozSiqD_nXKd21bLWf9_5OkmbqtoO3rzNQRX-QVG4v_zi49OukBq6XSxUGsqo3sNM7D3IKOzcwgiDmbk9KIDxpL9lCG6G0mVqEA/s1600/spiral+rule.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjVrAtXd2AK_rWzbIP7RZgpX9-_55fuFwGodadGg7D6ozSiqD_nXKd21bLWf9_5OkmbqtoO3rzNQRX-QVG4v_zi49OukBq6XSxUGsqo3sNM7D3IKOzcwgiDmbk9KIDxpL9lCG6G0mVqEA/s1600/spiral+rule.png" width="320" /></a></div>
<br />
Petals are placed on a spiral and it goes the outer the larger.<br />
<br />
But I'm not making a 'real' flower but imitation, so I simply placed petals using repeater as below to make the work easy.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtg588VH8kgGqbnRKpifuzy8ont18EhFeJb-jogwRxrsrynywUPjXyDGHzaRSrpFm0ewCwKPPGKkme8GFCxuTCiBu_-xkQen4s6Ej_ltrxG0lUzJB4gmacT0NGLICN-QNcn1Fnf_ojJvQ/s1600/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="795" data-original-width="809" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtg588VH8kgGqbnRKpifuzy8ont18EhFeJb-jogwRxrsrynywUPjXyDGHzaRSrpFm0ewCwKPPGKkme8GFCxuTCiBu_-xkQen4s6Ej_ltrxG0lUzJB4gmacT0NGLICN-QNcn1Fnf_ojJvQ/s320/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+4.jpg" width="320" /></a></div>
<br />
<br />
Then....<br />
Tada~<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUHU32HGYLGiEl4MZmb_PVLLyF4YSkCznT1xFfS8BTdkSs-L6KtTzuqI1zJ-FFleIuGTzIXagxXjSZzAoEPIoWM9o8BGXuCDmcoHdGxPpAdqxv7GRxDz0EbXR5kdtUsWPsvs9S70yxXrk/s1600/EnjoyRevitRose.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="319" data-original-width="536" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUHU32HGYLGiEl4MZmb_PVLLyF4YSkCznT1xFfS8BTdkSs-L6KtTzuqI1zJ-FFleIuGTzIXagxXjSZzAoEPIoWM9o8BGXuCDmcoHdGxPpAdqxv7GRxDz0EbXR5kdtUsWPsvs9S70yxXrk/s1600/EnjoyRevitRose.gif" /></a></div>
<br />
<br />
<br />
I don't expect Revit to marry me, but she won't dump me out at least.<br />
<br />
<h3>
<a href="https://sites.google.com/site/enjoyrevit/enjoyrevit"><b>You can Download this crazy Family here</b></a></h3>
<br />
Enjoy. :)<br />
<br />
<br />
<br />Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com15tag:blogger.com,1999:blog-9006625370523765053.post-53712863400892046642018-12-04T16:06:00.001+09:002018-12-04T16:06:07.115+09:00Dynamo List Usage ExamplesIt's been more than three years after <a href="https://plevit1.blogspot.com/2015/01/examples-for-all-list-actions-in-dynamo.html">my old post about Dynamo List Actions.</a><br />
<br />
It was based on v0.8, now we are using v2.0.<br />
<br />
I know there are plenty of web pages which shows almost the same now. But I'm posting mine for someone visits my blog and the old links as well.<br />
<br />
You can see the page through the button at left looks like bottom.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://plevit1.blogspot.com/p/dynamo-list.html"><img border="0" data-original-height="192" data-original-width="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic-OspwZFkcKboLreCHx7lSTe0Wseyt9EKKvS7W1rULB3TFuuvlMcodRm5pLW1WPTEzRf6kiL91pc3xtpwsupO8S9dxAHOuOm5GyM3fpl-hdSjsodnWfzYBAq50Tq19cuaIxe4p9F5eu4/s1600/ListExamples.png" /></a><span id="goog_186144369"></span><a href="https://www.blogger.com/"></a><span id="goog_186144370"></span></div>
<br />
<br />
It will be updated if there comes anything new.<br />
<br />
You can <a href="https://plevit1.blogspot.com/p/dynamo-list.html">get all of them</a> at a glace as usual.<br />
<br />
Enjoy :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-91174785135934751592017-05-16T17:23:00.000+09:002017-05-16T17:23:32.149+09:00Location of Slope's Section LineWhen a symbolic line has to overlapped on a model section line, Revit gives us snap to find exact location of the line except below case.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj5hJZHszUHdC1IghCnXfLtgK7pk-GBg-2AedcMP6A_lSDkVA0u6xdGCXpS8nFNxquiURqm89QHeFd2DQBPHE2rom8VvhyphenhyphenHYsrb-n5iTd9OXiohtC2qBMrGQqeywhcXtebRAuWJK1GY_M/s1600/section1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj5hJZHszUHdC1IghCnXfLtgK7pk-GBg-2AedcMP6A_lSDkVA0u6xdGCXpS8nFNxquiURqm89QHeFd2DQBPHE2rom8VvhyphenhyphenHYsrb-n5iTd9OXiohtC2qBMrGQqeywhcXtebRAuWJK1GY_M/s400/section1.jpg" width="400" /></a></div>
<br />
<br />
Of course it's not very important. We can just draw a line at nearest location.<br />
But, I just don't like it. WE ARE ENGINEERS!!!<br />
<br />
<a name='more'></a><br /><br />
<br />
Here is a tiny tip for it. Just use Trim/Extend.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/3YT85wl2BH4/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/3YT85wl2BH4?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
Enjoy :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com2tag:blogger.com,1999:blog-9006625370523765053.post-15429588069674196112017-05-12T17:16:00.001+09:002017-05-16T17:25:33.707+09:00Movable Annotations In A Symbol FamilyThere are some families which include annotations. And some of them can be more convenient to use if locations of texts are parametric.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsEciuyCSGlu3A4SAgWYjxSq8y-jNGOSqorOVMsUHGp8E4X5HW4grSB3dvDnvidXHsGS_ErSEPCsMX0UOnyopnjKuUXe9le7zAb69qsg6X4JUEpFSVkGHeXaFWIDQAKiGI_6aA_DpXvmU/s1600/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsEciuyCSGlu3A4SAgWYjxSq8y-jNGOSqorOVMsUHGp8E4X5HW4grSB3dvDnvidXHsGS_ErSEPCsMX0UOnyopnjKuUXe9le7zAb69qsg6X4JUEpFSVkGHeXaFWIDQAKiGI_6aA_DpXvmU/s200/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+5.jpg" width="200" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDhQP5m5RNVopikZWxElpXNA3uPKP6rNOKW4nbDSH3XAU5Gz6vpw8s9WXBcN84-fR8plZEpfBeqdbJdH8A1bgewMAAQiLt-wTtcvo0ZqyTdc0NCJckcreLmQfYZYSWJWUXqZOl9_KuH3M/s1600/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDhQP5m5RNVopikZWxElpXNA3uPKP6rNOKW4nbDSH3XAU5Gz6vpw8s9WXBcN84-fR8plZEpfBeqdbJdH8A1bgewMAAQiLt-wTtcvo0ZqyTdc0NCJckcreLmQfYZYSWJWUXqZOl9_KuH3M/s200/%25EC%259D%25B4%25EB%25AF%25B8%25EC%25A7%2580+6.png" width="200" /></a></div>
<br />
Above are common level symbol we are using. What do you think is the best way to express those at documents using Revit?<br />
<br />
<br />
<a name='more'></a><br /><br />
The family needs to..<br />
<br />
1. have parameters to manipulate gap between levels.<br />
2. have texts which follow levels. (both number & location)<br />
<br />
The way I found is..<br />
<br />
Make a text to a group with invisible lines, then you can make dim labels which can control location of the text.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/0QmYOS8g8cY/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/0QmYOS8g8cY?feature=player_embedded" width="640"></iframe></div>
<br />
I'm not saying this is the best way. But it's considerable.<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/2d-eliments/family-with-movable-text">download</a> above family as usual.<br />
<br />
Enjoy :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com1tag:blogger.com,1999:blog-9006625370523765053.post-27578809315327891732015-04-27T12:28:00.000+09:002018-12-04T17:24:56.528+09:00Physics in RevitIn my opinion, one of the wonderful things in using Dynamo is that it makes you to be able to simulate any physical behaviors of real world in Revit.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguXnIOwilc2fyCYONYotLmWCV90afjBxveEhQ3lY5_xipPslpIL1flnM999cXwD2Tr2l4UvIq-i-24SXP3Hc60MhpUTwJ6KToSZB1DZawE-5M-q3QD5DBgvwqGiWiEcXjReAUXtxYOCUw/s1600/TABLECLOTH.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="350" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguXnIOwilc2fyCYONYotLmWCV90afjBxveEhQ3lY5_xipPslpIL1flnM999cXwD2Tr2l4UvIq-i-24SXP3Hc60MhpUTwJ6KToSZB1DZawE-5M-q3QD5DBgvwqGiWiEcXjReAUXtxYOCUw/s320/TABLECLOTH.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
A tablecloth makes dynamic shape which depends on shapes of tables and the shape of itself. And we all know that it's all about physics(including gravity).<br />
<br />
<a name='more'></a><br />
Here is an example I created. The dyn generates a geometry of tablecloth which covers selected table family with applied tablecloth shape.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/EgyYwLWryqo/0.jpg" frameborder="0" height="360" src="https://www.youtube.com/embed/EgyYwLWryqo?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/tablecloth">download above dyn</a> as usual.<br />
<br />
Enjoy. :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com14tag:blogger.com,1999:blog-9006625370523765053.post-54094878472177503372015-04-20T16:01:00.000+09:002015-04-22T09:07:47.466+09:00Railing on TopographyHave you ever experienced to create a railing at a topography in Revit?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ItIxO34Pq9daKfvvAKPzaFpcm27BvNEkVAv_PhidbyekvITiGZ6Qklil7ooSkxnAZlohpU80-cP_DYcQ8kqmjqAWYg4UZzP5iYxNFMyhZHOlFW3IouPyl0OYErM1A4NVWeOuCatWr8U/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ItIxO34Pq9daKfvvAKPzaFpcm27BvNEkVAv_PhidbyekvITiGZ6Qklil7ooSkxnAZlohpU80-cP_DYcQ8kqmjqAWYg4UZzP5iYxNFMyhZHOlFW3IouPyl0OYErM1A4NVWeOuCatWr8U/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+55.png" height="233" width="320" /></a></div>
<br />
<a name='more'></a><br />
If you say yes, I know it means you have struggled a lot. Because topography can't be a host of railings. You could try with AC instead if you were good at using it, but AC can't be attached at topography because topography in Revit is not solid or poly-surface but mesh. (I've got to know the reason after start using Dynamo)<br />
<br />
One of the great parts of placing AC by Dynamo is that you can place them even in the air. You don't need any edges or faces anymore. And it gives us a lot of potential advantages.<br />
<br />
As an example, I created a simple farm fence here.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/YmYlwCjTU9A/0.jpg" frameborder="0" height="360" src="http://www.youtube.com/embed/YmYlwCjTU9A?feature=player_embedded" width="640"></iframe></div>
<br />
The balusters look like standing on the topography. Actually, they are in the air exactly at each of the same points on the topography.<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/farm-fence">download</a> above files as usual.<br />
<br />
Enjoy. :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com14tag:blogger.com,1999:blog-9006625370523765053.post-50548691768854758992015-04-14T12:22:00.001+09:002021-08-11T09:50:01.587+09:00Regular PolyhedronsIt's not surprising that most of regular polyhedrons can't be created easily in Revit. Just few of 3d software have a feature which can create regular polyhedrons instantly.(eg. 3ds-max)<br />
<br />
It is well known that there are only 5 regular polyhedrons.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwv4sdts1fTHVyy4-Bf81oTGCvVVhfQ8pjM0XGEbUdPGs1qctrf8JHNpGpY74WPaXnqPygHVHGFkjNHAlM4A1yssaIEBeUtHGM0Bm7A1dyZewIPJ22WNZf_c5D_fF0p7UZsQjKU87SwuY/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwv4sdts1fTHVyy4-Bf81oTGCvVVhfQ8pjM0XGEbUdPGs1qctrf8JHNpGpY74WPaXnqPygHVHGFkjNHAlM4A1yssaIEBeUtHGM0Bm7A1dyZewIPJ22WNZf_c5D_fF0p7UZsQjKU87SwuY/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" width="320" /></a></div>
And it's quite easy to make them with paper works.<br />
But it's not that simple to create them as 3D computational model. You have to deal with a bit complicated angles to create one.<br />
<br />
<a name='more'></a><br />
<br />
Once I've tried a similar a few years ago as follow with AC. But it can't cover all 5 types at once.<br />
So I tried to develop an advanced method with Dynamo.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqfqHD1oMI_eEbq0HE5Sb1wyxGdDGDnLfQ7IaWEeBZUWbZ_x5Zzp0fTC3kLD04l-khQx1XrFwXkjMPiDXhXxuL3JEh_dSE6P5wfnHRGt67WjRTtUZAnD6CaopC5iiQlhgUfa2_BDDXTFs/s1600/soccerball.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqfqHD1oMI_eEbq0HE5Sb1wyxGdDGDnLfQ7IaWEeBZUWbZ_x5Zzp0fTC3kLD04l-khQx1XrFwXkjMPiDXhXxuL3JEh_dSE6P5wfnHRGt67WjRTtUZAnD6CaopC5iiQlhgUfa2_BDDXTFs/s1600/soccerball.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">semi-regular polyhedron Soccer-ball</td></tr>
</tbody></table>
<br />
<h4>
1st Approach</h4>
I just tried with folding method which is just like paper work.<br />
Folding(rotation) angles can be found depend on number of vertexes of side polygons as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlxWf1gzJ5q7Hds-I1AVRmcSAYfF9IMUO98-5Sh6_eLYQnP2ZPwLLLfqMd7s_60-iv9OZeK1ZSuQz5fXUs241tWqxTfaOOINJdcIyBlkNwV2UNP-cnq4_urbESsJagP1NqtGtHOguDCUs/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+7.png"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlxWf1gzJ5q7Hds-I1AVRmcSAYfF9IMUO98-5Sh6_eLYQnP2ZPwLLLfqMd7s_60-iv9OZeK1ZSuQz5fXUs241tWqxTfaOOINJdcIyBlkNwV2UNP-cnq4_urbESsJagP1NqtGtHOguDCUs/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+7.png" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSvykIqa69sa-BoT7knhs5pNMrsJ0-ptgUQ4EhIITEbjHNdaMcYa2laHp6QTZ68wnG3xeg9UwgkXyNL5PZLRP5fHOFqR1xkcLBp1krgyQLhbCQq80GTjfLBY1DBE05qD31-HaKx9vuvDY/s1600/anigif.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSvykIqa69sa-BoT7knhs5pNMrsJ0-ptgUQ4EhIITEbjHNdaMcYa2laHp6QTZ68wnG3xeg9UwgkXyNL5PZLRP5fHOFqR1xkcLBp1krgyQLhbCQq80GTjfLBY1DBE05qD31-HaKx9vuvDY/s1600/anigif.gif" width="320" /></a></div>
<br />
This method can create most of regular polyhedrons easily except Icosahedron which has 20 faces.<br />
<br />
<br />
<h4>
2nd Approach</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/wEsX_txPTdQ/0.jpg" frameborder="0" height="360" src="http://www.youtube.com/embed/wEsX_txPTdQ?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
The other way is cutting a sphere by planes which are aligned at each faces of a polyhedron.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVtJhL0BvQR2I0eVwzI11zYvn8bPzQyg5S3SyIzGv8FzsFJbq7zCUIC3xDSrZxhY86jMXwNnxrDYh8fF-hA6iMP9Oj66kyiQfaSZqOaMMZ0T_6Qc8HKp4mZpOtgtHAmTkTEwC2bGeX5wg/s1600/cutt.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVtJhL0BvQR2I0eVwzI11zYvn8bPzQyg5S3SyIzGv8FzsFJbq7zCUIC3xDSrZxhY86jMXwNnxrDYh8fF-hA6iMP9Oj66kyiQfaSZqOaMMZ0T_6Qc8HKp4mZpOtgtHAmTkTEwC2bGeX5wg/s1600/cutt.jpg" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA0RgHmDUQlxFU_TFllyEhOywAJ-bt_Pzl10BmDRYEWcZO5cfhBP68JPobLMcGNrTh4_XKLJHiLTCfK9HbiIce0kdWVn5davAo9H5hF6BtnZoKxfH1_XrySH4Pm3vrOWl71C1QQZD7s_M/s1600/anigif2.gif"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA0RgHmDUQlxFU_TFllyEhOywAJ-bt_Pzl10BmDRYEWcZO5cfhBP68JPobLMcGNrTh4_XKLJHiLTCfK9HbiIce0kdWVn5davAo9H5hF6BtnZoKxfH1_XrySH4Pm3vrOWl71C1QQZD7s_M/s1600/anigif2.gif" width="320" /></a></div>
<br />
In this concept, the locations and angles of planes which cut a sphere can be found from the formulas at folding method.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHMav-KzxpA6K7eWm7abx8Z65oJ-IsLYj2yDh4wMqHbp2PxcMzYzf5cfSoEBQjrghFslChO5tbSZx6FJwuTt__HxUMxmiI4q84JYgrA6j8E5PN1Ag6z5F0QZU1V_TNcqnOHq00_kAuAjM/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+12.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHMav-KzxpA6K7eWm7abx8Z65oJ-IsLYj2yDh4wMqHbp2PxcMzYzf5cfSoEBQjrghFslChO5tbSZx6FJwuTt__HxUMxmiI4q84JYgrA6j8E5PN1Ag6z5F0QZU1V_TNcqnOHq00_kAuAjM/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+12.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ridiculous!!!!!</td></tr>
</tbody></table>
<br />
And I developed a custom node which can create <a href="http://en.wikipedia.org/wiki/Dual_polyhedron">dual-polyhedron</a>s from given polyhedron.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdXgkWFUeUKn3sRlzf6eA1AIBXHHiJj1O4KIFqSWsG9itJTbc0ScvBjFu6GLUCe9XKqXeBuRXY4lohjqiHK-Wq9QtuN8X8SUNyzvFqwm4A8FqHf0sMvWdERhIaoZLPcDHjQfcjM95ypf4/s1600/anigif3.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdXgkWFUeUKn3sRlzf6eA1AIBXHHiJj1O4KIFqSWsG9itJTbc0ScvBjFu6GLUCe9XKqXeBuRXY4lohjqiHK-Wq9QtuN8X8SUNyzvFqwm4A8FqHf0sMvWdERhIaoZLPcDHjQfcjM95ypf4/s1600/anigif3.gif" /></a></div>
<br />
You can create a polyhedron which has a lot of faces by using this node repeatedly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhojEDvYkKBi_W8MxUEKorzDwVOgRxMb8HrO1lMokO1RR-V9ig91muNPAD5vkw51D4iluvDOZFTiRMFzeQ02ogvWkvouXElefNvk2QuKUzNfYwtCB0_7KoV4EyUZPYm9BJtx9gAT9S5Fds/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+15.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhojEDvYkKBi_W8MxUEKorzDwVOgRxMb8HrO1lMokO1RR-V9ig91muNPAD5vkw51D4iluvDOZFTiRMFzeQ02ogvWkvouXElefNvk2QuKUzNfYwtCB0_7KoV4EyUZPYm9BJtx9gAT9S5Fds/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+15.png" width="320" /></a></div>
<br />
One more additional dyf creates a polyhedron with all triangle faces from given regular or semi-regular polyhedron.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghCOgCJrfUvA-SCV-h1E7YWuJpRLysvbgHxvP3M3xNwzh5w6o36UIkTE6GtxjyDVmLA7neTKIfgMHgP2KIfjususzzJVhLCo9YaFeft0zeVHCrZF3RjEmLAS835QXx3PQzL2v-HsZAf60/s1600/anigif2.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghCOgCJrfUvA-SCV-h1E7YWuJpRLysvbgHxvP3M3xNwzh5w6o36UIkTE6GtxjyDVmLA7neTKIfgMHgP2KIfjususzzJVhLCo9YaFeft0zeVHCrZF3RjEmLAS835QXx3PQzL2v-HsZAf60/s1600/anigif2.gif" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidhwZr8LS_rNBo87G7O-nOInFyU3j3RSxr6-8i9MP77b771FuFwbR2Sy5ruFIdXYo16PLN3eFRJa4-ov3a3LoyR-d8iHI6zVv-PQZKRmTfktQOWOfrKgwVJWup_JVGegv6kCkdFuLeGrs/s1600/anigif.gif" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidhwZr8LS_rNBo87G7O-nOInFyU3j3RSxr6-8i9MP77b771FuFwbR2Sy5ruFIdXYo16PLN3eFRJa4-ov3a3LoyR-d8iHI6zVv-PQZKRmTfktQOWOfrKgwVJWup_JVGegv6kCkdFuLeGrs/s1600/anigif.gif" width="320" /></a></div>
<br />
Now, you can easily create any regular or semi-regular polyhedrons in Revit.<br />
<a href="https://sites.google.com/site/enjoyrevit/dynamo/regular-polyhedron-generator">You can build your own code or just use mine</a>.<br />
<br />
Enjoy. :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com1tag:blogger.com,1999:blog-9006625370523765053.post-60518846109311374342015-04-01T16:20:00.004+09:002015-04-02T09:42:47.019+09:00Custom Nodes for DynamoI created a page for sharing some of my custom nodes for Dynamo.<br />
Just click the image at left.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://plevit1.blogspot.kr/p/enjoy.html"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrdustpSe98Yce88YmGubgI1-K8pISzh8dfa1Q19JtvC6TLOlh6ltmF0B-pjLwNnttgRMvG6wOXmwVDCxAS1Zdiki4PCngWVrbCDJWf9NPK3O6YcBImFAYb49_-rqzclluPbVLVZau2mI/s1600/EnjoyDynamo2.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
I'm planning to append more if anything useful I create. Please drop in from time to time.<br />
<br />
Enjoy. :)Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-86729515862351661662015-03-10T20:47:00.001+09:002015-03-10T20:47:48.036+09:00Angle Values in DynamoI created a simple Dynamo definition which called 'RegularStar'.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEqJetVImfKNQexoZWKqDVDwz06sw48C4MrSboid4yNATW1rIF-saYfQuJUlLdgx10jMs9to7mmv7FWKTp6N8WZWR-ZFfQKYFmVFFJZiyACJ6aPoJ_z1PwyW0CNaLl5tmS2JLyLoChgok/s1600/star.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEqJetVImfKNQexoZWKqDVDwz06sw48C4MrSboid4yNATW1rIF-saYfQuJUlLdgx10jMs9to7mmv7FWKTp6N8WZWR-ZFfQKYFmVFFJZiyACJ6aPoJ_z1PwyW0CNaLl5tmS2JLyLoChgok/s1600/star.gif" /></a></div>
<div>
<a name='more'></a></div>
<div>
It creates a regular star shaped PolyCurve from given.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxQESi-tWOZ6xR70qaYEcG6YYHN7I4RJ8Yu1xJPzmD0qAmT0qk6DGcyMWlj_qCmcURgabvRHbMeManecszgi59qOLiYgv_yfJdao_RHc3B2DWJPvMbdh6iMNwKd_Ux4qA2q2Bp6al0zE/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxQESi-tWOZ6xR70qaYEcG6YYHN7I4RJ8Yu1xJPzmD0qAmT0qk6DGcyMWlj_qCmcURgabvRHbMeManecszgi59qOLiYgv_yfJdao_RHc3B2DWJPvMbdh6iMNwKd_Ux4qA2q2Bp6al0zE/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+9.jpg" height="381" width="400" /></a></div>
<div>
<br /></div>
<div>
From above image, a formula can be found as follow.</div>
<div>
<br /></div>
<div>
<i><b>r2 = (r1*cos(360/n)) / cos(180/n)</b></i></div>
<div>
<br /></div>
<div>
I wanted to input the formula at a Formula node as it is.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVUgputKdSbsF829D0fuq9kmDvvkAZ6I_MaDJHcqbUpfVXK3vJZ2CGQwm0Z04A8txIq-EZwxaLMNdpYbrW5n3zS0XZTKIuzym1xnJvhS2E5Z_IRS31SEj7pKOszT2SUetR-pwwVz7F7XA/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVUgputKdSbsF829D0fuq9kmDvvkAZ6I_MaDJHcqbUpfVXK3vJZ2CGQwm0Z04A8txIq-EZwxaLMNdpYbrW5n3zS0XZTKIuzym1xnJvhS2E5Z_IRS31SEj7pKOszT2SUetR-pwwVz7F7XA/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+12.png" height="338" width="400" /></a></div>
<div>
<br /></div>
<div>
But I couldn't. Because the Formula node in Dynamo reads angle values as Radians.</div>
<div>
<br /></div>
<div>
There are some options to deal with it.</div>
<div>
<br /></div>
<div>
1. Calculate cos values first. Math.Cos node reads values as degrees.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjhnx9jqT6s1m60C132JF0cwf-_t-BcVLbnpqiHpvhRc_jmlSkEW-l_PdLIPJT5y_UkzOSOMQ_YTDjtmu5lZULsecWMiZoaphVXSR725z_hOdWpzxW5fKUmoA8suYWFV2GcvsFGxCmhHY/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjhnx9jqT6s1m60C132JF0cwf-_t-BcVLbnpqiHpvhRc_jmlSkEW-l_PdLIPJT5y_UkzOSOMQ_YTDjtmu5lZULsecWMiZoaphVXSR725z_hOdWpzxW5fKUmoA8suYWFV2GcvsFGxCmhHY/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+13.png" height="247" width="640" /></a></div>
<div>
<br /></div>
<div>
2. Convert degrees to radians first.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIC_rEwturLH56VGc3n0lSZm3sdnH9ZL9PjYn86G8_zgKoO8xuOtVo2PU4bZ5kb48L7expFZAc3yu7j9f3VVhrimUal6Fqf5Lg4hANCdp3gNe7gS8SQjMqIkv__to0NqZfSOZ8TuqmbT4/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIC_rEwturLH56VGc3n0lSZm3sdnH9ZL9PjYn86G8_zgKoO8xuOtVo2PU4bZ5kb48L7expFZAc3yu7j9f3VVhrimUal6Fqf5Lg4hANCdp3gNe7gS8SQjMqIkv__to0NqZfSOZ8TuqmbT4/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+14.png" height="216" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
3. Use 'pi' for radians.(180 degree is 'pi')</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2XVr3Fd9ObamC-0lk5qq0yLqj9GbLeCcR5h-P2fE1pQ9X4ZxSeq-wt06k5hKzYMVFYqB7tx590uzFVV7qlG5RwUKeSfvNkMHU0C7eB3NeZwC3mpCOtxEYH78qtWfIRnzUfx8rfPStQH8/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2XVr3Fd9ObamC-0lk5qq0yLqj9GbLeCcR5h-P2fE1pQ9X4ZxSeq-wt06k5hKzYMVFYqB7tx590uzFVV7qlG5RwUKeSfvNkMHU0C7eB3NeZwC3mpCOtxEYH78qtWfIRnzUfx8rfPStQH8/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+15.png" height="196" width="640" /></a></div>
<div>
<br /></div>
<div>
You can find the package as usual. (Search 'RegularStar')</div>
<div>
<br /></div>
<div>
Enjoy. :)</div>
<div>
<br /></div>
<!-- 리더스 타임 상단 광고 시작-->
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-47896884324062107432015-03-06T17:48:00.000+09:002015-03-06T23:01:26.917+09:00Inflection Point TrackerIs it possible to find <a href="http://en.wikipedia.org/wiki/Inflection_point">inflections points</a> of splines in Revit?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/7/78/Animated_illustration_of_inflection_point.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/7/78/Animated_illustration_of_inflection_point.gif" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Yes, it is. Here is my approach.<br />
<a name='more'></a><br />
<div style="text-align: center;">
<b>Watch what I created</b></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/3dQ_QtbFUMM/0.jpg" frameborder="0" height="360" src="http://www.youtube.com/embed/3dQ_QtbFUMM?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
The definition in the video finds inflection points as following order.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2A1ABbRMv_96q6ImD7GTmSpcaORkW5vqlkIj9GK3xTR-MfYcd3OyAKfTCJ6P7ZrxM2fNtbkjNIRSyKuZV11jmS9ydca5T83kSYAb3AxocB1ICP1W6JNOyWFN2IYapjQT3BNZC2qYw3g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2A1ABbRMv_96q6ImD7GTmSpcaORkW5vqlkIj9GK3xTR-MfYcd3OyAKfTCJ6P7ZrxM2fNtbkjNIRSyKuZV11jmS9ydca5T83kSYAb3AxocB1ICP1W6JNOyWFN2IYapjQT3BNZC2qYw3g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" height="297" width="320" /></a></div>
<br />
It creates an object which has two lines as above picture, and transforms it to several points on selected spline.<br />
<br />
And checks each of the transformed objects by using DoesIntersect node as following rule.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlfR9PWrEmLIacX0cLwDsnCtu4TOsVUngrjNlKwl-Bple_FUF3I2K0QbsibdIOdPTWIU8rJwAQQGtHQ-vVHLRAS0iq8xOCdP-86dkm3Z5Hc_KVTOTF8yD69Hx58WMVypYwVYtSCYT4fdM/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlfR9PWrEmLIacX0cLwDsnCtu4TOsVUngrjNlKwl-Bple_FUF3I2K0QbsibdIOdPTWIU8rJwAQQGtHQ-vVHLRAS0iq8xOCdP-86dkm3Z5Hc_KVTOTF8yD69Hx58WMVypYwVYtSCYT4fdM/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+2.png" height="281" width="320" /></a></div>
<br />
A simple Python Script was used to make this work easy. The code returns index when both booleans are different from each other.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJVMjONPfEs89k_6wue7pWW8FTH50wLycMYh20qKYcWDWqUTrqWiep9nmD76wImLUgTsMnSBwtvW8q2BmvLKtD0NWbUEGwqetnNNUVSZbSW0gSayMxwmGQ2Mz96QwHIbdLXqP9lAeO1U/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJVMjONPfEs89k_6wue7pWW8FTH50wLycMYh20qKYcWDWqUTrqWiep9nmD76wImLUgTsMnSBwtvW8q2BmvLKtD0NWbUEGwqetnNNUVSZbSW0gSayMxwmGQ2Mz96QwHIbdLXqP9lAeO1U/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+7.png" height="410" width="640" /></a></div>
<br />
<br />
Another python node was necessary, because Dynamo finds multiple continuous points when the curvature around inflection point is small. The second script finds each of average points from continuous series of points as follow.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTVUy0KPMMHbB1EyKChLd_cNwbKXaO-EnePmqOQ6w_0Ivuv05WMNulp4Sc6OuGniiZfEM_vOxSI_EyYhsdfL2PwH98PQs-_jqLm40WCMXodSNkHozLp4IM7fADqCW1r7Qq4slgayTWKXg/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTVUy0KPMMHbB1EyKChLd_cNwbKXaO-EnePmqOQ6w_0Ivuv05WMNulp4Sc6OuGniiZfEM_vOxSI_EyYhsdfL2PwH98PQs-_jqLm40WCMXodSNkHozLp4IM7fADqCW1r7Qq4slgayTWKXg/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+6.png" height="369" width="640" /></a></div>
<br />
Then it collects inflection points by using above result as index numbers.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEAJYpB4PzNpc_7wTqWsFLgAYEEujfMs6Vnnjx48jHFmrvmlZ18ePO4gcr0erVHzWvNjUU5FEykMgBFTfxPVYQfP-jmgZVOS11Pv9HV44sfdJnizOdSdrTYUY7SkARCRnm0JbwOS1pS0g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEAJYpB4PzNpc_7wTqWsFLgAYEEujfMs6Vnnjx48jHFmrvmlZ18ePO4gcr0erVHzWvNjUU5FEykMgBFTfxPVYQfP-jmgZVOS11Pv9HV44sfdJnizOdSdrTYUY7SkARCRnm0JbwOS1pS0g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+8.png" height="337" width="400" /></a></div>
<br />
Oh, and you can adjust accuracy as follow. The bigger number the more accurate points you can get.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaRrIoTjAD2hP2YDTFBe7Rc9T88FfVKSEam1K7-rFWyhVmIlZUrFyjevxRwwfhBBvbtViXpZ-j5Dpq24oTHUKjB-2a-aZ4lgeRMfzWx3xl-X44xU5tkdYSSCMieGUk6ttsNKFlgihFlmw/s1600/anigif.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaRrIoTjAD2hP2YDTFBe7Rc9T88FfVKSEam1K7-rFWyhVmIlZUrFyjevxRwwfhBBvbtViXpZ-j5Dpq24oTHUKjB-2a-aZ4lgeRMfzWx3xl-X44xU5tkdYSSCMieGUk6ttsNKFlgihFlmw/s1600/anigif.gif" /></a></div>
<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/inflection-points-tracker">download </a>my dyn as usual.<br />
<br />
Enjoy. :)
<br />
<!-- 리더스 타임 상단 광고 시작-->
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com3tag:blogger.com,1999:blog-9006625370523765053.post-17981694631582400682015-03-05T10:10:00.001+09:002015-03-31T18:03:16.409+09:00Helix@HelixI know you must say that,<br />
<br />
"Again?? Helix?? WTF!!! Change your blog title as Enjoy Helix, U idiot!!"<br />
<br />
If you can't get what I'm saying, please read some of my old posts <strike>first</strike> later.<br />
<a href="http://plevit1.blogspot.kr/2013/08/helix-helix-helix.html">1.Helix..Helix..Helix</a><br />
<a href="http://plevit1.blogspot.kr/2014/12/helix-again.html">2.Helix Again</a><br />
<br />
I just can't help myself doing this useless stuff, AGAIN!!. But it's true that I've learned lots of useful things while I've been doing something useless.<br />
<br />
<h4>
</h4>
<h4>
Original Helix in Dynamo</h4>
<br />
It was a great news for me that there is an easy way to make a helix in Dynamo. Helix.ByAxis is the one as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCkX7YDGO_rts-Z-oHiFPn0oCuprvWIctn5Lb_6f1_P5roCUZ3Vh-v_RdjyIMJSB90em5Osf_q6zcMRk93NltiPBSlj7kZ_dCiWWBjn6-j-o02f5x2ChDNifQs00K6zKFV7qbW7rpIVio/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCkX7YDGO_rts-Z-oHiFPn0oCuprvWIctn5Lb_6f1_P5roCUZ3Vh-v_RdjyIMJSB90em5Osf_q6zcMRk93NltiPBSlj7kZ_dCiWWBjn6-j-o02f5x2ChDNifQs00K6zKFV7qbW7rpIVio/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" height="367" width="400" /></a></div>
<br />
But, there is no limit to <strike>people's</strike> my greed.<br />
<br />
<a name='more'></a><br />
<br />
<br />
<div style="text-align: center;">
<b>Watch what I created.</b></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Cf73wRjRGd8/0.jpg" frameborder="0" height="360" src="http://www.youtube.com/embed/Cf73wRjRGd8?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
<h4>
What's the differences from the original Helix node in Dynamo?</h4>
1. This node creates a helix which can follow given curve as a core path,<br />
what ever ridiculous curve you choose. (you can make helix@helix@helix@.....)<br />
2. Start & End points can be assigned by parameters.<br />
3. Radius of Start & End can be assigned differently from each other.<br />
So, it can give you a flat spiral as well.<br />
<br />
You can find it from Online Package Search. Yes, I published my original node as a package for the first time, YAY!!! <br />
<br />
<div style="text-align: center;">
<b>Just search "HelixAtCurve"</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4Ck95HZ0hZzTw9x7TWLwKvqggCX5gFdYhPLexVv-luz9UtGAADJJqJs09FqWEnl6Vxgnpk0SuOmH1kVXcHL5_vSuLrGQaaICJCxrtMO72vx3FoGBXM9M1DCPQ_R65clagUJyssdr10g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4Ck95HZ0hZzTw9x7TWLwKvqggCX5gFdYhPLexVv-luz9UtGAADJJqJs09FqWEnl6Vxgnpk0SuOmH1kVXcHL5_vSuLrGQaaICJCxrtMO72vx3FoGBXM9M1DCPQ_R65clagUJyssdr10g/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+3.png" /></a></div>
<br />
Enjoy. :)<br />
<br />
<!-- 리더스 타임 상단 광고 시작-->
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com1tag:blogger.com,1999:blog-9006625370523765053.post-9498777897736003862015-03-03T18:22:00.001+09:002015-03-03T18:22:32.806+09:00Rotation Angle Indicator by DynamoMost of the families in Revit can be easily rotated from each placement. But Revit can't track each rotation angle. Basically, you have to measure each of them if necessary.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm2erahZ2n6rW-Ffr8bl9o8pgdOlVvmO9LeJjeebRixQn0Rng1dfwo-AqD_HeP__WpbuA4phXg-yaLB2qLL7ykvdLAKIl40_lDGBe8Uhd6zHV29QPHTzNcKbmIZ3qEHSLOXs12TvWuE8k/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm2erahZ2n6rW-Ffr8bl9o8pgdOlVvmO9LeJjeebRixQn0Rng1dfwo-AqD_HeP__WpbuA4phXg-yaLB2qLL7ykvdLAKIl40_lDGBe8Uhd6zHV29QPHTzNcKbmIZ3qEHSLOXs12TvWuE8k/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+1.png" height="179" width="320" /></a></div>
<br />
I know there are a few suggestions about this issue. Here is mine.<br />
<br />
<a name='more'></a><br />
<h4>
Rotation Angle Indicator</h4>
<br />
This dyn finds the rotation angles of each instance of selected family type based on a selected standard one.<br />
<br />
<div style="text-align: center;">
<b>Watch how it works</b></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/4a6kDqLBDdo/0.jpg" frameborder="0" height="360" src="http://www.youtube.com/embed/4a6kDqLBDdo?feature=player_embedded" width="640"></iframe></div>
<br />
<br />
<h4>
Approach Concept</h4>
<br />
1. Find a same horizontal(parallel to xy-plane) curve(line) from each of instances.<br />
2. Convert them as vectors.<br />
3. Normalize the vectors and convert them to points<br />
4. Create Arcs using each of points with origin as a center point.<br />
5. Query each angle of created arcs.<br />
6. Find reverse rotation angle and convert them to the same direction angles.<br />
(Sweep angles of arcs from above step can't be bigger than 180˚. So need other way to find reverse direction cases.)<br />
7. Convert them to Radians.<br />
8. Apply Radians to shared parameters of family instances.<br />
<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/rotation-angle-indicator" target="_blank">download</a> the dyn here as usual.<br />
<br />
Enjoy. :)<br />
<!-- 리더스 타임 상단 광고 시작-->
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com0tag:blogger.com,1999:blog-9006625370523765053.post-77674301841131720502015-02-26T17:48:00.000+09:002015-03-09T16:59:56.162+09:00Dealing withTopography in DynamoTopography geometry is different from most of others in Revit. It is not a surface or solid but Mesh. That's why it behaves a bit weird in Revit.(eg. Can't attach AC families at)<br />
<br />
It's better to be converted to make use of it in Dynamo.<br />
<br />
It's more like imitating than converting. Gather information from topo mesh, and create a Polysurface which has the same shape from it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cFRbBJ9pTLRtZ_f5cFULZsDTJx-T3k0zs25_aXnf1PieC7cULTPdkKwIKqNYp5nEo7s1pkafwDiJyiL8s6L6SAJzcsJydDJ0epgQ471EikHkXQqIdukmstgvYx9ruRjCZPAaVRP8SJw/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cFRbBJ9pTLRtZ_f5cFULZsDTJx-T3k0zs25_aXnf1PieC7cULTPdkKwIKqNYp5nEo7s1pkafwDiJyiL8s6L6SAJzcsJydDJ0epgQ471EikHkXQqIdukmstgvYx9ruRjCZPAaVRP8SJw/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+4.png" height="145" width="640" /></a></div>
<br />
<a name='more'></a><br />
<br />
Above will give you a Polysurface from given Topography.<br />
<br />
If you want to make your Dynamo graph simpler, use bottom.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbFmqILA6uzXRe-TxiG8h9xLO6hpdbAyPGn8N-A-HlHepmvhbCacueia27HRSr8xmMCVVKtRJ2w6WDU4V2fUuTO3lEumEqe6xN80fgzHWquCjEFZfifHT_YCMcx_phGPYBM_-_d6kxC8/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbFmqILA6uzXRe-TxiG8h9xLO6hpdbAyPGn8N-A-HlHepmvhbCacueia27HRSr8xmMCVVKtRJ2w6WDU4V2fUuTO3lEumEqe6xN80fgzHWquCjEFZfifHT_YCMcx_phGPYBM_-_d6kxC8/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+3.png" height="211" width="400" /></a></div>
<br />
After convert it, you can do a lot of things with it.<br />
<br />
<br />
These are my Dynamo practices involved with Revit Topography.<br />
<br />
<h4>
1. Cut Volume Generator</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/iuCmaH_dwcg/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/iuCmaH_dwcg?feature=player_embedded" width="500"></iframe></div>
<br />
I know cut volume can be reported by using Graded Region. My dyn generates a cut volume as a 3D geometry with 45 degree cut slope automatically from topography which has several pads.<br />
<br />
<br />
<h4>
2. Model Line To Contour</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/p2oZCHlMQqA/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/p2oZCHlMQqA?feature=player_embedded" width="500"></iframe></div>
<br />
It makes Topography from selected model lines which are at the same level.<br />
I've been imagined this feature should be included as one of original features in Revit. And I have one.:)<br />
<br />
<br />
<h4>
3. Contour Smoother</h4>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/yxSCRXmN9hM/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/yxSCRXmN9hM?feature=player_embedded" width="500"></iframe></div>
<br />
Maybe, it's not a new feature if you have the new site-tool of Revit 2015.<br />
<br />
You can <a href="https://sites.google.com/site/enjoyrevit/dynamo/topography-related" target="_blank">download</a> above definitions as usual.<br />
<br />
Enjoy. :)
<!-- 리더스 타임 상단 광고 시작-->
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com13tag:blogger.com,1999:blog-9006625370523765053.post-53552649622866473852015-02-24T11:43:00.000+09:002015-02-25T09:25:53.157+09:00Room Size IndicatorRoom in Revit gives us almost every information except plan size.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcm2ImSM9vu1h0uTw3UudkRhhQr1_CP5Smj_ho36x0FD1pmy62glDZu45V3hpfnpW6zoJQVPiy_Vv-w0gJY3LdSLc5Kh6QjCRtjGi4sVbn0myz4xykBzhAhzh22CEP6AlexRo5xqzKyOs/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcm2ImSM9vu1h0uTw3UudkRhhQr1_CP5Smj_ho36x0FD1pmy62glDZu45V3hpfnpW6zoJQVPiy_Vv-w0gJY3LdSLc5Kh6QjCRtjGi4sVbn0myz4xykBzhAhzh22CEP6AlexRo5xqzKyOs/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+2.png" height="212" width="320" /></a></div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
It's not an always necessary item, but can be a ciritical factor sometimes.</div>
<div style="text-align: justify;">
<br /></div>
<a name='more'></a></div>
<br />
<div style="text-align: justify;">
<h4>
1st Attempt</h4>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/jRfPFfZbnlQ/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/jRfPFfZbnlQ?feature=player_embedded" width="500"></iframe></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
I just used BoundingBox node and measured between min&max points. This has a faulty that it can't give correct size when the room is not aligned with world axis. So I created the next version.<br />
<br />
<br /></div>
<h4>
</h4>
<h4>
2nd Attempt</h4>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/E2HMrAJ1nB8/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/E2HMrAJ1nB8?feature=player_embedded" width="500"></iframe></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
This dyn measures lengths of first two curves of each perimeter of room plan. So this can show correct size even if the room is not aligned with world axis. And it can report whether the room is rectangular or not.</div>
<div>
<br /></div>
<div>
You can download dyn <a href="https://sites.google.com/site/enjoyrevit/dynamo/room-size-indicator" target="_blank">here</a> as usual.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Enjoy. :)</div>
<!-- 리더스 타임 상단 광고 시작-->
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td align="center" width="50%"><script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle" data-ad-client="ca-pub-2887347375873154" data-ad-slot="9662008598" style="display: inline-block; height: 250px; width: 300px;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<!-- 리더스타임 상단 광고 끝-->
Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com15tag:blogger.com,1999:blog-9006625370523765053.post-34101078667144353342015-02-20T16:08:00.000+09:002015-02-24T11:52:24.852+09:00Python Rocks!!Few months ago, I've created a membrane simulator using formulas and AC family as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/hixR6ypHYwA/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/hixR6ypHYwA?feature=player_embedded" width="500"></iframe></div>
<br />
It looks working pretty well. Actually, The membrane can't maintain 100% accurate length. I wanted to find a formula to make it, but failed. The one at the video can maintain just approx length. :(<br />
<br />
After knowing Dynamo and Python, I challenged it again.<br />
<br />
<a name='more'></a><br />
<h4>
Rope Simulator</h4>
<br />
In Revit, there is no way to make a NurbsCurve to have assigned length. All you can do is just measuring length of curves which are already created. Of course there are some complex formulas about spline, such as below<br />
<br />
<i><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">=</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">(u)= </span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sub>0 </sub></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">(1- 3u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>2 </sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">+ 2u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>3</sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"> )+ </span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sub>1</sub></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">(3u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>2 </sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">- 2u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>3</sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"> )+ </span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;"><sub>0</sub></span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;">' </span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">(u- 2u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>2 </sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">+ u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>3</sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"> )+ </span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;"><b>p</b></span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;"><sub>1</sub></span><span style="font-family: 굴림; font-size: xx-small; text-align: justify;">'</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"> (- u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>2 </sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;">+ u</span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><sup>3</sup></span><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"> ) </span></i><br />
<i><span style="font-family: 굴림; font-size: 12px; line-height: 18px; text-align: justify;"><br /></span></i>
<br />
I could use it if I were a mathematician, but I'm not. :(<br />
<br />
So, I wrote a Python code instead.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1yL2Vlz_Cckh1eC0VbyNsXm0itRfDUunFE2hje81MAm_8jKn1NH_nI1-aveQ-3V7-KeHAwM4Eex4nXbDAtEDjIQlkoHTzkFbT4ftuN1zM0gSYy97bJHHn3wS91cPRUDquJlu8yH51Qik/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+45.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1yL2Vlz_Cckh1eC0VbyNsXm0itRfDUunFE2hje81MAm_8jKn1NH_nI1-aveQ-3V7-KeHAwM4Eex4nXbDAtEDjIQlkoHTzkFbT4ftuN1zM0gSYy97bJHHn3wS91cPRUDquJlu8yH51Qik/s1600/%EC%9D%B4%EB%AF%B8%EC%A7%80+45.png" height="320" width="234" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My first Python code</td></tr>
</tbody></table>
This simple Python code gave me a NurbsCurve from given two points and curve length as below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8M05Jp6r20I9tKgXlnLUMcRSDwKqBZJSaHfvsNOv6ShGqfu8dG6zXViZo9SDjIf7ge1Yjb2BrYxEzOkfDLyFG51cW3h3Yqcw5A65HRoSr-Cu4ozpX6HWXm8KDgJkBGu987dIU-tCoGSg/s1600/rope.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8M05Jp6r20I9tKgXlnLUMcRSDwKqBZJSaHfvsNOv6ShGqfu8dG6zXViZo9SDjIf7ge1Yjb2BrYxEzOkfDLyFG51cW3h3Yqcw5A65HRoSr-Cu4ozpX6HWXm8KDgJkBGu987dIU-tCoGSg/s1600/rope.gif" height="229" width="320" /></a></div>
<br />
This code can be a start point of certain computational design like an example below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/uXaMLD6KAhk/0.jpg" frameborder="0" height="282" src="http://www.youtube.com/embed/uXaMLD6KAhk?feature=player_embedded" width="500"></iframe></div>
<br />
With Python, I'm sure you can go even further than someone without it.<br />
<br />
You can use <a href="https://sites.google.com/site/enjoyrevit/dynamo/rope-simulator" target="_blank">my code</a> if you want.<br />
<br />
Enjoy. :)<br />
<br />
<!-- 리더스 타임 상단 광고 시작-->
<table border=0 width=100% cellspacing=0 cellpadding=0>
<tr>
<td width=50% align="center">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-2887347375873154"
data-ad-slot="9662008598"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<td width=50% align="center">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 중간직사각형 -->
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-2887347375873154"
data-ad-slot="9662008598"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</td>
<tr>
</table>
</br>
<!-- 리더스타임 상단 광고 끝-->
PS. Please don't judge my dumb code. It's my first one. At least it works. :)<br />
It will be appreciated if you suggest any better one.Hyun Woo Kimhttp://www.blogger.com/profile/06936091441341823779noreply@blogger.com2