Skip to content

Commit 2feda62

Browse files
committed
Release 05/03/2024
2 parents ac8b909 + 3641ad4 commit 2feda62

File tree

3,916 files changed

+305262
-38308
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,916 files changed

+305262
-38308
lines changed

.gitignore

Lines changed: 203 additions & 202 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,40 @@
22

33
All notable changes to this project should be documented in this file
44

5+
## [v6.0] Pending Release
6+
7+
This is the 6.0 release of XBIM Toolkit
8+
### Added
9+
10+
- Added net6.0 support to all Essentials components (including Esent) [#432](https://github.com/xBimTeam/XbimEssentials/issues/432) [#451](https://github.com/xBimTeam/XbimEssentials/issues/451)
11+
- Added Common units to new projects
12+
- Docs are automatically generated with each build [#449](https://github.com/xBimTeam/XbimEssentials/issues/449) [#457](https://github.com/xBimTeam/XbimEssentials/issues/457)
13+
- Support for IFC 4x3 schema [#450](https://github.com/xBimTeam/XbimEssentials/issues/450)
14+
- Added support for Dependency Injection of services, with internal services provider [#455](https://github.com/xBimTeam/XbimEssentials/issues/455)
15+
- See [Tests for examples](https://github.com/xBimTeam/XbimEssentials/blob/develop/Tests/DependencyInjectionTests.cs)
16+
- Optimisation to Esent SaveAs
17+
18+
### Fixed
19+
- Fixed Instances Count on Esent Models
20+
- Fix in Parser for G17 formatatting on Double values
21+
- Fix incorrect Application Developer Name [#466]
22+
- Fix Memory leak in SI Units [#361](https://github.com/xBimTeam/XbimEssentials/issues/361)
23+
24+
### Changed
25+
- Removed need to call `IfcStore.ModelProviderFactory.UseHeuristicModelProvider();` before using IfcStore.
26+
- Replaced with optional call to `XbimServices.ConfigureServices(s => s.AddXbimToolkit(opt => opt.AddHeuristicModel()));` ... and equivalent.
27+
- ModelProviderFactory replaced by standard DI / service Provider.
28+
- IfcStore.ModelProvider deprecated
29+
- Methods accepting ILogger parameters deprecated - Loggers can be injected (if using DI) or are provided by the XbimServices ServiceProvider
30+
31+
### Removed
32+
33+
- Removed static Xbim.Commom.XbimLogger - replaced with a DI friendly internal service provide Logger functionality when needed [#455](https://github.com/xBimTeam/XbimEssentials/issues/455)
34+
- Removed support for .NET Framework targets prior to net472 - now out of support by Microsoft
35+
- Removed targeting of .NET 3.1 (Out of support, but can still be used via netstandard2.0)
36+
- Removed Default Microsoft.Extensions.Logging implementation - now requires explicit setup via Xbim.Common.Configuration.XbimServices
37+
38+
539
## [v5.1.527] 2019-05-30
640

741
This is the 5.1 release of XBIM

Directory.Build.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@
66
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
77
<GenerateDocumentationFile Condition=" '$(IsTestProject)' != 'true' ">true</GenerateDocumentationFile>
88
<NoWarn>CS1591</NoWarn>
9+
<LangVersion>latest</LangVersion>
910
</PropertyGroup>
1011

1112
<PropertyGroup>
12-
<Version>5.1.0.0</Version>
13+
<Version>6.0.0.0</Version>
1314
<Copyright>Copyright © XBIM Ltd</Copyright>
1415
<Company>Xbim Ltd.</Company>
1516
<Authors>Steve Lockley, Martin Cerny and XBIMTeam Contributors</Authors>
1617
<Product>XBIM Essentials</Product>
1718
<PackageLicenseExpression>CDDL-1.0</PackageLicenseExpression>
1819
<PackageProjectUrl>https://github.com/xBimTeam/XbimEssentials</PackageProjectUrl>
1920
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
20-
<PackageReleaseNotes>Version 5.1 update. See https://github.com/xBimTeam/XbimEssentials/blob/master/CHANGELOG.md
21+
<PackageReleaseNotes>Version 6.0 update. See https://github.com/xBimTeam/XbimEssentials/blob/master/CHANGELOG.md
2122
</PackageReleaseNotes>
2223
<PackageTags>BIM, IFC, IfcXml, IfcZip, Ifc4, COBie, BuildingSmart</PackageTags>
2324
<RepositoryUrl>https://github.com/xBimTeam/XbimEssentials/tree/master</RepositoryUrl>
2425
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
2526
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
26-
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
2727
<SignAssembly>true</SignAssembly>
2828
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
2929
<DelaySign>false</DelaySign>

README.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,10 @@ _[**B**uilding **I**nformation **M**odelling](https://en.wikipedia.org/wiki/Buil
2020
the .NET platform. This library enables software developers to easily read, write, validate and interrogate data in
2121
the buildingSmart [IFC formats](https://en.wikipedia.org/wiki/Industry_Foundation_Classes), using any .NET language.
2222

23-
As of version 5.0 XbimEssentials includes elementary support for .NET Core 2.0 in addition .NET Framework.
24-
Support for Net Core 3.1 is added
25-
## Updating from prior versions
23+
As of version 6.0 XbimEssentials includes support for `.netstandard2.0`, `.netstandard2.1` and `.net6.0`. Supporting `netstandard2.0` provides support .NET Framework 4.7.2 upwards.
24+
Earlier .NET Framewaork versions may work, but we can't provide any support for them.
2625

27-
Please see our [ChangeLog](CHANGELOG.md) for details on what's new and what you need to upgrade.
28-
In particular, please **note the following section copied here:**
2926

30-
> **BREAKING CHANGE**: Windows forms and Console apps using *IfcStore* must now call `IfcStore.ModelProviderFactory.UseHeuristicModelProvider();` at application startup
31-
>
32-
> [failure to do so] will likely result in use of the very basic `MemoryModel` implementation which does not support *.xbim* files
3327

3428
## Background / Motivation ##
3529

@@ -46,9 +40,25 @@ The wider XBIM toolkit contains additional repositories with libraries to read a
4640
In order to visualise 3D Geometries you will need to include the [Xbim.Geometry](https://github.com/xBimTeam/XbimGeometry)
4741
package which provides full support for geometric, topological operations and visualisation.
4842

49-
The motivation behind XbimEssentials is to take away much of the complexity and 'heavy lifting' required to work
50-
with Open BIM file formats, so you can focus on creating software solutions without needing deep understanding
51-
of STEP/Express parsing, 3D graphics, allowing you to work at a higher level than the buildingSmart [data model](http://www.buildingsmart-tech.org/ifc/IFC4/Add2/html/link/introduction.htm).
43+
The motivation behind XbimEssentials is to take away much of the complexity and 'heavy lifting' required to read and write
44+
OpenBIM file formats, so you can focus on creating software solutions without needing deep understanding
45+
of STEP/Express parsing, 3D graphics - enabling you to work at a higher level than the buildingSmart [data model](http://www.buildingsmart-tech.org/ifc/IFC4/Add2/html/link/introduction.htm).
46+
47+
48+
## Updating from prior versions
49+
50+
Please see our [ChangeLog](CHANGELOG.md) for details on what's new and what you need to upgrade.
51+
In particular, please **note the following section copied here:**
52+
53+
> **BREAKING CHANGE**: V6 implements a new mechanism for discovering internal resources and uses standard (.net Dependency Injection patterns)[https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection] for managing services internally.
54+
> `Xbim.Common` now introduces an internal DI service that you can optionally integrate with your own DI implementation, for providing Logging services, and configuring xbim service behaviour. E.g. Invoking:
55+
> ` XbimServices.Current.ConfigureServices(s => s.AddXbimToolkit(opt => opt.UseMemoryModel().UseLoggerFactory(yourloggerFactory)));
56+
> registers the Toolkit internal dependencies, uses an In-memory model and inserts your configured ILoggerFactory into the service in place of our default one.
57+
> `IfcStore.ModelProviderFactory` has been deprecated as this is provided for by the above mechanism
58+
> The persistent EsentModel is now available automatically through IfcStore (on Windows) so there is no need for the `UseHeuristicModelProvider()` 'ceremony' to ensure Esent is used.
59+
> Note: The default Logging implementation has been removed from Toolkit to reduce the amount of dependencies. To enable is a simple matter of adding logging to the Xbim Services.
60+
> See (Example)[https://github.com/xBimTeam/XbimEssentials/blob/b3fce6f40a31fb87a75b24888a4e20740a378e31/Tests/DependencyInjectionTests.cs#L96]
61+
5262

5363
## Code Examples
5464

@@ -179,9 +189,6 @@ using [Xbim.WebUI](http://docs.xbim.net/XbimWebUI/)
179189
const string fileName = @"SampleHouse4.ifc";
180190
var wexBimFilename = Path.ChangeExtension(fileName, "wexBIM");
181191
var xbimDbFilename = Path.ChangeExtension(fileName, "xBIM");
182-
183-
// Make sure we are using an IModel implementation that supports saving of '.xbim' files
184-
IfcStore.ModelProviderFactory.UseHeuristicModelProvider();
185192

186193
using (var model = IfcStore.Open(fileName))
187194
{

0 commit comments

Comments
 (0)