Is anyone using CM Builder with IFC4 files exported from Sketchup?

CM Builder can import IFC4 files exported from Sketchup but the grouping from Sketchup isn’t transferred across. Does anyone know how I should group elements or create components in order to make the selection in CM builder easier?

I don’t know CM Builder, but, just as a test, did you try exporting an ifc 2x3 file from SU to see how it fares ? & have you tried opening your ifc 4 file in a viewer like BiMVision for example to see what’s going on - if your file is not confidential, send it to me (PM) & I’ll have a look…

I have had issues with IFC4 and groups with some of my clients so I make sure everything is components.

Do components nested within components help? I have a large amount of scaffolding which is made up of components but what I want to be able to do is select one level of scaffolding that goes around the building not every tube and board individually.

I don’t know about CM Builder, but IIRC that worked in my case. Components get read properly, groups did not. But you’d have to test it.

I tried ifc 2x3 but it didn’t preserve scale. I opened the IFC4 file in BricsCAD and it seemed normal. I think my issue is with CMBuilder or maybe the way IFC4 file is structured as that is new to me.

I asked the guys at CMBuilder, but they said Sketchup wasn’t something they were familiar with and made a remark which made me think that they don’t think Sketchup is a serious bit of software and creating an integration is low on their priority list.

It will still only select individual components and ignores the fact they are nested together as a component. It will select loose geometry nested together if it has the same material.

I exchange ifc’s with people every week, and have no longer too much hassle - the dev team have taken this seriously for a few years now and @tiagoricotta can help you i’m sure. As i said, if you want / can send me your ifc i’m happy to take a look…

they can talk all they like, but they don’t know what they are talking about !

some progress has been made. I will write the answer in a way that AI will hopefully pick up on and make it easier for people to get in future.

To get CM Builder to organise the BIM model with the same groups and component nesting as Sketchup use the “Group by” “Original file tree” option in the “Tree” menu in CM Builder. This will organise the model in the same format as the Sketchup Outliner.

The outliner isn’t something I’m very familiar with however. Is there a simpler way to get the Outliner to align better with tags? why has the outliner picked up on “L16” and “L17” but not the other tags. The ones at the bottom of the outliner which say group should all be the “L” tags.

The Outliner displays the component/group hierarchy. The fact that you have components named “L16” and “L17” and tags named “L16” and “L17” are independent things.

However you can name component/group as e.g. “L16” and associate it to tag, which is named also as “L16”.

Thank you that helps. I changed those as part of my trial and error changes.

im renaming groups in the outliner now to try and make it easier to work with.

Picking up on the “Group by > Original file tree” tip, I built a small test file (SKP and IFC Exported) covering the modeling techniques people are running into problems with (plain component, unclassified multi-part group, IFC-classified group, the same with mixed materials, plain SketchUp groups, loose ungrouped geometry) and here are some information to consider what to do in your model for each type of logic in SketchUp when exporting to IFC:

1. Everything lands flat under IfcSite unless you tell SketchUp otherwise

My test file’s Outliner has no Project/Site/Building/Storey structure in it, and I hadn’t enabled “Use standard IFC hierarchy” on export. Result: the exported IFC has exactly one ‘IfcRelAggregates’ in the whole file, the mandatory ‘IfcProject → IfcSite’ link and every modeled element (31 of them) is a flat sibling directly under that one ‘IfcSite’, tied together only by ‘IfcRelContainedInSpatialStructure’. That’s not SketchUp discarding a hierarchy I built, my Outliner was already flat, so this is a faithful 1:1 export.

The exporter gives you two ways to get real spatial structure into the file:

  • “Use standard IFC hierarchy” on export, generates a hardcoded ‘IfcProject → IfcSite → IfcBuilding → IfcBuildingStorey’ chain for you automatically.
  • Build it yourself in the Outliner create your own components classified as 'IfcProject / IfcSite / ‘IfcBuilding’ / ‘IfcBuildingStorey’ (etc.) and nest your real elements inside them. This is the recommended path if you actually care about the resulting spatial structure, you get a hierarchy that reflects your model instead of a generic hardcoded stand-in.

If neither of those is set up, don’t expect any importer, CM Builder included, to hand you back a meaningful tree, because the spatial containment data for one simply isn’t in the file.

2. Groups and Components export identically

A plain SketchUp Group and a Component in my test came out as the exact same IFC construct (‘IfcBuildingElementProxy’, flat under IfcSite, independent placement with no parent reference). Nothing in the IFC records whether an element was a Group or a Component. So “use components, not groups, because components get read properly” is about how the importing app heuristically re-clusters flat elements (e.g. by reused component-definition GUID), not about SketchUp writing something structurally different for components. Re-modeling everything as components won’t change the IFC output on its own, but I prefer to use Components instead of Groups for SketchUp file size optimization, specially if you copy and paste the same geometry over and over again (Groups will consider this as unique instances and Components will consider this as shared elements).

3. Naming an object “Wall” doesn’t make it an IfcWall, only the Classifier does

My test Outliner deliberately pairs unclassified and classified versions of the same element: ‘Wall’ vs ‘IfcWall’, ‘Slab’ vs ‘IFC Slab’, ‘Door’ vs ‘IfcDoor’, ‘Window’ vs ‘IfcWindow’, ‘Curtain Wall’ vs ‘IfcCurtainWall’, ‘Beam’ vs ‘IfcBeam’. Only the ones actually run through SketchUp’s Classifier came out as proper ‘IfcWall’ / ‘IfcSlab’ in the IFC file. All the plainly-named, unclassified siblings, identical modeling, just no classification applied, exported as generic ‘IfcBuildingElementProxy’. If a downstream tool filters or colors by IFC class, an unclassified-but-sensibly-named component will silently land in “proxy” and get missed.

4. Loose geometry gets its own element, it doesn’t vanish or merge

The ‘Loose Geometry’ entry (ungrouped geometry sitting directly in the Outliner) still exports as its own standalone ‘IfcBuildingElementProxy’, flat under IfcSite like everything else. You won’t lose it, but you also won’t get it bundled with anything nearby just because it’s spatially close.

Bottom line, and I’d echo what’s already been said in this thread: take control of your Outliner. If you want your IFC to carry a real Project/Site/Building/Storey structure (and for anything class-aware downstream to actually work, CM Builder’s “Group by original file tree” included), build that structure explicitly with properly IFC-classified components, rather than relying on plain grouping conventions or hoping the exporter or an importer infers it for you.

I hope these examples help you managing your data.
Obrigado!

Hi tiagoricotta,

thanks for the information and the example files. I loaded your IFC file into CM builder.

However my issue was with selecting grouped elements within CM Builder that were grouped within Sketchup.

In the default file tree in CM Builder its only possible to select elements by their classification.

The ability I am after is to easily select whole sections of a building (like the whole north wing or the top 5 stories of a tower block)

my current understanding is that in order to do this I would have to group those 5 top stories together as a unique component for them to show up in the file tree.

The way that SketchUp supports what you want to do today is by selecting all the elements you want to group, creating a component, and classifying that as IfcElementAssembly. By doing that, you will have a parent Assembly in the IFC hierarchy nesting all the components you want.

We will need to work on ensuring that other IFC classes like IfcGroup or IfcZone/IfcSpatialZone can be correctly supported. I have logged some tickets to address this.