IFC Model Optimisation (File Size Reduction)
Hypothetical (not so) scenario of Project Delivery model transition to Asset Information Model. FM Data is stored outside BIM while geometric representation of built / maintainable assets is required. GUID is bridging modelled object with asset data and all Project Delivery specific information and detail is no longer needed.
Test Key Statistics
- Fire Safety model with high degree of unnecessarily complex geometry
- Single IFC Model just shy of 600mb size after processing with Solibri IFC Optimizer
- Over 100k objects
- Psets deemed as redundant with reliance on key Attributes linking to external Data Base.

Initial IFC Review
Sheer file size of 600mb per IFC container alone will cause issues. Quick fix would be use of SimpleBIM's function to export IFC per Building Storey. For this exercise a more through approach is required.
Using ModulusBIM in-house BIManager Analytics tool to evaluate what can be optimised - large number of fittings with heavy poly count stand out as well as property sets that can be removed.

Complex Geometry Simplification
SimpleBIM Optimize Geometry tool provides various degrees of geometry simplification with significant polygon count reduction. For this test Box conversion was used for all geometry heavy objects e.g. sprinkler heads (IfcFlowTerminal):

Redundant Property Removal
Include / Exclude Properties tool aided quick exclusion of all Psets from IFC output, leaving only key object attributes including GUID needed for Database link.

Other Cleanup
Redundant Object Classes such as IfcFurniture:

Number of IfcBuildingElementProxy Classes found requiring Object Class mapping. SimpleBIM's Convert Objects tool fits the bill.
Redundant Building Storey. Moving few elements assigned to this storey to adjacent level with Move Objects to Building Storey.
SimpleBIM Dataflow Breakdown
BIManagers MCP connection to external AI agent came in hand to expand Dataflow files to include full list of Objects to be grouped into "to be removed" and "to be simplified" by copy pasting list of object types from Analysis panel.

Results


Conditioning was verified successful with 1 422 elements entirely removed removed. Sprinkler heads, valves and other complex geometry converted to boxes and all redundant properties removed:
- v1 → v2: 583.2MB → 400.4MB = 31.3% reduction (182.8MB saved)
- v2 → v3: 400.4MB → 377.5MB = 5.7% reduction (22.9MB saved)
- v1 → v3 (overall): 583.2MB → 377.5MB = 35.3% reduction (205.7MB saved)
Biggest gains were achieved in geometry simplification (v1 → v2), not property removal (v2 → v3). No surprise given property sets were not heavy to begin with while model contains over 100k objects
Using BIManager Comparison tool to summarise deltas between model revisions:

"The transition from version v1 to v3 resulted in the complete removal of 1,422 elements, specifically eliminating 1,174 plates, 233 building element proxies, 11 furnishing elements, and 4 flow controllers without adding any new object types. Structurally, this deletion significantly reduced the model's total element count from 101,876 to 100,454, indicating a substantial cleanup of specific fire protection components like pipes, fittings, and control devices. Architecturally, the changes are characterized by a mass purge of property set data; nearly all remaining elements had their manufacturer details, product categories, roughness values, lengths, and reference identifiers cleared to 'None'. This suggests a deliberate action to strip metadata from existing geometry rather than modifying physical dimensions or relocating components. Ultimately, the update appears to be a targeted deletion of specific asset classes accompanied by a reset of associated technical properties across the affected instances.
--- Q: Give an example of properties and property sets removed from a single object class. List IFC model size reduction by version. Example of Removed Properties (Single Object Class): For the IfcFlowSegment object (e.g., ID: 14137614), the following properties were cleared from 'None' to 'None':
- *Pset_ElementShading.Roughness: 0.04572 → None
- Pset_FlowSegmentPipeSegment.Length: 1289.99864218319 → None
- Pset_DistributionFlowElementCommon.Reference: '3DFIRE_CPL_TEE RZC' → None
- Pset_ProductRequirements.Category: 'Pipes' → None
- Pset_ManufacturerTypeInformation.Manufacturer: '3DFire' → None*"
Comments
2 comments
What a great real-life example!
Thank you
Great analysis! When we have small models reducing the model/file sizes is a ‘nice to have’, but with larger models it can decide if the models are usable at all.
Please sign in to leave a comment.