Showing posts with label Data. Show all posts
Showing posts with label Data. Show all posts

Tuesday, September 16, 2014

How to Start Programming Revit Add-ins.

Part of the focus of this blog is how to manipulate and take advantage of the Data being generated by BIM. I'm happy to say I'm well on my way to learning to swim in this sea of data! I have started learning how to program the Revit API in C#.  I had some programming experience in college about ten years ago and in a different language.  So far, I have successfully written five different add-ins.  Yeah me!

Here is what I have done to learn what it takes.

I downloaded and installed the Software Developers Kit from Autodesk Developers Network.  I also tried several good tutorials they have available.  While this was good, it didn't give a lot of explanation to why things were done the way they were, especially for a novice programmer. Also, much of what I found available in this was written in C#, which inspired my learning the language.

First a free online Fundamentals for Beginners C# Programming course from Microsoft.  This gave me a good understanding of the basics. It also talked me through downloading and installing Microsoft Visual Studio Express 2012.  The express doesn't mean it runs faster. It simply means it is the free version with several features missing.  That topic could and likely will be another blog entry to itself.

Knowing C# alone is only part of the puzzle.  Next you must learn the specifics of using the Revit API in C#. I choose to purchase the Udemy on-line course from Harry Mattison, Founder of Boost Your BIM. The man knows his stuff, and does a good job of explaining it.  This course is what finally got me off the ground and running.  

Another training tool I found very beneficial was Don Rudder's book on programming for the Revit API, (also an excellent resource).  Most if not all of his examples are in Visual Basic. This I have learned is not a big deal for experienced programmers to utilize and swap between several languages, provided they are all part of the .net framework.  I won't pretend to understand all of that short of saying they are somewhat interchangeable.

Also along the way has been countless Google searches on topics, advise from friends in the programming industry and a trip to Autodesk University (focusing on API classes).  One class that stood out to me was David Rushforth's Automate your Revit-Based Software Workflows: Let the API Do the Work.

In the not to distant future, I hope to start selling some Add-ins through this site. I have several ides already. Do you have any suggestions/requests? If so, please leave a comment, or message me.


Thursday, August 7, 2014

Retooling the Revolution

Retooling is often a phrase we here for factories getting an upgrade to make a new model of widget, or as an upgrade to help them produce the widgets faster.  I believe the AEC industry is in the midst of retooling for the Digital Design Revolution.  Why you may ask? BIM is producing more data then we know what to do with.  We need to become better at sorting though all this data to make educated informed decisions, without drowning. We need to learn to swim though the sea of data.

The AEC industry for ages has revolved around the all mighty drawing set.  The printed (or hand drawn) set of documents that communicated to the construction trades the extents and quality expectations of their work.  This is no longer the case.  The drawing set is being replaced by digital models.  Digital models heaping with data.  We need the ability to sort though the data, gather specific bits of it to make decisions.  The authoring software usually does a pretty good job of helping us do that, when it falls short, when we need a specific task not built into it, that is when we start to drown.  This is where we need to retool.  Accessing and manipulating databases is what we don't have the skills and tools to handle. Sure many of us learned how to script for AutoCAD,  or maybe to write a macro in excel, but how many of us have learned to write a macro for Revit, or an add-in even.  How many of us have learned how perform a query on an SQL database or to link it to real objects in the Revit database? Do we need to become proficient programmers in C#, Python, Ruby on Rails, or the next hot programming language?

This is the kind of retooling I am proposing.  I don't believe we need to all become programmers before we become designers and engineers, but these are the tools of this generation.  These are the tools that will differentiate us from the competition.  Perhaps we will hire a programmer on staff, perhaps keep one on retainer like a lawyer. No matter the arrangement, programming and data management needs to be part of the tool kit for the BIM world.

Saturday, July 26, 2014

Use Excel with Revit!!!

I know what you're thinking, Revit does not support importing and exporting of data with Excel. Your right, natively it does not.  So right off the bat we need to talk about add-ins.  There are several out now that you can buy to allow you to create and sync data with Excel.


And I'm sure there are more. Each has its pros and cons.  My personal favorite is Rushforth Tools.  The cost is very reasonable, and you get so much more then just the ability to use Excel.  Personally I wouldn't use Revit without it.  

Now there are some things to know before you start manipulating data with Excel, and pushing it back into your model. For starters, every single little object in a Revit model has a unique element ID, and I mean everything. Most of the add-ins will by default create a column identifying this property. Don't mess with it, ever. There really shouldn't be a need to, but it would really confuse the software for these values to change. It is a very good property to use for keeping track of things as it does not change. 

Next, what kinds of stuff might you want to change?  The limits are almost boundless here and will likely be an entire post itself in the future. Some brief suggestions, how about shared parameters used for scheduling, or coordinating your ceiling heights with the heights of ceiling devices, or pushing CFM values from your load calculation software into the spaces, and then to the devices in those spaces. I could go on, but that's just a sampling.  What kinds of data would you like to sync with Excel?  Do you have any favorites you are already using? Leave a comment and let's discuss.