![]() |
VOOZH | about |
dotnet add package Xbim.IDS.Validator.Core --version 1.0.187
NuGet\Install-Package Xbim.IDS.Validator.Core -Version 1.0.187
<PackageReference Include="Xbim.IDS.Validator.Core" Version="1.0.187" />
<PackageVersion Include="Xbim.IDS.Validator.Core" Version="1.0.187" />Directory.Packages.props
<PackageReference Include="Xbim.IDS.Validator.Core" />Project file
paket add Xbim.IDS.Validator.Core --version 1.0.187
#r "nuget: Xbim.IDS.Validator.Core, 1.0.187"
#:package Xbim.IDS.Validator.Core@1.0.187
#addin nuget:?package=Xbim.IDS.Validator.Core&version=1.0.187Install as a Cake Addin
#tool nuget:?package=Xbim.IDS.Validator.Core&version=1.0.187Install as a Cake Tool
Xbim.IDS.Validator is a .net (core & framework) library tht verifies IFC models against the official BuildingSMART Information Delivery Specification (IDS) standard.
Powered by xbim Tookit, this library can be used to translate IDS files into an executable specification, which can be run against any IFC2x3, IFC4 or IFC4.3 model and provide a detailed breakdown of the the test outcomes. It supports the latest full IDS1.0 specification and should fully support cloud and desktop applications across platforms.
An experimental extension adds support for validating COBie using IDS. See the for more info.
dotnet add package Xbim.IDS.Validator.Core
Building the solution is easy, which includes a fully functional Console application in the Xbim.IDS.Validator.Console project.
To integrate in your own application is also simple. Given an IDS file such as and an input IFC such as , a basic C# implementation might look like:
// during application startup/bootstrap:
IServiceCollection serviceCollection = new ServiceCollection();
serviceCollection.AddIdsValidation();
// Build service provider if not using DI
var provider = serviceCollection.BuildServiceProvider();
// Get IdsModelValidator from an IServiceProvider / or inject to your service
var idsValidator = provider.GetRequiredService<IIdsModelValidator>();
// Open a model
IModel model = IfcStore.Open("SampleFile.ifc"); // Or any other IModel implementation in place of IfcStore (including optionally a COBieModel)
// optionally you can over-ride some behaviours
var options = new VerificationOptions
{
OutputFullEntity = true, // Returns the full IFC entity in results, not just key
PerformInPlaceSchemaUpgrade = true, // Update old IDS schemas to latest version
PermittedIdsAuditStatuses = VerificationOptions.Relaxed, // Silently ignore some IDS schema errors - just log the fault
// IncludeSubtypes = true // Include derived IFC Entity types in Selection
// AllowDerivedAttributes = true, // Allow Derived attributes to be tested.
};
// Invoke the validation checking asynchronously. Also supports cancellation and async progress updating.
ValidationOutcome outcome = await idsValidator.ValidateAgainstIdsAsync(model, "BasicRequirements1-0.ids", logger, verificationOptions: options);
// Present the results
foreach (ValidationRequirement requirement in outcome.ExecutedRequirements)
{
// ApplicableResults contains details of the applicable IFC entities tested
var entitiesTested = requirement.ApplicableResults.Count();
var entitiesPassed = requirement.ApplicableResults.Count(e => e.ValidationStatus == ValidationStatus.Pass);
Console.WriteLine("[{0,-8}] : [{1}/{2}] met {3} specification '{4}' ",
requirement.Status,
entitiesPassed, entitiesTested,
requirement.Specification.Cardinality.Description,
requirement.Specification.Name
);
// Detail the failure reasons against applicable entities.
foreach(var entity in requirement.ApplicableResults.Where(e => e.ValidationStatus != ValidationStatus.Pass))
{
Console.WriteLine(" Failed Entity: {0}", entity.FullEntity);
foreach(var failure in entity.Messages)
{
// Reasons for failure
Console.WriteLine(" {0}", failure);
}
}
}
This is a comprehensive implementation of the latest IDS v1.0 standard, with 100% pass rate all current IDS TestCases
This library has been tested at scale with real-world models. It also supports some useful extensions that can be enabled through runtime options.
It currently supports:
The library has been tested against the IDS test suite with a 100% pass rate.
This library is made available by xbim Ltd under the GNU Affero General Public License v3. Please note this is different to the Open Source license used by other libraries in the xbim Toolkit (CDDL), and means that, while you are free to use this software for evaluation, personal, and non-commercial use, it is not compatible for use use in 'proprietary' (closed-source) commercial software.
If you are a developer wishing to use this library in commercial software please contact sales@xbim.net to discuss a commercial license, or contact @andyward on github.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 1 NuGet packages that depend on Xbim.IDS.Validator.Core:
| Package | Downloads |
|---|---|
|
Xbim.IDS.Validator.Extensions.COBie
Extends xbim IDS validator with experimental support for COBie validation using xbim COBieExpress |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.187 | 1,143 | 4/10/2026 |
| 1.0.186 | 173 | 3/26/2026 |
| 1.0.185 | 1,048 | 2/13/2026 |
| 1.0.184 | 3,707 | 11/11/2025 |
| 1.0.183 | 234 | 11/7/2025 |
| 1.0.182 | 222 | 11/7/2025 |
| 1.0.181 | 364 | 10/19/2025 |
| 1.0.179 | 217 | 10/17/2025 |
| 1.0.178 | 254 | 10/14/2025 |
| 1.0.177 | 296 | 10/7/2025 |
| 1.0.176 | 308 | 9/30/2025 |
| 1.0.175 | 240 | 9/30/2025 |
| 1.0.174 | 214 | 9/26/2025 |
| 1.0.173 | 514 | 9/17/2025 |
| 1.0.172 | 323 | 9/15/2025 |
| 1.0.171 | 351 | 8/1/2025 |
| 1.0.170 | 205 | 8/1/2025 |
| 1.0.169 | 210 | 7/30/2025 |
| 1.0.168 | 260 | 6/25/2025 |
| 1.0.166 | 1,884 | 3/31/2025 |