BIM Software: Which is the Most Popular?

Every year, The NBS publishes The National BIM Report. This year, The NBS was able to gather data from nearly 1,000 construction industry professionals to learn about BIM adoption, standards implementation, and technology. In this post, we’ll cover the top 3 most popular BIM software as reported by the survey respondents.

Most Popular BIM Software Companies

BIM Software
Source: The National BIM Report 2019, The NBS

Before diving into specific applications, I’d like to highlight the popularity of the BIM software companies, as many companies provide multiple tools which support BIM processes.

In the graph above, you’ll see that Autodesk is by far the most popular BIM software vendor, which has been the case for quite some time. Autodesk has been known for its computer aided drafting product, AutoCAD, for decades and now they are continuing that trend with their popular BIM software, Revit.

Graphisoft is well known in the UK for their BIM software, ArchiCAD, which provides some differentiators from the competitors including its continued support for openBIM.

Top 3 BIM Software for 2019

BIM Software
Source: The National BIM Report 2019, The NBS

Source: The National BIM Report 2019, The NBS

The chart above illustrates the popularity of Autodesk’s two flagship products, Revit and AutoCAD, which take the top two spots of our list. Note that the National BIM Report breaks AutoCAD and AutoCAD LT as two separate applications, however in my opinion they are technically the same platform as they both produce the widely adopted DWG file format, so I’ve combined them for this study.

#1 Revit – 46%

BIM Software

As expected, the most widely used BIM software is Autodesk’s Revit which was initially released on April 5, 2000. Since then, Autodesk has successfully brought this tool to the mainstream and now has it positioned as the most popular design tool in the AEC industry. Autodesk now seems to be focused on pulling the construction side of our industry into this massive ecosystem by providing new features and tools for fabrication and detailing.

#2 AutoCAD & AutoCAD LT – 24%

BIM Software

Coming in at the number two spot is AutoCAD and AutoCAD LT. Some may debate as to whether or not these applications can be considered BIM software (they have historically been branded as CAD products), however there are several flavors of AutoCAD such as AutoCAD MEP (previously known as Autodesk Building Systems) which provide workflows that support BIM processes such as data-rich intelligent objects. It is also worth noting that the tools that were specific to AutoCAD MEP were once a completely separate BIM software, however Autodesk has now rolled this BIM toolset into their main AutoCAD product.

#3 ArchiCAD – 15%

BIM Software

Graphisoft’s ArchiCAD comes in 3rd place this year and is arguably the industry’s first BIM software. Development started in 1982 on the original Apple Macintosh and of course this BIM software continues to improve to this day.

There are quite a few features that set ArchiCAD apart from its competitors and perhaps the most significant feature is its compatibility with the Mac OS. As you may know, AutoCAD only recently received a Mac version and Revit for the Mac is nowhere in sight.

In addition to its compatibility with multiple OSes, one feature that has always stood out to me is its ability to perform SQL queries to extract data. Being as we should all be striving for data-driven design, the ability to extract BIM data natively quite a feature.

Which BIM Software is Right for You?

Ultimately, it depends on your firm’s specific needs when choosing the right BIM software. As with almost any type of application there are many different opinions on which BIM software is superior. Many AEC firms also maintain a technology stack which can include a combination of several BIM software’s.

We’re currently working on preparing our own  BIM Tech Stack report to gauge the suite of tools the market is currently using for their BIM need. If you’re interested in being apart of the study and getting a free copy of the report, please fill out our survey here. 

BIM Content Management API: Sample Application Available Now

BIM Content Management API: Sample Application Available Now

As you may have heard, the Unifi APIs are out in the wild and the Unifi team can’t wait to see what all of you start to cook up! Earlier this year we launched the Project Analytics API, which gives our users access to even more data than what is exposed on the out-of-the-box dashboards. The Content Management API is infinitely more powerful, giving our users read/write access to the parameters encapsulated within their Revit families. Imagine that, the ability to manage your BIM data in the cloud. 

We are so excited about this API that we wanted to give the Unifi community a head start by sharing a couple of sample applications which are built on top of the Content Management API.  

Disclaimer 

Full disclosure, I am not a software developer by trade, I’m actually a BIM manager. That is important to note because it demonstrates that with just some fundamental knowledge of C# and Windows Presentation Foundation (WPF), I was able to create a fully functional desktop application to manage Manufacturer and Model data to your families in the cloud. If I can do it, you can do it as well!  

Download or Fork the Sample Application on GitHub 

