2020의 게시물 표시

The video of an agent-based panelization tool is now on YouTube

이미지
The video of an agent-based panelization tool I've made for my Masters study assignment is now on YouTube. If you are interested in trying this out on your own, please don't hesitate to email me. I wouldn't say this is the best practice of doing such a thing, but I'm pretty sure that it will give you some insights, if you haven't done such a thing. Hope you enjoy!

Where to find Revit Journal files?

이미지
Revit journal file can be considered as a programmatic log that Revit records during the runtime. It records almost all histories including the user's interaction with the software like clicking. It is useful to automate certain processes from outside the Revit environment, unlike API or macros. However, where do you find the journal file? Here it is: C:\Users\[username]\AppData\Local\Autodesk\Revit\Autodesk Revit 2017\Journals When you go to the folder path as above, you will find files something like below: Revit Journal Files Try drag and drop this text file on the Revit shortcut icon. Something fun will happen immediately! Have a look at the official webpage from Autodesk as well! [This article has been copied from hojoongchung.wordpress.com. The original article has been written on Sep 12, 2017, 7:28 PM]

Revit Journal Scripting Example

I've tried making new file from revit and adding worksets in it using journal file. Here's an example code I've used. I will later use this journal file with Excel VBA to create folder structures and Revit files automatically. ' 0:< Initial VM: Avail 8388359 MB, Used 21 MB, Peak 45; RAM: Avail 11334 MB, Used 48 MB, Peak 45 Dim Jrn Set Jrn = CrsJournalScript Jrn . Command "Internal" , "Create a new project , ID_FILE_NEW_CHOOSE_TEMPLATE" Jrn . ComboBox "Modal , New Project , Dialog_Revit_NewProject" _ , "Control_Revit_TemplateCombo" _ , "SelEndOk" , "<None>" Jrn . ComboBox "Modal , New Project , Dialog_Revit_NewProject" _ , "Control_Revit_TemplateCombo" _ , "Select" , "<None>" Jrn . PushButton "Modal , New Project , Dialog_Revit_NewProject" _ , "OK, IDOK" Jrn . Directive "DocSymbol" _ , "[Project1]&

Exploring scripting capability in Revit: Using journal file and batch script

I am currently exploring and teaching myself the Revit Journal script and the Batch script. After spending somewhat 3 hours digging in, I was able to clean out the journal file and made sample code below for opening Revit file from journal script(.txt format) and changing color visualization of structural column. One thing not sure: without the first line of the script, which is commented out with ' symbol, the revit wouldn't open the designated .rvt file. I don't know why this happens yet. ' 0:< Initial VM: Avail 8388359 MB, Used 21 MB, Peak 45; RAM: Avail 11334 MB, Used 48 MB, Peak 45 Dim Jrn Set Jrn = CrsJournalScript Jrn . Command "Internal" , "Open an existing project , ID_REVIT_FILE_OPEN" Jrn . Data "File Name" , "IDOK" , "C: \1\r ac_advanced_sample_project.rvt" Jrn . Command "KeyboardShortcut" , "Control visibility and appearance of objects (applied only in the active view) , ID

State of the art BIM issue management systems (personal impression)

