All notable changes to this project should be documented in this file
This is the 5.1 release of XBIM
IXbimGeometryEngine.CreateSurfaceModel
interface changed to use abstract Face Set- Allow IModelProviders to overide EntityFactory
- Re-introduced method to parse header without loading whole file #229
EsentModelProvider
allows filename to be specified- Support for IfcPolygonalFaceSet added to tessellation
- Added separate .netcore unit test project
- Enumerator support added to XbimCartesianPointList3D
IfcStore
preserves Filename from model- Esent Model not removed when filename specified
- Ifc4 'CorrectObjectAssignment' validation function fixed
- Fix for .netcore XML deserialisation #247
- Fix for infinite loop in Scanner with bad EOF #249
- Spelling corrections in IfcStore Xml Docs #250
- Better handling / reporting of duplicate entity labels
- Improved handling of invalid Enums in parser
- Handle ambiguous specification of PnIndex in IfcTriangulatedFaceSet XbimGeometry#167
IfcStore
supports STP and STPZIP files.- Opening ifcXml file in ifcZip failed when using progress delegate #258
The first official suite of Xbim v5 packages!
IfcValidator
moved fromXbim.Ifc
toXbim.Common
and renamedValidator
- The base .NET Framework target has been raised from
net45
tonet47
. This is to enable .NET Standard #213 - XBIMEssentials is now a 'meta package' which brings in the individual packages. Important: To avoid a failed upgrade (#233)
make sure you update your
net4x
projects to at leastnet47
before you upgrade the Essentials package. - All project major projects now use the new 'SDK' style csproj format #216
- All tests consolidated into Xbim.Essentials.Tests
XbimDBAccess
has moved fromXbim.IO.Esent
namespace toXbim.IO
(in Xbim.Common)XbimStoreType
has moved fromXbim.IO.Esent
namespace toXbim.IO
(in Xbim.Common)IfcSchemaVersion
has been renamedXbimSchemaVersion
IfcStorageType
has been renamedStorageType
- Xbim.Ifc no longer references Xbim.IO.Esent in order to support netstandard, which required decoupling the Store from specific IModel implementations. See #228
- BREAKING CHANGE: Windows forms and Console apps using IfcStore must now call
IfcStore.ModelProviderFactory.UseHeuristicModelProvider();
at application startup (or at least before using IfcStore.Open()) - If you don't configure the
IfcStore
to do this, you will likely result in use of the very basicMemoryModel
implementation which does not support .xbim files - ASP.NET [Core] consumers should not need to do this, but no harm in configuring explicitly.
- BREAKING CHANGE: Windows forms and Console apps using IfcStore must now call
- IfcStore methods factored out to Extension methods: InsertCopy, SaveAsIfc/IfcXml/IfcZip, SaveAsWexbim
- Assemblies code signed again - early versions of v5 removed this. #225
- Support for IFC4x1 and IFC4 Addendum 2 #177
- Support for building against
netstandard2.0
for all Essentials components (except forXbim.IO.Esent
). This should enable the use of XBIM in .NET Core apps and other targets, as well as providing cross-platform support. #213 - Support for Microsoft.Extensions.Logging and 3rd party logging providers. (See log4net note below) #214
Xbim.Common.XbimLogging
added as a host for ILoggerFactory- Usage Example 1: Using the standard Microsoft.Extensions.Logging.Console
- Usage Example 2: Using Serilog with XBim
- Support for Visual Studio 2017
- Support for partial files - selective scanning of part of the model
- Inverse relation caching and entity caching
- Ability to skip certain entity types in the Step21 scanner/ MemoryModel
- Support for IFC files with badly specified CodePages #120
XBim.Ifc2x3.IO
assembly has been removed, includingXbimModel
. Please useXbim.Ifc.IfcStore
insteadXbim.CobieExpress.*
andXBim.IO.TableStore
have been moved to a new dedicated repoXbim.Ifc.Extensions
has been dropped due to the logic only targeting IFC2x3 interfaces and the subjective and potentially ambiguous implementation logic. We recommend you build your own or reference it from our old source. PRs for a new repo are welcome!- log4net logging has been removed. We now use
Microsoft.Extensions.Logging
abstraction interfaces, meaning you can use the logging framework of your choice through an ILoggerProvider- log4net dependencies and configuration in any of upstream app.config or web.config can be removed
- Clean Esent JFM flushmap files when deleting XBIM databases #206
- SaveAs doesn't set "FileName" in IfcStore #223
- Indexing and Parsing performance + stability improvements #215
- Schema recognition without Exception throwing
- Metadata created only when needed
- Increased error tolerance in the Step21 parser (types of errors)
- Centralised ModelFactor code
- Fixed issue with IfcTriangulatedFaceSet #211
- Fixed threading issue in IO.Esent #208
- Fixed IFC4 Tesselator issue with MeshPolyhedronBinary #196
- Fix for empty RelatedObjects in Ifcxml #188
- Support IfcZip containing multiple files #185
- Duplicate IfcOrganization created #173
- IfcCalendar.ToString provides Date #171
- Fix BeginTransaction erasing FileHeader #168
- Added missing SI Units for IFC4/2x3 #162
- Support parsing of IfcDuration in other cultures #153
- More tolerant schema checking in MemoryModel #126
- Better tolerance for loading 'bad' files #107
- Tessellation is done in floats, resulting in loss of precision #113
- Support for Ifc4-Add1 and Ifc2x3-TC1.
- Preliminary support for Ifc4-Add1 and Ifc2x3-TC1
- Where clause validation re-added
Major new release. See http://docs.xbim.net/xbim-4/xbim-4-release-notes.html
- Support for IFC4 and side-by-side using code-generated schemas
- Ifc4 XML support
- Introduced
IModel
interface withMemoryModel
andEsentModel
implementations - IfcStore added - wrapping
MemoryModel
andEsentModel
- XbimModel moved to Xbim.IO.Ifc2x3
- IFC
WHERE
rules have not been brought forward with the new code generated IFC schemas. To be addressed in future