Skip to main content
net8.0.NETStandard2.0

Xbim's Information Delivery Specification format.

Published
Jun 25, 2026
3mo ago
Total Downloads
39.6K
39,585

Install

dotnet add package Xbim.InformationSpecifications --version 1.1.0-preview.13
ProductVersions
.NET
net8.0
.NET Standard
netstandard2.0

README

Xbim.InformationSpecifications

NuGet Build

Xbim.InformationSpecifications is a .NET library that implements the Information Delivery Specification (IDS) standard defined by buildingSMART International. It provides the core data model and import/export functionality needed to create, read, and write IDS documents for IFC-based building-model verification.

An interactive demo of the library's editing capabilities is available at xbim.it/xids.


Status

The library tracks the development of the buildingSMART IDS repository and is updated promptly when the standard changes.

The current release is v1.1.0-preview.


Features

  • IDS data model β€” full object model for the IDS standard (Xids, SpecificationsGroup, Specification, FacetGroup, and all IDS facets).
  • buildingSMART IDS import/export β€” read and write IDS XML files that conform to the buildingSMART schema.
  • Native JSON persistence β€” an additional JSON format for compact, human-readable storage.
  • All IDS facets are supported
    • IfcTypeFacet β€” clauses on IFC entity type and predefined type.
    • AttributeFacet β€” clauses on IFC attribute value.
    • IfcPropertyFacet β€” clauses on property set and property value.
    • IfcClassificationFacet β€” clauses on classification system and reference.
    • MaterialFacet β€” clauses on material name.
    • PartOfFacet β€” clauses on spatial/assembly containment relationships.
  • Extra facets are under test development
    • DocumentFacet β€” clauses on documents and their properties.
    • IfcRelationFacet β€” clauses across multiple selectors (facet groups).
  • Multi-target β€” targets netstandard2.0 and net8.0, (compatible with .NET Framework 4.6.1, .NET Core 2.0, .NET 8.0 and later)
  • Strong-named assembly β€” signed with the Xbim open-source key.

Note: Several helper utilities that originated in this library have since been promoted to the upstream ids-lib repository.


Installation

Install the package from NuGet:

dotnet add package Xbim.InformationSpecifications

Quick Start

Reading an IDS file

using Xbim.InformationSpecifications;

// Load an IDS XML file produced by any conformant tool
Xids? ids = Xids.ImportBuildingSmartIDS("path/to/file.ids");

foreach (var spec in ids!.AllSpecifications())
{
    Console.WriteLine(spec.Name);
}

Creating and exporting an IDS

using Xbim.InformationSpecifications;

var ids = new Xids();

// Create a specification targeting IFC4
var spec = ids.PrepareSpecification(IfcSchemaVersion.IFC4);
spec.Name = "Walls must have a fire rating";

// Add an applicability facet
var typeFacet = new IfcTypeFacet { IfcType = new ValueConstraint("IFCWALL") };
spec.Applicability!.Facets.Add(typeFacet);

// Add a requirement facet
var propFacet = new IfcPropertyFacet
{
    PropertySetName = new ValueConstraint("Pset_WallCommon"),
    PropertyName    = new ValueConstraint("FireRating"),
};
spec.Requirement!.Facets.Add(propFacet);

// Export to buildingSMART IDS XML
ids.ExportBuildingSmartIDS("output.ids");

Project Structure

Project Description
Xbim.InformationSpecifications Core library β€” data model, IO, and facet definitions
Xbim.InformationSpecifications.NewTests xUnit test suite

Key namespaces inside the core library:

Namespace / Folder Contents
Facets/buildingSMART All concrete IDS facet classes
IO XML and JSON import/export logic
Collections FacetGroup, FacetGroupRepository, SpecificationsGroup
Values Value constraint types (ValueConstraint, etc.)
Cardinality Cardinality / optionality types

Building from Source

Requirements: .NET 8 SDK and Git.

git clone https://github.com/CBenghi/Xbim.Xids.git
cd Xbim.Xids
dotnet build
dotnet test

The CI pipeline (GitHub Actions) runs on every push to main and preview and publishes a NuGet package automatically when a build on main succeeds.


Contributing

Contributions are welcome. Please open an issue or a pull request on GitHub. All pull requests trigger the CI build and test suite automatically.


Contact


Licence

This project is licensed under the CDDL-1.0 licence. See LICENSE.md for details.

Changes from Previous Version

No structural changes between v1.1.0-preview.12 and v1.1.0-preview.13.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.