IFC Export Multiple Storeys

Hi All,
I'm trying to export a conceptual structural layout for a building with multiple storeys using BlenderBim. The model was all produced within Blender. The Ground Floor exports fine but once I start adding more floors it brings up errors on export, similar to what I've attached.
I've all also attached a link to the Blend file below
Thanks in advance.


  • edited November 13

    This is just a fix from a Noob, I am sure @Moult @DADA_universe @Cyril and others will have a better fix
    The problem seems to be in naming/renaming the collection for the new storey. I was able to export both floors by creating a new project set up, then I copied your elements into my new collections (i.e., Collection 4 and IfcBuilding/My Building. 001).

    Hope this helps.

  • I confirm that it is a naming issue as @iosvarms said. Without creating a new project as described above. You can just rename the empty object which contains IfcBuildingStorey data from IfcBuildingStorey/ifcBuildingStorey/01 to IfcBuildingStorey/01.
    Storey collection and empty storey object needs to have the same name. This is apparently how relation between them is currently established.

  • @Cyril is correct - just rename it. The names must match.

  • edited November 14

    Sorry, I know you've explained it already somewher @Moult, but what purpose exactly does the empty object serve? Is it required/recommended/unnecessary to keep it? Is it simply a workaround to the problem that a collection is not an object, so to define all the ifc properties of storey, building etc. we need to have one empty object with a name identical to the collection name inside every collection? I'd like to clarify it on the wiki.

  • @JanF - there are three problems solved by this approach.

    The first issue is that IFC spatial elements (e.g. sites, buildings, elements) can store properties (attributes / psets / qtos / etc). In Blender, if you click on an object, you can see the object panel and manipulate it via the UI. However, in Blender if you click on a collection, there is no UI panel associated with the collection. So for convenience, an object is provided that people can click on. This is not the only solution - e.g. we can build our own UI panel elsewhere, but it is simply more convenient.

    The second issue is that IFC spatial elements almost always have a placement. E.g. a building storey has an elevation value (e.g. a Z coordinate). Blender collections do not have physical locations. Therefore, at the very least, an empty is required, so you can set the placement. Technically, we can work around this and let users set the location via UI fields in a panel, but I reckon moving around an empty is easier.

    The third issue is that IFC spatial elements may have representations. E.g. a building or site can actually have geometry associated with it. Therefore, we need an object. In this case, we need more than an empty - we need an actual mesh object.

    Making the empty name match the name of the collection is just my way of forcing users to be clean :) Theoretically we could choose one name to be the source of truth and ignore the other, but ... Also, it can get a little confusing especially when some software (I'm looking at you, Revit!) decides to export a ton of objects which aren't IfcSite as an IfcSite.

  • edited November 14

    As side note,
    doing so (sharing empty + collection names) in blender's unique name context may be hard to handle when you delete / recreate entity, as long as the entity remains in data in deleted state you can't recreate entity with same name.

  • edited November 16

    Thanks for all the replies, @Cyril that worked for me. The problem I'm encountering now is that it's the building hierarchy is not displaying correctly when IFC is opened using BIM Vision, please see images attached.

  • To follow up on my own issue. The resolution is that empties created to represent storeys must be created inside the designated storey collection. An existing storey empty can not be duplicated, renamed and placed inside another storey collection. I'm not sure that this is a bug or if there's a specific reason as to why it should be done this way.

  • Should be possible to do this way, as long as collection and hepler share the exact same name.

  • @stephen_l is correct. There is no reasonable difference between duplicating an existing empty and creating a new empty.

    This sounds like a bug in BIM Vision with how they seem to sort building storeys. They may be sorting by STEP ID, which may explain this behaviour. Maybe if you provided Z-values to your storeys, it may encourage BIM Vision to sort by elevation instead? Note that the set of building storeys is not "sorted" or "ordered" - there is no definition of which should come first or last. The viewing application makes an arbitrary sort. Maybe post a bug to BIM Vision?

  • @Moult, I've tried importing into other BIM software and have encountered the same problem so I don't think it's a BIM vision bug. I've attached and image from Navisworks as an example. You mentioned providing Z-values to the stories. How do I do that?

  • @CarpgianeDS said:
    @Moult, I've tried importing into other BIM software and have encountered the same problem so I don't think it's a BIM vision bug. I've attached and image from Navisworks as an example. You mentioned providing Z-values to the stories. How do I do that?

    The empty is just a regular Blender object. You can just grab it with gz or modify its coordinates like any blender object :

  • @Cyril Thanks, the Z transforms on the empties representing the storeys are all corrrect.

  • If they do not sort it by z value I wonder what parameter they use to sort it. oO

Sign In or Register to comment.