Skip to content

ifc-georef ​

Georeferencing: map conversion, coordinate reference systems, site placement.

StatusPartial
Latest release0.4.0 (2026-09-29)
Registriescrates.io ifc-georef
Via the facadeopenbim-ifc feature georef
API documentationrustdoc · docs.rs
Sourcecrates/ifc-georef/

Overview ​

IFC project-to-map coordinate operations.

This crate resolves IFC references, units, axis defaults, and CRS metadata, then emits a format-neutral axiolid_core::Transform3. It does not place products, reproject coordinates, or select a geometry backend.

Depends on ​

Changes ​

Latest release, 0.4.0 (2026-09-29):

Added ​

  • ProjectedCrs.well_known_text: the OGC WKT literal of the one IFC4X3 IfcWellKnownText defining the CRS, verbatim (#142).
  • GeorefError::RuleViolation { entity, rule } for a schema WHERE rule or inverse cardinality a record breaks.

Changed (breaking) ​

  • ProjectedCrs.name is Option<String> (#142). IFC4X3 declares IfcCoordinateReferenceSystem.Name : OPTIONAL IfcLabel with WHERE NameOrWKT : (HIINDEX(WellKnownText) = 1) OR EXISTS(Name): under an IFC4X3 header an unnamed CRS defined by exactly one IfcWellKnownText now reads, one with neither is refused with the new GeorefError::RuleViolation { rule: "NameOrWKT" }, and two definitions for one CRS (the inverse is SET [0:1]) are refused too. IFC4, or a missing or ambiguous header, keeps requiring the name (MissingAttribute), so name is always Some there. Migrate with crs.name.as_deref().
  • The authoring drafts ProjectedCrsDraft, GeographicCrsDraft and MapConversionDraft are #[non_exhaustive]: build them with ProjectedCrsDraft::new(name), GeographicCrsDraft::new() or MapConversionDraft::new(source_crs, target_crs, eastings, northings, orthogonal_height) and a setter named after each optional field (.map_unit(unit), .x_axis((abscissa, ordinate)), .scale(s)). Fields stay public.
  • The read-side ProjectToMap and ProjectedCrs are #[non_exhaustive]; they can no longer be built with a struct literal outside the crate.

Changed ​

  • Depends on ifc-schema with its default features named explicitly (every bundled release), now that the workspace dependency turns them off for the facade's per-release features (#112).
  • A model whose header declares IFC4X1 or IFC4X2 is refused with the existing unsupported-schema error. ifc-schema now bundles both releases, but no layout here is verified against them, so they are never read as IFC4 or IFC4X3.

Full history: crates/ifc-georef/CHANGELOG.md

Released under the AGPL-3.0-or-later licence. ISO and CEN standards material is not redistributed.