Wednesday, 9 October 2013

Parametric IFC

There's been a few private and public discussions about Parametric IFC and IFC for Content.  As a prelude refer to and perhaps we need a twitter hash tag?
Manufacturers and suppliers are caught in a difficult situation at the moment about generating BIM data and leveraging the best value (and success) in doing so.

There is obviously a cost in preparation and there is little choice at the moment but to either generate pick which BIM software that native content can be created for or generate IFC as neutral data.  Budget, time and expertise constraints make it highly unlikely anyone will author native content for all BIM software (and is a lot of duplicated effort).  Current BIM software capability with IFC is presently leads to a lot of frustration and poor performance, but I don't think it has to be that way and will try to convey that with this blog post.

Let's start with the cistern family that Martijn refers too.  You can download this as an IFC file or Revit Family from
Martijn comments that the IFC file has 2640 lines of IFC to define it (actually the version I just downloaded has 2118).  The authors at National BIM Library have used the faceted brep  shape representation to define the geometry which is pretty typical of IFC files to date.  The geometry is effectively meshed into planar faces.  When you do this, you loose the parametric and intelligent aspects of the geometry (ie, if I want to now make the flush pipe change diameter, it's a near impossible task to relocate all the vertex accurately into the new positions.  Perhaps some manufacturers/suppliers prefer this as it means the content is "protected" but it does come at a cost.

I haven't sought permission to "edit" this file (if someone has a problem, let me know), but I substituted the geometry for extruded area solids and swept disk solids which retain parametric geometry.  You can download this IFC file here.  By replacing the shape representations with more intelligent and accurate shape representations I reduced the file to 357 lines of IFC of which a lot are property values.  If you've had bloated IFC files gigabytes in size, a lot of this can be attributed to meshed hand rails and the like (Please request to your BIM  software developers to implement and utilize swept disk solids).  I actually did simply the shape of the cistern a little, not because IFC isn't capable, but because certification requirements of IFC software do not require the implementation of IfcExtrudedAreaSolidTapered which would more accurately and efficiently the tapered cistern.  This would have added about 30 more lines to the IFC file (and I can post if requested).

Now, here's where using IFC gets frustrating.  We have this more intelligent and accurate IFC file, and it doesn't work very well in trying to use it.  I tried all the IFC software I have to hand, Revit, Archicad, Tekla Bimsight, DDS Viewer, Solibri, Constructivity and all of them displayed non or only the cistern part of the geometry.  I put this file through the Building Smart verification tool which indicates only inherited errors (that didn't prevent the original file being used).  The fact none opened the file suggests it might be a problem with the file and I will be most grateful to anyone that can identify this (maybe it's my curve parameterization, I'm aware that my IFC is not yet perfect).  You can of course test the file with my rhino3d importer.

Now if you wanted to change the geometric diameter of the pipe, you could open the ifc file in a text editor like Notepad, and set line
#3674= IFCSWEPTDISKSOLID(#3675,15.0,$,0.0,94.0000000000002);
to something like
#3674= IFCSWEPTDISKSOLID(#3675,40.0,$,0.0,94.0000000000002);

Download the revised file here.  In one quick step I changed the 2nd field for radius from 15mm (30mm diam) to 40mm (80mm diameter).

Now, what we really want to do is drive content as we can in Revit (and I understand, GDL in Archicad) from parameters.

An IFC pipe segment (or type) can have a  property value stored in the common property set for "Nominal Diameter"  What would be nice is to change this value (akin to changing a parameter on the family in Revit) and have the geometry and any calculated values update to this change.
IFC as presently defined does not have this capability, but there is a very interesting proposed extension for IFC to do just that.  I don't know any software that has implemented it (really users are going to have to demand it) and I thought I'd implement file exporting to demonstrate it.

Download the IFC file here.

So if you read the IFC, you see I've bound the property single value to the circle hollow profile def radius, with a formula to adjust by a factor of 0.5 (to adjust from diameter to radius).  It would be possible to define formula relationships and the like (akin to Revit and to my knowledge GDL) and have them converted from the IFC file into the native equivalents.  (Grasshopper definition if you want to test, the components are hidden from the menu at this stage).

So, if the industry wants to generate more intelligent model content, and use it in a wider variety of software and contexts, it would seem a good idea to get on and implement (and improve) this extension.  Note also this extension can provide provision for constraint relationships.

To quickly address the comment from Martijn about "IFC is meant for Projects), this is perception rather than technical intention (Refer definition of IfcProject here). IFC4 does improve this situation, where a project can declare "types" without populating an instance of this in space.

I state all the time, IFC isn't perfect.  But it is capable of a lot more than implementation demonstrates at this point in time.  And before we can really work on improving it, we really need to be able to test and utilize what it is already capable of to identify improvements and shortfalls.  I look forward to discussing further.


  1. Very well thought out post. You provide not only a possible solution, within IFC, but also point (rightly) to the current inherent limitations of current IFC 2x3 implementations. It'll take a while before current BIM tools support IFC 4 and then we'll have to wait even longer for the parametrics that might be added later (revised IFC4 or more probably IFC5)

    1. Hi Stefan,

      Thanks for the comment, totally agree. I just think we'll wait even longer if no one is aware it's possible. The more demand we can drive for intelligent IFC, the sooner it will happen.

  2. This comment has been removed by the author.

  3. Jon, regarding the problem you described in your fifth paragraph, note that the link "swept disk solids" in the first sentence of your fourth paragraph states the following condition for swept disk solids:

    "In case of an arc segment forming part of the Directrix, its radius shall be greater then the disk Radius"

    In your example, the radius of the circle being swept was set to 50.0, which is equal to the radius of the arc in the sweep path. So the pipe in your IFC file is not valid according to the IFC criteria for swept disk solids. This presumably explains why the tools you used did you construct the pipe. Of course, it would be nice if they provided an error message clearly explaining the failure (maybe some of them did).

    Note that a radius of 50.0 for the circular profile of the sweep is a borderline case: any larger radius would result in the pipe intersecting itself. With a radius equal to 50.0, the pipe "pinches" itself on the inside of the turn, which is an undesirable condition in many situations. You can try setting the radius to a value slightly less than 50.0 (say, 49.9) and see which of the tools construct the pipe successfully. You can also try using a radius for the swept circle that is considerably larger than 50.0 (say, 60.0) to see if any of the tools give an error message explaining the problem.

    John Mitchell
    Autodesk, Inc.

    1. Hi John,

      Thanks for the comment. You are right, I perhaps should have in my example made the radius of the flush pipe smaller (or not so large) than the original 30mm diameter. But I didn't actually test "modified" file opening in any of the software, I was testing with the acceptable 30mm diameter which does have an acceptable bend radius. Subsequently to posting I did correct the composite curve parameterization.
      I'd be grateful if anyone can advise on what I might fix to get this opening in any other viewer or editor. No error messages or warning from any of them, just empty (or partial) geometry.

      Thanks, Jon

    2. Hi Jon,

      I'm not sure which IFC file you're having trouble with. Changing the radius of the swept circle from 15.0 to 30.0 should work fine if nothing else is changed. Any radius less than 50.0 (= the radius of the arc in the sweep path) should work, although values very close to 50.0 may cause trouble.

    3. Sorry, I forgot to add my name to my posting dated 11 October 2013 3:35 pm.

      John Mitchell
      Autodesk, Inc.

    4. The file I'm referring to is this one.
      If you do have any suggestions on fixes to make it successfully open, I'm glad to hear. I will try emailing some of the other software companies and see if they comment. Cheers, Jon

    5. Jon, I used Revit's Open > IFC to open the IFC file you mentioned, from a new Revit project, and it opened without problems. The drain pipes appeared as expected. I was using a development build of Revit, so your version of Revit may be different (I'm a developer, not a customer support person).

      I'm sure Angel Velez will be able to help you after he's back from the business meetings he's attending.

    6. Hi John, Yes, Angel had mentioned in previous email correspondence that this shape representation had been enabled in recent work. Great news that this file would now work, thanks for sharing.

  4. בכושר, פורטל הכושר בישראל מא
    פשר כניסה פשוטה לרב מכוני הכושר
    ושעורי הכושר בישראל כמו גם יוגה אומנויות לחימה ומאמני כו
    דר אישיים מצא חדר כושר, שעור
    או מאמן בסביבתך, קרא ביקורות, רכוש כרטיס כניסה חד פעמי א
    ו מנוי חודשי, הרשם לשעור או קבע פגישה
    עם מאמן כל זאת מבלי להרים טלפון הישר מהמחשב



    מרכז כושר






  5. I just think we'll wait even longer if no one is aware it's possible.
    Development Services

  6. I havent any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us.

    Refurbished Laptops & Laptop Distributor

  7. Interesting blog. This is one of my favorite blog also I want you to update more post like this. Thanks for sharing this article.
    fitness centers in chennai

  8. This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keeponsharing more...good luck.Marble India

  9. This is also a very good post which I really enjoy reading. It is not everyday that I have the possibility to see something like holidays packages

  10. Gym Management Software with Membership Renewal, Pending Payment & Follow-ups Alerts. We provide Affordable & Quick gym software at just 15000.

    Gym Software
    Gym Management Software
    Software For Gym
    Club Software
    Free Gym Software