Skip to main content

About Classification and Properties in BIM

Introduction

When Manufacturers create custom objects for use in BIM software, they often want to embed as much relevant information as possible into the objects. In BIM-software such as ARCHICAD or Revit, you can do this fairly easy: ARCHICAD supports Custom Properties and Revit has Project or Shared Parameters. The basic concept is more or less the same: you define a property set and individual properties inside the set, with a data type and possibly default value.

To make these properties available for the user to enter, you can attach them to an element category (like wall, slab, beam, window). So far so good...

The problem

However... a category applies to ALL instances of elements of that category. Every single element will gain the properties assigned to the element category. So if you start loading manufacturer objects for e.g. doors, every single door will gain these new properties... even those for which this is not relevant.

Managing Properties inside Autodesk Revit

Here is an example of a property arriving from a custom family loaded inside Revit. Wienerberger added the Shared Parameter "Wienerberger Code" and linked it to the Walls category.

Revit Shared Parameter > linked to Category

As a result, every single wall in the project will all-of-a-sudden gain the "Wienerberger Code" parameter, if you like it or not. We already heard end users complain that they don't want huge lists of properties from manufacturers, as they permeate in different places and make the selection lists enormous.

Here is an example of a System family, which receives custom parameters from a manufacturer.
Revit System Family Paramaters

As you can see, Brick Dimension, Brick Height and Brick Width are visible. These are now available for every single Wall in the project! And they aren't even related to the Wall, but are actually parameters related to the material.

The only exception are Family parameters, as they can be limited to the family in question. However, in that case, you are not able to schedule them, which defeats the purpose quiet a bit.

We know that inside the Revit API, it is possible to add new fields to materials, but as "Material" is only a single category, every single material in the project will get this field.

Inside ARCHICAD 21

ARCHICAD 21 introduced a new classification system in release 21 and this allows users to limit the properties to a specific classification value. Only the elements or zones with that particular assigned classification value will receive these properties.

This makes a huge difference. Here is an example from the default AC21 template:
ARCHICAD 21 Classification with available properties

You can see that in this case, the properties are attached to the "Footing" classification. At first sight, this is not different from ARCHICAD 20, which had one single default classification available (visible inside the Property Manager).

But now you can create NEW classification systems and organise your properties alongside.

Two limitations:

  • You can have as many classification systems as you like, but each element or zone can only receive one classification value per system.
  • Classifications only exist on the level of an Element (wall, slab, door, morph, ...) or Zone (the equivalent of IfcSpace). There is no way (yet) to attach classifications or properties to materials, composites, profiles or other attributes.

Conclusion

To help users, parameters should be generic and have generic naming. "Manufacture" or "Product Page" are usable names. But "Concrete_Class" is not, as this will permeate to elements who are not made of concrete.
And if the limitations of your software hinder you, speak to your resellers or on forums. Software companies are still learning about BIM and its use in practice.

Comments

Popular posts from this blog

Improve usage of BIM during early design phases

When I was collecting ideas for a book chapter on BIM (that seemed to never have emerged after that), I collected 10 ideas, which I believe still reflect good recommendations to improve the usage of BIM during the early design phases. These ideas are related to BIM software, but you can apply them in any flavor, as long as you can model with Building Elements, Spaces and have control over representation. Introduction This article gives an overview of several recommendations and tips, to better apply BIM applications and BIM methodologies, in the context of the early design phases. Many of these tips are applicable in any BIM application and they are based on experience gathered from teaching, researching and using BIM software. Sometimes they could help software developers to improve the workflow of their particular BIM implementation. Tip 1 : Gradually increase the amount of information In the early design phases, the architect makes assumptions and lays out the main design in...

Getting BIM data into Unity (Part 0 - Introduction)

This post reflects on work that I carried out, elaborated during my guidance of a few Master thesis students, to better integrate BIM models into Unity. This will be a multi-part post. This makes each article a bit shorter to read, but allows more in-depth information overall. Hope you like it. Please comment with feedback and further improvements. Basic methodology Unity can import geometry from FBX and Collada (DAE) files primarily. There are a few other formats, but these are the preferred ones. When integrating CAD or BIM files into a realtime environment, you have to convert the geometry. During my Unity teaching and the writing of the book Unity for Architectural Visualization ( buy from Packt ), I’ve come up with a basic diagram explaining geometry exchange between CAD and BIM software and Unity. Throughout these posts, we’ll go more into detail. We start with ArchiCAD, but will tackle Revit in a follow-up post. Promised!

PythonOCC : Open Source interactive CAD shell (and how to run it on OSX)

What is PythonOCC? PythonOCC is an Open Source (LGPL) Python-wrapper for OpenCASCADE. So what is OpenCASCADE (OCC)? This is an advanced Open Source (custom license) modeling kernel, comparable to commercial engines, such as ACIS or Parasolid, which are used in quite some commercial CAD programs. When you want to develop CAD software, you could use OCC and write programs in C++. And why using Python? With this wrapper, you can create CAD and geometry scripts in Python, which is an interpreted Object-oriented scripting language. You can write almost "on-the-fly" and seriously reduce the implementation effort, by skipping the compiling-phase. You can even interact with a running program in the Python interpreter. Want to read more about this? The OpenCASCADE official website  (currently Linux and Windows are officially supported) The PythonOCC website/blog  (beware that the core of the actions happen in the development repositories). So far so good. Now the nasty, techn...