AEC Hackathon NYC Recap

Ever since I joined the construction industry, I always had the opinion that construction over every industry has some of the most real and good people on the planet. I do not know why I think that, but this weekend only strengthened that opinion. I had the greatest time this weekend hanging out with industry professionals and let me tell you, we did the coolest things!

Project Tango
Using Google’s 3D scanning technology, these two gentlemen were able to create the coolest point cloud with a device that costs next to nothing compared to traditional point cloud scanners. https://developers.google.com/project-tango/

Team Punchbot
The fellas at Roger’s O’brien Construction teamed up with FieldLens to build a robot that can walk around the jobsite to create and modify punchlist items.  This was unreal: an engineer in an office can take control of this robot from his/her phone, drive it over to a punchlist item, snap a photo, and create a issue in FieldLens.  That’s only the tip of the iceberg for this robo-constructor…

Revit to Google Cardboard
The folks at Thornton Tomasetti’s CORE Studio always seem to amaze me. Teamed up with Case Inc., the team developed the ability to view and select items in a Revit model using Google Cardboard.  What?  Wow..

Dunit
My buddy Mike came to the Hackathon not knowing anything about construction, he teamed up with a few of the CORE guys and built a Ruby on Rails app around the vA3C library. The tech here is really unreal. To make this simple, they built a web accessible interface to view a revit model in the browser, make annotations onine, and send the comments back to the model in nearly real time. Rails app is on GitHub: https://github.com/JonatanS/dunit

SubSchedule
Newforma showed up looking for a problem to solve. We gave them one: scheduling. During the beginning of the weekend we started talking about what would really help the industry. Everyday construction Superintendents walk their jobsite, record notes, and go back to their office to update their schedule. In 1929, Starret Brother and Eken started building arguable the greatest sky scraper on the planet; the Empire State building. Their construction process is still to this day unrivaled by any other and they used a very exact method of scheduling which today is known as linear scheduling or flowline scheduling. Our team developed an iphone and web-based app to view and edit your master schedule on a daily basis. You can see which tasks are ahead and which are behind giving the superintendent complete ability to have the most efficient work plan. Managing this correctly should save every person on the project site at least 15 minutes per day.

Other Notes
I almost for got to mention Amir’s amazing plugin for Navisworks which exports a Navisworks model to the vA3C JSON format.  I will post this when it becomes available.

Autodesk was also present bringing a great presentation on the Autodesk View & Data API which can be discovered here: https://developer.autodesk.com/

Finally, I need to mention the super awesome 3D models that the Futuristas built using MineCraft.  This organization deserves a round of applause for the work they are participating in.  I hope that one day, my children will be able to join and learn to love technology and science as I do.

Bringing it all together

So to bring it all into perspective, this elite group of AEC Technologists were able to basically develop software to efficiently manage the construction process with modern day technology. In the future, an AEC team should be able to create a well-thought out model in revit from an existing point cloud with Project Tango. Export it to dunit, view and annotate it in cardboard through dunit. Track the schedule with Sub Schedule and send the punchbot to track and verify quality in the field.  Life does not get much easier than that!

More info and pictures can be viewed on twitter #AECHackathon or on the AEC Hackathon website.  Here is the official video for presentations and awards:

Building a collaborative model tracker

BIM or building information modelling is a crucial workflow in today’s large construction project process.  I am going to go over how to set up a model tracker using WordPress.  This tutorial is intended for moderate WordPress users assuming that you already know how to buy hosting and install/manipulate WordPress.  If you do not, read this post.  The site we are going to build will be a child theme, so pick your favorite theme framework and create a child theme.

The plan

  • Create child theme
  • Add custom post types
  • Add custom fields
  • Create page templates

There is one plugin we want to use to display the model in our browser: 3D Model viewer.  We will also use ACF Pro.
Continue reading “Building a collaborative model tracker”

AEC Hackathon NYC Challenge

In late January 2015, AEC Hackathon will be coming to New York.  I am extremely excited since this will be the first AEC Hackathon I will attend.  I threw a challenge up on the Facebook Page:


 

All:

We are looking to make an industry changing application which will bring the 3D model into the hands of every member of a project site. The concept is to build a WordPress plugin (free and open source) which can be embedded in a post or page.

The concept starting point code is hosted in a github repository here:
https://github.com/eManagerNYC/3D-Model-Viewer

and a demo of the current code can be viewed here:
http://model.turneremanager.com/