The sample application is open source and available on GitHub, please click here to access it now. Once you download or fork the repository, you’ll find the Visual Studio solution in the c-sharp\ContentManagement folder.  

Simply open ContentManagement.sln in Visual Studio and add the following required packages through NuGet: 

•Newtonsoft.Json 

•RestSharp 

Once the packages are installed to the project, you’ll be able to build the application and run it.  

I hope you enjoy the open source sample code. Please click here for more on our Content Management API or to get your API key today.  

UNIFI Releases Content Management API to Support its Focus on Data Management

For the past seven years, the Unifi team has been working diligently to build the most robust BIM content management system in the AECO industry, Unifi Pro. Our product is arguably the most popular solution across the industry to help firms gain control over the organization of their digital assets as well as visibility of Revit family parameter data.

Last year we followed up with our second offering to the AECO space, Project Analytics, which provides insight to the BIM data encapsulated within Revit projects. One of the primary goals of Project Analytics is to give non-BIM stakeholders the ability to review the data and contents of a model which gets our industry one step closer to overcoming one our biggest technological hurdles to date, which is lack of model transparency.

Data Management is Content Management at Scale

By starting with BIM content in Unifi Pro and then progressing to project models with Project Analytics, it’s clear that we’ve taken intentional steps to help the industry gain visibility of their BIM data. With the groundwork laid down for reviewing this data, the next obvious step in managing that data is to have the ability to modify it.

Technically speaking, manipulating data can be as simple as changing parameter values in a Revit family or Revit project. Come to think of it, we’re managing data on a daily basis while we virtually construct buildings using BIM.

But this begs a few questions:

•Are your workflows scaleable?

•How would a firm go about changing their parameter data in a library of 1,000 Revit families?

•Can you truly manage your data if you can’t handle it programmatically?

Undoubtedly, you would either need to use a Revit add-in or develop a custom script (Dynamo or other) to handle these changes in large batches. Even with some sort of Revit add-in or Dynamo graph, there would still be a need to handle these changes using your local machine.

API’s Are So Hot Right Now

https://i.imgflip.com/35abec.jpg

API stands for “application programming interface,” but I suspect that spelling it out doesn’t help some of our readers understand what an API actually is. The easiest way to explain an API is to simply rearrange the letters a bit.

Simply put, an API helps you Interface with an Application using Programming. In other words, it’s one way that software developers can use their own code to control another piece of software.

A full explanation of an API is beyond the scope of this post, but if you would like to learn more about REST API’s, check out this REST API tutorial.

Introducing Unifi’s Content Management API

Now think back to one question that was presented earlier in this post. If you needed to add a parameter to 1,000 families in batch, leveraging some sort of an API would be the most efficient way to handle this task.

Luckily for our users, we’ve launched our Content Management API which provides read/write access to their entire content library simply by using simple textual requests formatted in JSON. With this API, users will have the ability to access their content data and even manage the parameters within their Revit families.

Best of all, since you’re using a REST API, these batches of changes will be handled in the cloud, rather than on your local machine.

Get to the (end)point.

Our latest API documentation is posted at apidocs.unifilabs.com. Here, you will find detailed descriptions of our API endpoints, complete with sample code for requests and responses. Let’s cover just a few operations for the /batch endpoint that are designed to help you manage your Revit family parameter data at scale.

CreateParameter

This operation will add a Revit parameter to a Revit family in your libraries. By simply specifying a few required properties to the body of your request, you have the ability to add a parameter to your Revit families in the cloud.

{  "type": "object",
  "properties": {
    "ObjectId": {
      "description": "The ID of the File to modify. The modification will be to the currently active revision of the file.",
      "type": "string"
    },
    "RevitYear": {
      "description": "Revit year of the version to update.",
      "type": "integer"
    },
    "Operation": {
      "type": "string",
      "const": "CreateParameter"
    },
    "Name": {
      "description": "Parameter Name, must meet all Revit requirements.",
      "type": "string"
    },
    "Guid": {
      "description": "Shared parameter GUID value.",
      "type": "string"
    },
    "ReplaceParameter": {
      "description": "If true or omitted, and the family contains a parameter of the same name, it will be replaced with the new parameter. If false and the family contains a parameter of the same name, the operation will fail.",
      "type": "boolean",
      "default": true
    },
    "InstanceParameter": {
      "description": "If true, the parameter will be an instance parameter. If false or omitted, it will be a family parameter.",
      "type": "boolean",
      "default": true
    },
    "Type": {
      "description": "Data type of parameter, exactly as it would appear in a Revit shared parameter file.",
      "type": "string"
    },
    "Group": {
      "description": "The name of the parameter group in which this parameter will appear in Revit, exactly as displayed in Revit. Defaults to Other unless ReplaceParameter is true and there is an existing parameter of the same name that is being replaced, in which case the group of that parameter will be used.",
      "type": "string"
    },
    "Value": {
      "description": "A standard Revit value string, which may include unit indicators as acceptable to Revit. If the value starts with an = sign, the parameter's formula will be set to the value after the =, otherwise the parameter's value is set. If this is an instance parameter, this sets the default value of the parameter. If Value does not start with =, the family uses a type catalog, and the affected parameter appears in the type catalog, all values for this parameter in the type catalog will be set to Value.",
      "type": "string"
    }
  },
  "required": ["Guid", "Name", "ObjectId", "Operation", "RevitYear", "Type"],
  "additionalProperties": false
}

