ifcpatch.recipes.RegenerateGlobalIds

Module Contents

class ifcpatch.recipes.RegenerateGlobalIds.Patcher(src: str, file: ifcopenshell.file, logger: logging.Logger, only_duplicates=False)

Regenerate GlobalIds in an IFC model

All root elements in an IFC model must be identified by a unique Global ID (also known as a GUID or UUID). Some proprietary BIM software do this incorrect (I know right), either by generating an invalid ID, creating duplicate IDs, generating IDs in a way that is not universally unique or as random as you might prefer (e.g. non-compliant with UUID v4).

This will regenerate new GlobalIds for the entire model.

Parameters:

only_duplicates (bool) – If set to True, new GlobalIds will only be generated for duplicate IDs. This is a safe thing to run to ensure IFCs are valid. If False, all GlobalIds will be regenerated.

Example:

# Regenerate all GlobalIds
ifcpatch.execute({"input": "input.ifc", "file": model, "recipe": "RegenerateGlobalIds", "arguments": []})

# Regenerate only duplicate GlobalIds
ifcpatch.execute({"input": "input.ifc", "file": model, "recipe": "RegenerateGlobalIds", "arguments": [True]})
patch()