The current viewer loads a model based off of an exported .JSON which uses the vA3C library/exporters located here: http://va3c.github.io/

We are looking to build a viewer which allows any person on a project site to:

  • Use WebGL technology to view a model in a browser – any modern web browser
    View a model in a quick and efficient way – add a worker.js, use caching, leverage WP_Transients API (http://codex.wordpress.org/Transients_API).
  • On top of efficeint viewing, caching practices may also provide an outlet for offline viewing (HTML5 Offline – http://diveintohtml5.info/offline.html).
    Spin and fly through the model with your mouse and use keyboard controls (https://github.com/eManagerNYC/3D-Model-Viewer/issues/3)
  • Turn layers on and off if applicable – this will allow users to show only particular parts of a model. For example, if I am a electrical superintendent and want to view just the bus duct risers in a space
  • Add the ability to measure. Measuring in 3D is always a challenge, but determining a scale off of a 3d plane and creating a tool to accurately measure in impreial and metric would go a long way.
  • Add camera angles from predefined views in the Revit model to provide a meaningful viewpoint for users rather than wasting time navigating using controls

Additional considerations:

  1. Large models are always an issue on complicated construction projects. This concept uses vA3C exporters to convert large AEC models into a JSON (http://www.json.org/) format. Standardizing how the models are output and even created is an important factor in the lifecycle and display process. It may be worth it to include a standardization of how a model should be created and displayed within a browser.
  2. Mr. Doob created three.js – research his work and style: https://github.com/mrdoob/three.js/wiki/Mr.doob’s-Code-Style%E2%84%A2

 

Any programmers who are interested in participating, I would urge you to sign up at: http://aechackathon.com/aec-hackathon-new-york/

Looking forward to changing the industry with a great hack!

eManager.NYC gets a facelift

Over the last few years, I have been completely reliant on using the twitter bootstrap libraries to build websites.  Some people knock it because it can be bulky if you’re the type of person that is particular about every millisecond of load time.  I love it, I cannot live without it, and it makes creating good looking web programs so easy.  I was looking at my eManager main page earlier today and was like: “Wow, this page needs a redesign!”  So, I pulled down a simple free bootstrap landing page and customized with all the things I thought it needed.  It took maybe an hour worth of coding and well look how awesome it turned out: http://eManager.nyc/

emanager_facelift

It has everything a modern website wants one page scrolling with a cool navigation menu, an awesome skyline, buttons, icons, and even a styled map.  Thanks a lot Twitter Bootstrap and the folks at StartBootstrap.com for making my day and website awesome!

Efficient Real Estate Maps with Google

I recently moved out of Long Island and into Manhattan.  Saying that finding an apartment in New York City is easy would be an understatement.  With barely a 1% vacancy rate, the NYC rental market is popping.  I think I went through ten real estate agents until I found one that I liked and trusted to find me something worth while.

The one thing I learned is that most real estate websites who offer listings pretty much suck when it comes to the New York market.  Some of the sites I would recommend to a friend are Naked Apartments, Street Easy, and Apartable.  All have their benefits over the standard Realtor.com, Trulia, or Zillow mega listing sites of the world.  Realtor.com is my go to listings site if wanting to purchase outside of New York City.

New York is a unique market, it is unlike any other in the world and the multiple listings service only truly exists inside the heads of the really great brokers.  While browsing I realized that most of the neighborhood maps for New York were largely imaged based or inefficient.  I decided it would be worth an hour or so of my time to look into how real estate listings should be presented in New York City over the internet.

Naked Apartments does it best, they allow you to pick the areas you like and only show you the listings in your preferred areas with any additional filters/amenities.  At the end of the day, it comes down to location, location, location right?  Google Maps offers an amazing API to show visual GEOJSON data on top of their map which really compliments an awesome dataset from PediaCities I found.  The code is published on my GitHub account:

https://github.com/ibuilder/NYCPolyline

NYCPolyline

Maybe real estate websites can use this technology in the future to make quick and efficient neighborhood selectors for real estate listing search!

WebGL 3D Model Viewer

Originality

The traditional method of 3D Modeling is with a computer program on your desktop like Revit, Sketchup, or Rhino. These computer programs leverage that devices graphic processing unit to render models in 3D. Until recently, a browser has not been able to use processing power of the GPU and instead has had to rely on the CPU or computer processing unit. The introduction of WebGL into browsers has allowed developers to add 3d within a browser using the GPU. This saves the browser from using your CPU.

Many modeling companies including Autodesk are moving towards the WebGL direction, since model manipulation is much smoother. In May 2014, Thornton Thomasetti had a hackathon and a product team came out with vA3C which are a basically a bunch of exporters for Revit, Grasshopper, 3D Studio Max, and Sketchup to export to a JSON format. As quoted from JSON.org: “JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.”

modelmain

Over this past summer we developed a 3D model viewer to view 3D models exported from Revit (or other formats) using the vA3C export into a WordPress Site. WordPress is the world’s leading web publishing platform and about 20% of the entire internet runs on WordPress including the NBA and Conde Nast. Since it has been developed as a wordpress plugin, all you need to do to use is install it on your own WordPress site! Choosing a WebGL library was hard. There are so many out there and so many that change every day. Three.js was the obvious choice, but that too is always being upgraded.

The model viewer is an open source plugin for wordpress that can be used on any project site that currently uses WordPress to collaborate. It is also 100% compatible with the eManager framework and has already been rolled out to every project site using it.

Get it | Demo

Forecast and Historical Weather

Weather is always a fun topic especially when we are referring to construction.  Weather is the ultimate factor in how and when a building gets built.  It was essential to develop a wordpress plugin that could handle both forecasting and tracking historical data.  Wunderground offers a great api that can handle both!  Using Wunderground’s JSON API, we were able to release plugins to track the weather on any construction project site.  Check them out here:

WP Forecast Weather

WP Historical Weather

Gravity Population

I made this blog because I keep reusing code snippets for different things and I keep needing to put them somewhere incase I forget what I did. It not only saves time, but lets me share what I’ve learned. Remember preschool: “Sharing is Caring!” So I get to test out my tumblr theme’s interaction with prettify by sharing two snippets for Gravity Forms. If you do not know what Gravity Forms is you should, because it’s awesome. Basically, it’s a super-awesome form plugin for WordPress (Yes, I just said awesome three times) which can be used for anything from a contact form to an entire custom post type work flow solution (aka eManager). The first snippet is a pretty popular one, which populates a dropdown select field with a custom post type. The second does the same, but with a taxonomy. Cool right?

Populate with a Post Type


<?php
add_filter("gform_pre_render", "gform_prepopluate_populate_books");
add_filter("gform_admin_pre_render", "gform_prepopluate_populate_books");

function gform_prepopluate_populate_books($form){
    $posttype = 'books'; // Post type to query
    $formid = 3; // Form Id
    $fieldid = 8; // Field Id

    if($form["id"] != $formid)
        return $form;

    $posts = query_posts( array( 'post_type' => $posttype ) );
    $items = array(); /* Add Blank */
    $items[] = array("text" => "", "value" => "");

    foreach($posts as $post)
        $items[] = array("value" => $post->ID, "text" => $post->post_title);

    foreach($form["fields"] as &$field)
        if($field["id"] == $fieldid ){            
            $field["choices"] = $items;
        }
    return $form;

}

Populate with a Taxonomy

<?php

add_filter("gform_pre_render", "gform_prepopluate_populate_books");
add_filter("gform_admin_pre_render", "gform_prepopluate_populate_books");

function gform_prepopluate_populate_books($form){

    //Grab all Terms Associated with a Specific Taxonomy;
    global $post;
    $taxonomy = 'genres';
    $formid = 5;
    $fieldid = 14;

    if($form["id"] != $formid)
        return $form;
    $terms = get_terms($taxonomy, 'hide_empty=0&orderby=none');

    //Creating drop down item array.
    $items = array();

    //Adding initial blank value.
    $items[] = array("text" => "", "value" => "");

    //Adding term names to the items array
    foreach($terms as $term){
        $is_selected = $term->name == "testing" ? true : false;
        $items[] = array("value" => $term->name, "text" => $term->name, "isSelected"=> $is_selected);
    }

    //Adding items to field id 1. Replace 1 with your actual field id. You can get the field id by looking at the input name in the markup.
    foreach($form["fields"] as &$field)
        if($field["id"] == $fieldid){
            $field["type"] = "select";
            $field["choices"] = $items;
        }

    return $form;
}

Start it off right..

Since this is my first post, I thought I would start it off with an article which features the one and only, me!  Check out this awesome article written by Luke Abaffy from ENR:

Check out the article by clicking here.