Skip to content
Home » CAD layers in IFC

CAD layers in IFC

  • by

While browsing through the IFC documentation – yes, I sometimes do that for fun – I one day stumbled over a concept that not many would relate to BIM: layers (like, you know, we used to use in the CAD era). A relic or possible connection to our existing dxf drawings?

In any case, let’s see how this works in IFC.

If you define a shape for your element – e.g. a cylinder for a round column – you always do that in a geometric context. That’s simply a way to organize your different shapes (axis, footprint, bounding box, body,…). See my earlier post here to read a bit more about this concept.

Now, you can assign a layer (using IfcPresentationLayerAssignment) to each shape. You can use different ones for footprint, body, axis, etc. This (of course!) is optional. If your shape consists of multiple forms like two boxes, multiple lines etc. you can also assign different layers to each of those (this would override a more general shape assignment).

So basically you create a layer and reference all the objects you want to include in it. There’s also a subtype where you can define layer properties like

  • curve style (color, width, model/draughting and curve font – dashed, dotted and many more)fill style (hatching, tiling)s
  • surface style (for rendering, that includes shading color, texture information, lighting properties and much more)
  • text style (model and drafting text, including color, fonts and much more).

Essentially there is everything you need to work with IFC – natively! – in a CAD environment. Isn’t this kind of cool? Old-fashioned, but sometimes sufficient to get the job done.

BIM is about object oriented planning. And IFC does its job supporting a low entry point to start with. Unfortunately this is once again not widely adopted by CAD programs, although it could prolong their usage during the transition to a full 3D AEC industry (if that will eventually become a reality).

Leave a Reply

Your email address will not be published. Required fields are marked *