Table of Contents

Class IfcStoreCache

Namespace
GeometryHelper.IfcConvert.Core
Assembly
GeometryHelper.IfcConvert.dll

Thread-safe in-memory cache and high-level reader for opened IFC models. Encapsulates the xBIM engine and provides pure GeometryHelper geometry APIs. Exposes zero xBIM types in its public and member interface to allow seamless assembly resolution.

public sealed class IfcStoreCache : IDisposable
Inheritance
IfcStoreCache
Implements
Inherited Members

Constructors

IfcStoreCache(string)

Initializes a new cache by opening the specified IFC file.

Properties

Count

Gets the number of products indexed in this store.

DefaultOptions

Gets or sets default conversion options for this cache instance.

DuplicateGlobalIds

Gets the GlobalIds that more than one product in the file uses. GlobalIds must be unique in IFC; when they are not, only the first product with the id can be reached by GUID-based queries.

FilePath

Gets the file path of the opened IFC model, if loaded from disk.

IsGlobalCached

Gets or sets whether this cache instance is managed in the global static cache.

IsInMemory

Gets whether the file was read whole into memory. xBIM keeps a large file in a database on disk instead (a 114 MB one, for one) and reads it as it is asked.

OriginalLengthUnit

Gets the original length unit name reported by the IFC model (e.g. METRE, MILLIMETRE).

ProductCount

Gets the number of products indexed in this store.

SchemaVersion

Gets the schema version of the opened IFC store (e.g. IFC2X3, IFC4).

Methods

ClearGlobalCache()

Clears all globally cached stores and disposes their underlying resources.

ClearGlobalCache(string)

Clears and disposes a specific file from the global cache.

Dispose()

Releases resources and closes the underlying store if not globally cached.

EnumerateGeometries(IfcConvertOptions)

Lazily enumerates converted IfcProductGeometry instances across the model, minimizing memory usage for large files.

EnumerateSolids(IfcConvertOptions)

Lazily enumerates converted GeoSolid3 bodies across the model.

GetAllGeometries(IfcConvertOptions)

Converts every product across the model and returns them all at once: the ones EnumerateGeometries(IfcConvertOptions) gives, in the same order.

GetAllSolids(IfcConvertOptions)

Converts and returns all GeoSolid3 bodies present in the entire IFC model, product by product in the order EnumerateSolids(IfcConvertOptions) gives them, and on every core at once as GetAllGeometries(IfcConvertOptions) converts them.

GetGeometriesByType(string, IfcConvertOptions)

Retrieves complete IfcProductGeometry representations for products of a specific IFC type.

GetGeometry(string, IfcConvertOptions)

Retrieves the complete IfcProductGeometry (including closed solids, open surfaces, and metadata) by GlobalId.

GetGlobalCacheInfo()

Gets diagnostic information about all currently cached IFC stores.

GetOrCreate(string)

Gets an existing cached store for the given file path, or creates and caches a new one.

GetProductCatalog()

Retrieves a lightweight catalog of product metadata (GUID, Name, Type, Tag) without converting 3D geometry.

GetProperties(string)

Retrieves all IFC property sets and quantity sets for a product by its GlobalId. Returns an empty dictionary if the product is not found or has no property sets.

GetProperty(string, string, string)

Retrieves a single property value from a named property set. Returns null if the product, property set, or property is not found.

GetSolid(string, IfcConvertOptions)

Retrieves a single GeoSolid3 by product GlobalId (GUID). If the product contains multiple solids, returns the largest body by volume. Returns null if not found or if the product has no closed solid representation.

GetSolids(string, IfcConvertOptions)

Retrieves all GeoSolid3 bodies belonging to a product by its GlobalId (GUID). Returns an empty list if not found or if the product has no closed solid representation.

GetSolidsByType(string, IfcConvertOptions)

Retrieves all GeoSolid3 bodies for products of a specific IFC type (e.g. "IfcWall", "IfcBeam", "Wall").

Open(string, IfcConvertOptions)

Opens an IFC file and initializes a new IfcStoreCache.