DeleteParameter

This operation removes a parameter from a Revit family. Note that you’ll need to specify the required properties as noted in the code snippet below.

Again, additional information is available in more detail at apidocs.unifilabs.com.

{  "type": "object",

  "properties": {

    "ObjectId": {

      "description": "The ID of the File to modify. The modification will be to the currently active revision of the file.",

      "type": "string"

    },

    "RevitYear": {

      "description": "Revit year of the version to update.",

      "type": "integer"

    },

    "Operation": {

      "type": "string",

      "const": "DeleteParameter"

    },

    "Name": {

      "description": "Name of parameter to delete. May be a family parameter.",

      "type": "string"

    },

    "Guid": {

      "description": "GUID of shared parameter to delete.",

      "type": "string"

    }

  },

  "required": ["Guid", "Name", "ObjectId", "Operation", "RevitYear"],

  "additionalProperties": false

}

SetValue

This operation sets the value of an existing parameter in a Revit family.

{

  "type": "object",

  "properties": {

    "ObjectId": {

      "description": "The ID of the File to modify. The modification will be to the currently active revision of the file.",

      "type": "string"

    },

    "RevitYear": {

      "description": "Revit year of the version to update.",

      "type": "integer"

    },

    "Operation": {

      "type": "string",

      "const": "SetValue"

    },

    "ExistingName": {

      "description": "Parameter name.",

      "type": "string"

    },

    "ExistingGuid": {

      "description": "Shared parameter GUID value.",

      "type": "string"

    },

    "Value": {

      "description": "A standard Revit value string, which may include unit indicators as acceptable to Revit. If the value starts with an = sign, the parameter's formula will be set to the value after the =, otherwise the parameter's value is set. If this is an instance parameter, this sets the default value of the parameter. If Value does not start with =, the family uses a type catalog, and the affected parameter appears in the type catalog, all values for this parameter in the type catalog will be set to Value.",

      "type": "string"

    }

  },

  "required": ["Guid", "Name", "ObjectId", "Operation", "RevitYear"],

  "additionalProperties": false

}

Do you have any ideas on what should be built with our API?

I have some side projects for sample applications (including some Zero Touch nodes for Dynamo). I’ve been cooking these up in preparation for the release of our API’s and I can’t wait to share them with you all.

Until my side projects are fully-baked, drop me a line in the comments below and let me know if you have an idea for an application that you’d like to see built. Better yet, let us know if you’ve already built something on our API. We want to hear from you!

Content Management API

Once upon a time…. each time users wanted to make changes to their Revit families in UNIFI, they were required to open each file in Revit, make changes to the data, then re-upload the files to UNIFI.

We’re pleased to announce that this time consuming and risky process is one of the past with the release of our Content Management API! 

Content Management API users can:

•Programmatically manage the data within your Revit families stored in the UNIFI cloud.

•Add, remove, and modify shared parameters and their values in batch.

•Ensure Revit families are up to date with your company’s standards and maintain consistency across your content library.

•And beyond! You can check out some of the awesome features on our blog post here. 

Are you ready to access the UNIFI Content Management API? It’s as easy as 1-2-3: 

1. Let us know you’re interested in accessing to the Content Management API by filling out the form below or contacting team UNIFI directly.

2. We’ll generate your API key and you’ll be able to view it in the settings tab of your UNIFI web portal.

3. Start using the Content Management API. Our API documentation includes everything you need to know to get rolling.

If you’re interested in learning more about our API’s capabilities, please click here.

Ready to Learn More?

Please fill out the following form and a UNIFI representative will get in touch!