이미지
Clash detection and Issue Management have been a big hurdle for a while in the AEC industry (or it has been always an issue when human started to build houses. I'm not sure about this). Even after adopting the new technologies such as BIM or other IT techs, still the clash has occurred in the initial design, and still issues had to be managed and coordinated between different stakeholders in the project. As far as I can remember, Gehry Technologies (acquired by Trimble in 2014) and CASE (acquired by WeWork in 2015) handled this issue on their own way, doing it by building custom tools in individual project, or scaled it as a multi-project solutions. I'll talk about the Issue Management history in detail later. When we agree that the issue management is not the thing we can get away from or something that we can eliminate from the AEC projects, we start to think how we can do it better then. So I searched, and found some nice solutions that can ease out our issue managemen

Firehopper has been published in food4rhino

이미지
Example use case of firehopper for geometry parameter sharing Yes, that's right. The Grasshopper component that was developed to interact with Google Firebase, which is firehopper, is now on the food4rhino. You can download most up-to-dated firehopper through here from now on. Enjoy! [This article has been copied from hojoongchung.wordpress.com. The original article has been written on Apr 4, 2018, 1:03 AM]

Efficient way of collecting sum of missing values per row in Pandas

이미지
While doing project assigned from the Udacity Nanodegree program I'm currently attending, I had to collect the number of null values in each row and display it in the histogram. However, the Pandas dataset contained 891221 rows, which I had to wait quite a long time to iterate through the rows using the following code: df . apply( lambda row: sum_of_nulls_in_row(row), axis = 1 ) Although it was suggested in this post that using apply() is much faster than using iterrow(), it was still too slow to finish the project efficiently. After several search, I found this discussion. In Icyblade's answer, he mentioned this: "When using pandas, try to avoid performing operations in a loop, including apply, map, applymapetc. That's slow!" Icyblade's suggestion was to use following code: df . isnull() . sum(axis = 1 ) I've applied it into my code, and Boom! It worked like a charm. Long waiting was eliminated and the result was there in a blink .

Revit API – Issue Spheres Generator

이미지
After developing the Revit macro that reads CSV and places the issue sphere into corresponding location, I wanted to have an UI so that user can specify which CSV file they want to read. So I started to transfer the macro code into Revit API code. Using Windows form and make Revit communicate with it wasn’t easy job; it required to use a method called BackgroundWorker and external event handler. I needed to use the backgroundworker because I wanted to show the progress bar moving during the sphere creation. To do it, code has to be executed into two different thread, one generating spheres, while other updating the progress bar. Also, I had to use external event handler since Revit did not allow external application or Windows form to access to themselves and do something. I’m a not very good programmer so it wasn’t easy for me to implement all these methods. Although the tool looks a bit simple, code behind it is not like it. Issue Sphere Generator UI and generated spheres

The source code of Project Owl is on the Github now!

Project Owl was a small Grasshopper plugin that I developed during my master's study. However, some might have already noticed that I stopped working on it for a while. I was really passionate about this project (I am generally very interested in reality capturing), but when I lost my most up-to-date WIP source code, I lost the passion as well. The situation wasn't so great at that moment because I lost my MacBook at the same time. Yes, that's how I've lost the source code, and it was all because I didn't use the Github to back-up and share it with others. Recently, I found out that some people actually visited my site to get the information about this tool. All the traffics were coming from the Grasshopper3D website ( related post ). So I thought  why bury it deep in my computer when there are some other people who might need it? So I decided to upload the source code on the Github ( https://github.com/hodgoong/grasshopper-kinect2 ) publically. The code I

Project Owl: Video is up!

이미지
I have spent some time recently to revisit my old works and made a video out of it for the documentation. This video shows how the Grasshopper component I developed in 2015 called Project Owl works. It generates 3D point cloud in Rhinoceros using Microsoft Kinect V2. The purpose of this development was to create a minimalistic component that only creates point cloud, and no more than that. Hope you have fun watching the video. [Article has been copied from hojoongchung.wordpress.com. The original article has been written on Mar 2, 2018, 8:28 PM]

Rhino3D Grasshopper Add-in for Google Firebase: Firehopper released!!

이미지
The Firehopper is an add-in component for the graphical programming tool Grasshopper that can interact with Google Firebase in a RESTful way. Currently it only supports simple JSON string generation and GET/PUT requests. To download the component and see the source code, please click here . [This article has been copied from hojoongchung.wordpress.com. The original article has been written on Apr 2, 2018, 11:03 PM]

Frequently used Pandas commands - Lambda function

이미지
After finishing the first assignment of Udacity Data Analyst Nanodegree , I decided to summarize and record most commonly used Pandas commands here. The first topic I would like to post is the lambda function. Lambda function in Pandas can be used via apply() command something like below: df = pd . DataFrame({ 'A' :[ 1 , 2 ], 'B' :[ 3 , 4 ]}) df . apply( lambda x : x + 1 ) Above code adds 1 to all the data resides in the DataFrame named 'df'. The result looks like below: __ | A B 0 | 2 4 1 | 3 5 Lambda function can be applied to a single column using below code: df[ 'A' ] . apply( lambda x : x + 1 ) But the result only shows the index and values without the column name like below: 0 | 2 1 | 3 To include the column name, following code can be used: df . apply({ 'A' : lambda x : x + 1 }) And the result will look like this: __ | A 0 | 2 1 | 3 This lambda function can be us

Project Owl with Volvox

이미지
So I've tried Owl with Volvox, which has been developed as a part of DURAARK project at the Center for Information Technology and Architecture (CITA) by Henrik Leander Evers and Mateusz Zwierzycki (http://www.grasshopper3d.com/group/volvox), and found out it's much convenient to navigate scanned point clouds in the Rhino with these two combination. Basically Volvox can turn array of points into Rhino point cloud type, which is lighter compare to have a sets of points. Have a try! Update: source code of Project Owl is now publically open. Follow the link below for the code as well as the binary GHA file! https://github.com/hodgoong/grasshopper-kinect2 [Article has been copied from hojoongchung.wordpress.com. The original article has been written on Oct 6, 2015, 5:07 PM]

Project Owl: Kinect V2 Point Cloud Generator for Grasshopper

이미지
Project Owl, the Grasshopper point cloud generator for Microsoft Kinect V2 sensor has been updated. The updated features are listed below: Updated feature User can now define the origin point of the point cloud Resolution of the point cloud can be changed in real time Point cloud can be trimmed according to its distance from the origin point Multiple components can be added and run simultaneously Most importantly, component icon has been added!! In case you want to try this component, you can download it from the following link:  https://github.com/hodgoong/grasshopper-kinect2 Note that you may install 'Kinect for Windows SDK 2.0' to make this component work. Please contact hojoong.chung(at)gmail.com for any questions, or suggestions. [Article has been copied from hojoongchung.wordpress.com. The original article has been written on Sep 17, 2015, 2:20 AM]

Moved from hojoongchung.wordpress.com

I've been using wordpress.com since 2013 (I guess) to post my thoughts and learnings in regards to the AEC and the BIM industries. Since it has been a while and to monetize the contents I've been providing to the others, I've decided to move the contents to the Blogger.