Skip to content

Openings in IFC

Windows and doors are missing from a plain SketchUp IFC export. Not incomplete — absent.

SketchUp’s exporter skips anything nested inside another classified object. In Archeform a window’s frame and glazing live inside the wall group, so they are exactly that.

They look present in 3D because they are part of the wall’s mesh. Open the file in a viewer, look at the object tree, and there are no windows in it.

Skylights are the exception — they sit on the roof as their own groups, so they come through.

Plugins → Archeform → Add Windows/Doors to IFC…, on the exported file.

The dialog offers openings as well; see below.

Window and door elements with their own tessellated geometry, placed in the same coordinate system as the wall they belong to, and added to the containment relation of the right storey — so they appear in the tree under their floor.

Property setsPset_WindowCommon and Pset_DoorCommon, filled from the opening’s dialog:

Field IFC property
U-value ThermalTransmittance, with the correct measure type
Acoustic rating AcousticRating
Fire rating FireRating
Status Status
Reference Reference

PredefinedType and the overall width and height come from the geometry.

Optional, ticked in the dialog:

Entity What it does
IfcOpeningElement the hole, as a solid built from the opening’s real outline
IfcRelVoidsElement wall → opening
IfcRelFillsElement opening → window or door

The outline is the actual shape, so an arched window gets an arched opening rather than a bounding box.

There was a worry that adding a void to a wall whose mesh already has the hole cut would make viewers subtract it twice. Tested — it does not happen; the walls look correct.

Each fill gets a GlobalId derived from its opening’s internal id.

An earlier version derived it from the fill’s name, and since fills are named by type, every window of the same size got the same identifier — a viewer treated them as one object. The export now also reports any duplicate identifiers it finds after writing, as a safety net.

Not possible. The command writes a marker into the file and refuses a second time, because a second pass would duplicate every element. A .bak is kept.