Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
737 commits
Select commit Hold shift + click to select a range
ca379cc
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Apr 26, 2023
8181665
fix: revert IfcType propery in IXPlacedShapeGeometry
Apr 27, 2023
982789e
Upgrade Geometry Abstractions package
Apr 28, 2023
214313e
enhancing CreateFootPrint logs
Apr 28, 2023
0acffff
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Apr 28, 2023
446a753
Surface based face models with faces that are lines and not areas gua…
SteveLockley Apr 30, 2023
af35676
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Apr 30, 2023
9ce77b2
Length for short polyline segments in composite curves reduced to mod…
SteveLockley May 1, 2023
0dbc92d
Unit test given another test criteria for composite curve creation
SteveLockley May 1, 2023
0c517af
Upgraded to V6 Boolean code
SteveLockley May 2, 2023
e9c96cc
Fix for GE being thrown when a wire profile is self intersecting and …
SteveLockley May 3, 2023
baf7e86
Cutting opens in an empty shape handled
SteveLockley May 3, 2023
63bc6ca
Fix to allow multiple file processing in XbimRegression
SteveLockley May 4, 2023
c102f6f
Reference geometries are not processed as boolean operations on a bod…
SteveLockley May 5, 2023
eaefd5a
Spot fix for edge-case crash determing face direction
andyward May 10, 2023
4a349e4
WexBIM sorage and retrieval methods added for Wexbim to shape store
SteveLockley May 11, 2023
ee3c67a
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley May 11, 2023
7ab9a47
IXPlacedShapeGeometry.GeometryIfcType.set made public
SteveLockley May 16, 2023
2f3f986
Geometry Abstractions ++
SteveLockley May 16, 2023
cd44fd5
Abstractions ++
SteveLockley May 16, 2023
d7f9b46
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley May 16, 2023
df08800
Granularity added to mesh store, store and retrieve arguments simplified
SteveLockley May 16, 2023
f0f958a
Amended IShapeStore interface to support multiple wexbims with differ…
SteveLockley May 17, 2023
a64ccfa
IShapeStore modified
SteveLockley May 17, 2023
a038a3f
Granularity parameter add to Shape Processor Service
SteveLockley May 17, 2023
8f132ab
CreateWexBimMesh added to shapeservice
SteveLockley May 26, 2023
c6a5f40
Added WexBimCreateMesh to shape service
SteveLockley May 26, 2023
46f7af5
Add GetMeshFactors to IXGeometryPrimitives
SteveLockley May 26, 2023
e7fd679
MeshFactors exposed in GeometryPrimitives service
SteveLockley May 26, 2023
e6d5014
WexBimMesh Creation added to IXShapeStore
SteveLockley May 26, 2023
0c76458
IModel passed to IXShapeStoreFactory GetNew Method
SteveLockley May 26, 2023
9fbb77e
Transform added to ShapeService for WexBIM meshes
SteveLockley May 26, 2023
ebb6068
undo wexbim transform
SteveLockley May 26, 2023
534a863
fix (XbimShapeColour::SetStyle): shinning value boxing and casting is…
Jul 12, 2023
5dc69b2
Upgrade abstraction package
Jul 12, 2023
7da7b73
feat: IXAxisAlignedBoundingBox transforamtion functions
Jul 21, 2023
f81202c
feat: IXAxisAlignedBoundingBox transformation functions
Jul 21, 2023
ffba038
fix(IXAxisAlignedBoundingBox): remove Transformed with a matrix
Jul 21, 2023
5f43633
feat: axis aligned bb transform
Jul 21, 2023
ef07c11
merge master
Jul 26, 2023
fdd62b4
Add IXModelPlacementBuilder interface
Jul 28, 2023
0d674b0
Add ModelPlacementBuilder property to the ModelGeometryService
Jul 28, 2023
591dba9
feature: model placement builder service, used to build model element…
Jul 29, 2023
5df93c3
more rigorous tests for the placement builder
Jul 29, 2023
3641148
Merge pull request #432 from xBimTeam/feature/model-placement-builder
Ibrahim5aad Jul 29, 2023
5aa3eea
model placment builder WCS changed to a point; taling only displaceme…
Jul 31, 2023
eb5631e
feat: add RootPlacement to ModelPlacementBuilder
Jul 31, 2023
b9f1ea7
fix (ModelPlacementBuilder): WCS is the taken as the translation part…
Jul 31, 2023
e345b42
Merge pull request #433 from xBimTeam/fix/model-placement-builder
Ibrahim5aad Jul 31, 2023
7421cde
feat: WCS setter and flag in PlacedShapeGeometries enumerator
Jul 31, 2023
6ed9e18
Abstractions++;
Jul 31, 2023
707ed4a
Add proper folder structure
Aug 8, 2023
90f1012
upgrade Abstractions package
Aug 8, 2023
6d182c0
Fix #440 - Provide a fallback service provider when none is configured
andyward Aug 31, 2023
56dc514
Fix deployment of transient dependencies on net framework #439
andyward Aug 31, 2023
1f57983
Fix for #444 - Openings not being cut
andyward Sep 1, 2023
83fbc64
add TriangulatedShape node type
Sep 14, 2023
490317d
Upgrade abstractions package
Sep 14, 2023
f954b24
Merge branch 'master' into develop
Sep 14, 2023
df1bd23
Upgrade abstractions package
Sep 14, 2023
97e01b7
Use more recent nuget version
Sep 14, 2023
fa9325e
disable trigger the build pipeline from other feature branches
Sep 15, 2023
11bcf70
feat: check self intersection in cut operation and add retry pattern
Ibrahim5aad Oct 9, 2023
5d0ee0a
Merge pull request #453 from xBimTeam/feat/retry-pattern-shape-fac
Ibrahim5aad Oct 9, 2023
e3c9c7d
Explicitly target MSVC toolset version 14.34.17.4
andyward Nov 27, 2023
30be8da
Revert "Explicitly target MSVC toolset version 14.34.17.4"
andyward Nov 28, 2023
3c193ae
Changed obj folder for net472 project so we don't get clashes between…
andyward Nov 28, 2023
c6192c1
Fix DI issue when setting up DI under net framework
andyward Dec 2, 2023
73f4bd6
Standardised DI Config namespaces for extension methods so all config…
andyward Dec 2, 2023
7869cfc
Added ability for consumers to overide the folder native GE assemblie…
andyward Dec 3, 2023
a09f69c
Improved logging to help diagnose unsupported Geometry shapes better
andyward Dec 5, 2023
44610f1
Added support for SolidSets; WIP
andyward Dec 5, 2023
dc4ff7b
Fixed warnings
andyward Dec 5, 2023
9388fe6
Minor tidying/housekeeping of DI approach
andyward Dec 20, 2023
925fe1e
Removed test file added in error
andyward Dec 20, 2023
0ef9200
Fixed transparency of IIfcSurfaceStyleShading set to opaque when tran…
Feb 29, 2024
27bfa94
Merge pull request #466 from xBimTeam/fix/shades-transparency
Ibrahim5aad Feb 29, 2024
456686a
Use M_PI instead of std::_Pi in NProjectionFactory
Feb 29, 2024
2e181c0
Fixed invalid String params on exception
andyward Mar 22, 2024
bf96be4
Disabled SimplifyResult (UnifyingDomain) for cut operation in NBoolea…
Apr 19, 2024
8997137
Merge remote-tracking branch 'origin/feature/netcore' into feature/ne…
Apr 19, 2024
ae1e4ef
Fixed failing tests
Apr 19, 2024
feddec8
Guard PolygonalFaceSets faces orientation fixing (it's done already w…
Apr 24, 2024
f662a5d
Merge pull request #474 from xBimTeam/fix/polygonal-face-set-orientat…
Ibrahim5aad Apr 24, 2024
cc8c267
Fixed GE6 calls that called GE5 impl. and removed boolean timeout exc…
Apr 25, 2024
8b44146
Merge pull request #475 from xBimTeam/fix/v6-engine
Ibrahim5aad Apr 25, 2024
321fed8
Revert v6 creator modifications
Apr 25, 2024
c5c093c
Updated Xbim3DModelContext to default to faster Tesselation in v6 eng…
andyward Apr 26, 2024
fca5474
Added XSolidModelType.IfcSectionedSolidHorizontal
CBenghi May 2, 2024
bcaed36
fix for single-file deployment
WalchAndreas Jun 18, 2024
9649f29
Merge pull request #486 from aardvark-community/feature/netcore
andyward Jun 18, 2024
90f6437
Added pipeline definition to build PRs
andyward Aug 8, 2024
428fbdf
PR on all branches
andyward Aug 8, 2024
ad3c276
Added CreateContext() overloads to remove ambiguous method signature …
andyward Aug 8, 2024
f762506
Use RIDs without platform version (#496)
hyazinthh Aug 12, 2024
6486d9b
Upgrade Packages
Sep 5, 2024
97b8d17
Merge remote-tracking branch 'origin/develop' into develop
Sep 5, 2024
fc0c20c
Update Geometry Abstractions package
Sep 5, 2024
6168b3c
Added IFC4x3 abstractions
Sep 26, 2024
adff15b
Tidy up
Sep 26, 2024
cda5591
Added BuildPoint3d to IXGeometryFactory
Sep 26, 2024
e0b533b
Exposed BuildLocation method for building IfcAxis2PlacementLinear
Sep 27, 2024
081c827
Added ability to process IfcSectionedSurface, IfcAxis2PlacementLinear…
Sep 30, 2024
8e234d0
Tidy up BuildSectionedSurface
Sep 30, 2024
02222b9
Added BuildLocation(IIfcPlacement placement) method for evaluating ba…
Oct 1, 2024
ef6937f
Upgrade Xbim.Essentials
Oct 2, 2024
84ffd83
Upgrade xbim Essentials
Oct 11, 2024
626b86d
Added BuildSpiral method to CurveFactory
Oct 15, 2024
ce3e570
Updated IFC4x3 curves and curves segments
Nov 8, 2024
409aad3
Added occ ransient geometry cache
Nov 8, 2024
cd8bbe5
Supported linear placement in placement builder and xbim scene
Nov 8, 2024
db03663
Added support for SectionedSolidHorizontal and DirectrixDerivedRefere…
Nov 8, 2024
16c9261
Project config files changes
Nov 8, 2024
b5151e1
Testing suite for ifc4x3 resources
Nov 8, 2024
2fa831a
Added CosineSpiral and proper test cases for the spiral curves
Nov 12, 2024
2c7254b
Added GetCurvature method for IXSpiral
Nov 12, 2024
6b56e09
Added IXCurveFactory method to build PolynomialCurve
Nov 12, 2024
7c7c8df
Tidy up
Nov 12, 2024
b208248
BuildSpiral return converted to IXCurve
Nov 13, 2024
defca92
Renamed BuildPolynomialCurve to BuildPolynomialCurve2d
Nov 13, 2024
226552d
Added support for IfcPolynomialCurve with proper unit tests
Nov 13, 2024
8be925c
Cache IfcDerivedProfileDef parent profile
Nov 19, 2024
0ce9fe7
Reparameterization of the GradientCurve to align horizontal and verti…
Nov 19, 2024
dc342b8
Trim SectionSolid spines with distances along values of linear placme…
Nov 19, 2024
769779f
Tidy
Nov 19, 2024
2f4c852
Merge pull request #510 from xBimTeam/feature/netcore-4x3
Ibrahim5aad Nov 22, 2024
329a867
Try 'Default' azure build agent pool
Nov 29, 2024
6206ecf
Removed storage module
Dec 10, 2024
564a0b8
Replaced BRepDocumentManager with ShapeBinarySerializer in IXModelGeo…
Dec 10, 2024
044cf70
Replaced BrepDocumentManager with ShapeBinarySerializer
Dec 10, 2024
278d9a3
Merge pull request #516 from xBimTeam/fix/remove-storage-module
Ibrahim5aad Dec 10, 2024
10bf19f
Fixed ModelGeometryService forward declaration in ShapeBinarySerializ…
Dec 10, 2024
efd9c04
Fixed linking issue for ShapeBinarySerializer
Dec 10, 2024
85d1b79
Fixed BuildSurface method in SurfaceFactory
Dec 10, 2024
a0bc3bc
Azure pipeline modifications
Dec 11, 2024
346c25d
Revert "Azure pipeline modifications"
Dec 11, 2024
9fa60a4
Fixed build configurations
Dec 12, 2024
3b0c001
Fixed linker warning; object specified more than once
Dec 13, 2024
ce5f446
Fixed thread safety issue of cached geometries
Dec 13, 2024
6448966
Updated Essentials
andyward Dec 15, 2024
fdca4a6
Updated Essentials with fix for IfcCurveSegment to permit IfcLengthMe…
andyward Dec 15, 2024
9a183d9
Relax Implementor agreement checking on CurveSegments so we don't fai…
andyward Dec 16, 2024
2707aee
Moved all Ifc43.MeasureResource.IfcLengthMeasure code to interface, p…
andyward Dec 16, 2024
4e347ee
Enable commented out GradientCurve tests
Dec 17, 2024
e3f7832
Worakround for bug in VS17.12 C++ Compiler
andyward Dec 17, 2024
8c42804
Fixed unstable unit test configuration
andyward Dec 17, 2024
8867b07
Tidied warnings, updated DI/Logging
andyward Dec 17, 2024
8b7368c
Removed incorrectly added test
andyward Dec 18, 2024
084cbcf
Fixed boolean operations fuzzy tolerance
Dec 18, 2024
f8ebe9d
Added test for projecting a faulty clipping resutl solid
Dec 18, 2024
6cd02e3
Fix conflicts
Dec 18, 2024
f98a755
Temporarily skip failing test
andyward Dec 19, 2024
6f59f6f
Fix for failing unit test.
andyward Dec 19, 2024
4c6389e
Improved regression suite.
CBenghi Mar 14, 2022
7fd60ca
Added Test for #483
andyward Dec 23, 2024
5c3727e
Unique region names for many context w/geometries.
CBenghi Feb 23, 2023
86c696e
add an unit test to create XbimWire without errors even if girth and …
okaharu0795 Mar 7, 2023
3cd67fc
fixed up IfcCShapeProfileDef error when values of girth and tchicknes…
okaharu0795 Feb 27, 2023
9b56ab9
Reimplemented fix for #417/#414 based on
andyward Dec 30, 2024
138e1c7
Added test on trimmed curve creation
Sep 18, 2023
06848b2
Fixed XbimCurve geometry construction for trimmed ellipse
Sep 18, 2023
f8b1b9c
Fix for memory access violation when filling loop #512 (#517)
andyward Dec 14, 2024
53eedc2
Workaround for Invalid AdvancedBrep reporting infinite bounding box (…
andyward Dec 14, 2024
76d4d4b
Merge pull request #524 from xBimTeam/netcore-merge
andyward Dec 30, 2024
f38388f
OCC 7.8 init
Jan 6, 2025
3bb4766
Updated Opencascade 7.7 to version built without NO_EXCEPTION - so we…
andyward Jan 9, 2025
985a682
Switched Xbim.Geomettry.OCCT version strategy to be more aligned to O…
andyward Jan 10, 2025
6bde68e
Merge branch 'feature/netcore' into feature/occ7.8
Jan 13, 2025
220f745
Updated to 7.7.0 OCC release package.
andyward Jan 13, 2025
27e84fe
Fixed up prior renaming issue
andyward Jan 13, 2025
37b7f9a
Refactored some old v5 code, to get around OCC native collections can…
Jan 24, 2025
647ab12
Updated for released OCCT 7.8.1 nuget.
andyward Mar 3, 2025
e4e593a
Merged netcore
andyward Mar 3, 2025
fddec6b
Fix up
andyward Mar 3, 2025
b41ef23
Merge pull request #528 from xBimTeam/feature/occ7.8
andyward Mar 3, 2025
37c7d17
Publish netcore to Myget Develop
andyward Mar 4, 2025
1a85454
Fixed warning
andyward Mar 4, 2025
2530cd7
Updated Essentials - IFC4x3 improvements
andyward Mar 6, 2025
7c2f698
Updated Essentials for 4x3 fixes/partials
andyward Mar 6, 2025
75da181
Updated essentials and restored strong naming.
CBenghi Mar 25, 2025
ca811fe
Minor changes:
CBenghi Mar 26, 2025
8b5d33a
Attempt to add back strong naming.
CBenghi Mar 26, 2025
39f444e
PR #530 add back Strong naming
andyward Mar 27, 2025
142628e
Updated latest master Essentials
andyward Mar 31, 2025
6be07d4
Updated to latest master dependencies.
andyward Mar 31, 2025
c93980c
More tolerant geometry creation of models
CBenghi Apr 28, 2025
f94839e
Update `cs` files for spacing style.
CBenghi Apr 29, 2025
d7ab13b
Merge pull request #535 from CBenghi/tolerantContext
Ibrahim5aad Apr 30, 2025
3262a9a
Fix RunSettingsFilePath misspelled x86 condition.
CBenghi May 9, 2025
fb47ebc
Fixed regression of connected face sets with colinear face vertices
May 19, 2025
517981c
Update Xbim Essentials package
May 27, 2025
403ec25
Added post mesh tesselation callback for custom tessellator post-proc…
May 27, 2025
5fda26b
Upgrade Xbim.Essentials package
May 29, 2025
0e4c78b
Added Xbim.Tessellator and related tests
May 29, 2025
95561ca
Merge pull request #541 from xBimTeam/feature/tessellator
Ibrahim5aad May 29, 2025
82bd149
Upgrade Essentials
May 29, 2025
0e4a521
Added XbimTriangulatedMesh simplifier based on Garland-Heckbert algor…
May 30, 2025
24b0337
Tessellator to process all the faces at one go for text polyhedron
May 30, 2025
18f7cb8
Merge pull request #537 from CBenghi/fix536
Ibrahim5aad Jun 5, 2025
75cb66f
Added dynamic deflection settings to Xbim3DModelContext
Jun 5, 2025
ec148bc
Made DynamicDeflection caching collections thread-safe
Jun 5, 2025
66a5924
Added documentation to the DynamicDeflection and XbimMeshSimplifier
Jun 5, 2025
af86e0b
Merge pull request #545 from xBimTeam/enhance-docs
Ibrahim5aad Jun 5, 2025
21dd57a
Fixed issue in XbimTriangulatedMeshConnectivity generated triangle IDs
Jun 11, 2025
c723863
Update Xbim Essentials package
Jun 17, 2025
49107fe
Lowest Essentials reference version is 6.0.53; without Xbim.Tessellat…
Jun 17, 2025
b97998b
Upgrade Geometry Abstractions package
Jun 17, 2025
e1de80b
Ignore hollow circles inner diameter when it is less than zero
Jun 17, 2025
54c9a7b
Merge pull request #546 from xBimTeam/fix/circles-invalid-inner-diameter
Ibrahim5aad Jun 17, 2025
5fc5ca4
Upgrade Xbim Essentials
Jun 19, 2025
50ad15a
Upgrade Geometry Abstractions package
Jun 19, 2025
391f8d2
Fix for merged Quadri project not displaying geometry from IfcGeometr…
andyward Aug 8, 2025
7a7b795
Update Essentials
andyward Aug 9, 2025
3045488
Updated Essentials
andyward Aug 9, 2025
28bc76c
SimplifyResult (UnifyingDomain) for boolean operations in NBooleanFac…
Aug 25, 2025
0a6360b
Fixed failing boolean tests
Aug 26, 2025
1bfeceb
Fixed failing test ComplexNestedBooleanResult
Aug 26, 2025
9df1ddd
FIX: Parallelism failure in IIfcIndexedPolyCurve
CBenghi Sep 12, 2025
a301474
Merge pull request #551 from CBenghi/fix/IIfcIndexedPolyCurveCrash
andyward Sep 16, 2025
4e377de
fix: Warnungen entfernt
rainer-helbing Sep 21, 2025
4789dbf
fix: std::mutex replaced by std::shared_mutex
rainer-helbing Sep 22, 2025
bd0f77c
Merge pull request #553 from byroninformatik/byron/shared-mutext-tests
andyward Sep 25, 2025
45993ac
Adding test case to demonstrate failure model.
CBenghi Oct 22, 2025
3305eb7
Invoke BOP simplification when safe
CBenghi Oct 22, 2025
6f205a5
Bumped Essentials
andyward Oct 30, 2025
3e89d91
Merge pull request #558 from CBenghi/issues/fix557
Ibrahim5aad Oct 31, 2025
bea1f5d
Updated Essentials
andyward Oct 31, 2025
57b2f74
Fixed building composite curve 2d segments for raw conics and trimmed…
Oct 31, 2025
be59eae
Merge pull request #560 from xBimTeam/fix/554-conic-composite-segments
Ibrahim5aad Oct 31, 2025
a23049b
Fix race condition in BuildCurve causing false "previously failed" ex…
Oct 31, 2025
ebd9775
Merge pull request #562 from xBimTeam/fix/561-concurrent-gradient-cur…
Ibrahim5aad Oct 31, 2025
f49fc92
Fixed Swept Disk Solids parameterization semantics
Nov 5, 2025
31f56d9
Merge pull request #564 from xBimTeam/fix/550-swept-solids-params
Ibrahim5aad Nov 5, 2025
1ae184b
Updated Essentials to master
andyward Nov 7, 2025
b834051
Updated GE Abstractions/Essentials
andyward Nov 7, 2025
0f7b150
Minor tidying to vcxprojs
andyward Nov 7, 2025
165207f
Fixed hintpath typo
andyward Nov 7, 2025
d989259
Migrated net6 to net8
andyward Nov 7, 2025
faa3a7f
Enable parallel compilation of C++ to speed up builds
andyward Nov 7, 2025
940b6f0
Relocated source
andyward Nov 7, 2025
9798229
Merge branch 'master' of ..\Private\xbim.geometry.abstractions\Xbim.G…
andyward Nov 7, 2025
7656875
Integrated GE Abstractions project from standalone repo
andyward Nov 7, 2025
299790a
Fixed Readme packing issues
andyward Nov 7, 2025
ed5e522
Merge pull request #565 from xBimTeam/feature/netcore8
andyward Nov 7, 2025
10209b7
Reinstate GeneratePackageOnBuild
andyward Nov 7, 2025
cb1ad46
Bumped major versions to 6.3:
andyward Nov 10, 2025
4c5a6f2
Removed extraneous compiler options from .NET project
andyward Nov 11, 2025
738e668
Fix #568: IfcSweptDiskSolid parameterization and trimming for composi…
Nov 21, 2025
a43fa13
Fixed AccessViolationException when reading non-initialized variable
Nov 23, 2025
19eeff1
Fixed warning unreferenced local variable
Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[*.cs]

# IDE0055: Fix formatting
dotnet_diagnostic.IDE0055.severity = suggestion
indent_style = space
indent_size = 4

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
*.sln.docstates
*.orig
.vs/
.idea/
global.json

# Build results
[Dd]ebug/
Expand Down
21 changes: 10 additions & 11 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,28 @@
<PropertyGroup>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<GenerateDocumentationFile Condition=" '$(IsTestProject)' != 'true' ">true</GenerateDocumentationFile>
<NoWarn>CS1591</NoWarn>
</PropertyGroup>

<PropertyGroup>
<Version>5.1.0.0</Version>
<AssemblyVersion>5.1.0.0</AssemblyVersion>
<Version>6.0.0.0-dev</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<Copyright>Copyright © XBIM Ltd</Copyright>
<Company>Xbim Ltd.</Company>
<Authors>Steve Lockley, Martin Cerny and XBIMTeam Contributors</Authors>
<Product>XBIM Geometry</Product>
<PackageLicenseExpression>CDDL-1.0</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/xBimTeam/XbimGeometry</PackageProjectUrl>
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
<PackageReleaseNotes>Version 5.1 update. See https://github.com/xBimTeam/XbimGeometry/blob/master/CHANGELOG.md
<PackageProjectUrl>https://github.com/xBimTeam/XbimGeometry</PackageProjectUrl>
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
<PackageReleaseNotes>TODO: Update for v6. See https://github.com/xBimTeam/XbimGeometry/blob/master/CHANGELOG.md
</PackageReleaseNotes>
<PackageTags>BIM, IFC, Geometry, Meshing, Tesselation</PackageTags>
<RepositoryUrl>https://github.com/xBimTeam/XbimEssentials/tree/master</RepositoryUrl>
<RepositoryUrl>https://github.com/xBimTeam/XbimGeometry/tree/master</RepositoryUrl>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign><DelaySign>false</DelaySign>
<LangVersion>10.0</LangVersion>
</PropertyGroup>

</Project>
22 changes: 22 additions & 0 deletions GeometryProfiler/GeometryProfiler.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<SignAssembly>False</SignAssembly>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
<PackageReference Include="Xbim.Geometry.Abstractions" Version="6.2.138" />
<PackageReference Include="Xbim.Ifc" Version="5.1.361-develop" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Xbim.Geometry.Engine.Interop\Xbim.Geometry.Engine.Interop.csproj" />
</ItemGroup>

</Project>
52 changes: 52 additions & 0 deletions GeometryProfiler/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// See https://aka.ms/new-console-template for more information
using Microsoft.Extensions.Logging;
using System.Diagnostics;
using Xbim.Geometry.Engine.Interop;
using Xbim.Ifc4.GeometricModelResource;
using Xbim.Ifc4.GeometryResource;
using Xbim.IO.Memory;

Console.WriteLine("Profiling");
ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
using var csgModel = InitCsgModel();
var modelService = XbimGeometryEngine.CreateModelGeometryService(csgModel, loggerFactory);
var v5Engine = XbimGeometryEngine.CreateGeometryEngineV5(csgModel, loggerFactory);

var cone = csgModel.Instances.OfType<IfcRightCircularCone>().First();
var v5Time = Time(() => v5Engine.CreateSolid(cone, null), 1000);
var v6Time = Time(() => modelService.SolidFactory.Build(cone), 1000);


MemoryModel InitCsgModel()
{
var m = new MemoryModel(new Xbim.Ifc4.EntityFactoryIfc4());

using (var txn = m.BeginTransaction("Test"))
{
var cylinder = m.Instances.New<IfcRightCircularCone>();
var p = m.Instances.New<IfcAxis2Placement3D>();
p.Axis = m.Instances.New<IfcDirection>(d => d.SetXYZ(1, 0, 0));
p.Location = m.Instances.New<IfcCartesianPoint>(c => c.SetXYZ(0, 0, 0));
cylinder.Position = p;
cylinder.BottomRadius = 0.5;
cylinder.Height = 2;




txn.Commit();
}
return m;
}

TimeSpan Time(Action action, int executionCount = 1)
{
action();
var t = Stopwatch.StartNew();
for (int i = 0; i < executionCount; i++)
{
action();
}
t.Stop();
return t.Elapsed;
}
28 changes: 23 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,40 @@ XbimGeometry is part of the [Xbim Toolkit](https://github.com/xBimTeam).
It contains the the Geometry Engine and Scene processing, which provide geometric and topological operations
to enable users to visualise models in 3D models, typically as a Tesselated scene or mesh.

The native Geometry Engine is built around the open source [Open Cascade 7.3 library](https://www.opencascade.com/content/overview)
which performs much of the boolean operations involve in generating 3D solids.
The native Geometry Engine is built around the open source [Open Cascade library](https://www.opencascade.com/content/overview)
which performs much of the boolean operations involved in generating 3D solids.
This technology is included under a licence which permits the use as part of a larger work, compatible with our open source CDDL licence.

## Getting started

Before using this library you should register the Geometry Engine with the xbim ServiceProvider.

```csharp
// Either configure the internal Services
XbimServices.Current.ConfigureServices(opt => opt.AddXbimToolkit(conf =>
conf.AddGeometryServices()
));

// or configure your services and register the provider with xbim:

services.AddXbimToolkit(conf => conf.AddGeometryServices());
// Once the DI container is built
XbimServices.Current.UseExternalServiceProvider(serviceProvider);
```


## Compilation

**Visual Studio 2017 or 2019 is recommended.**
**Visual Studio 2022 is recommended.**
Prior versions of Visual Studio are unlikely to work on this solution.

The [free VS 2019 Community Edition](https://visualstudio.microsoft.com/downloads/) will be fine.
The [free VS 2022 Community Edition](https://visualstudio.microsoft.com/downloads/) will be fine.

In order to compile this solution which includes C++ projects you'll need the following additional
components installed:

- Visual C++ Core desktop features
- VC++ 2017 v141 tools
- VC++ 2022 v143 tools
- Windows 10 SDK (10.0.17134.0)

The XBIM toolkit [uses the NuGet](https://www.nuget.org/packages/Xbim.Geometry/) for the management of our published packages.
Expand Down
9 changes: 9 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXProduct.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Xbim.Geometry.Abstractions
{
/// <summary>
/// A shape product reflect an interface for an IfcProduct
/// </summary>
public interface IXShapeProduct : IXShapeAssembly
{
}
}
15 changes: 15 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeAssembly.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System.Collections.Generic;

namespace Xbim.Geometry.Abstractions
{

public interface IXShapeAssembly : IXShapeComponent
{
IEnumerable<IXShapeInstance> Instances { get; }
void AddInstance(IXShapeInstance component);
IEnumerable<IXShapeAssembly> Openings { get; }
IEnumerable<IXShapeAssembly> Projections { get; }
bool IsSubAssembly { get; set; }

}
}
13 changes: 13 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeAssemblyTree.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.Collections.Generic;

namespace Xbim.Geometry.Abstractions
{
public interface IXShapeAssemblyTree
{
int Id { get; set; }
IEnumerable<IXShapeAssemblyTree> Children { get; }
bool HasChildren { get; }
IXShapeAssemblyTree AddChild(int id);
void AddChild(IXShapeAssemblyTree child);
}
}
18 changes: 18 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeColour.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace Xbim.Geometry.Abstractions
{
public interface IXShapeColour : IXShapeItem
{
IXColourRGB AmbientColor { get; set; }
IXColourRGB DiffuseColor { get; set; }
IXColourRGB SpecularColor { get; set; }
IXColourRGB EmissiveColor { get; set; }
/// <summary>
/// Value between 0.0 and 1.0
/// </summary>
float Shininess { get; set; }
/// <summary>
/// Value between 0.0 and 1.0
/// </summary>
float Transparency { get; set; }
}
}
10 changes: 10 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Xbim.Geometry.Abstractions
{
/// <summary>
/// Effectively Abstract interface for an IXShapeAssembly or IXShapeGeometry
/// </summary>
public interface IXShapeComponent : IXShapeItem
{
short IfcType { get; set; }
}
}
15 changes: 15 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeInstance.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace Xbim.Geometry.Abstractions
{
/// <summary>
/// Represents a component with a location
/// </summary>
public interface IXShapeInstance
{
IXShapeComponent Component { get; set; }
IXLocation Location { get; set; }
IXMatrix Transformation { get; set; }
IXShapeMaterialItem ShapeMaterial { get; set; }
IXShapeColour ShapeColour { get; set; }

}
}
10 changes: 10 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Xbim.Geometry.Abstractions
{
public interface IXShapeItem
{
int Id { get; set; }

NodeType NodeType { get; set; }

}
}
12 changes: 12 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeOccurence.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace Xbim.Geometry.Abstractions
{
/// <summary>
/// This is a real instance of a shape, which has colour, position and geometry
/// </summary>
public interface IXShapeOccurence
{
IXShape Shape { get; set; }
IXLocation Location { get; set; }
IXShapeColour Colour { get; set; }
}
}
10 changes: 10 additions & 0 deletions Xbim.Geometry.Abstractions/AssemblyGraph/IXShapeOccurrenceList.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;

namespace Xbim.Geometry.Abstractions
{
public interface IXShapeOccurrenceList : IList<IXShapeOccurence>, IDisposable
{

}
}
24 changes: 24 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/NodeType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
namespace Xbim.Geometry.Abstractions
{
public enum NodeType : byte
{
Default = 0,
Product,
ProductRepresentation,
ShapeRepresentation,
BRepShape,
FeatureElement,
Colour,
BRepShapeWithFeatures,
LayeredMaterial,
Material,
MaterialList,
MaterialConstituent,
LayeredMaterialInstance,
MaterialLayer,
ProductGroup, //IFC Assembly or IFC Group
BRepShapePart, //Part of a shape, normally of a different colour or texture
BRepShapeNonUniformTransformed, //shape that has undergone a non uniform transformation (stretch)
TriangulatedShape,
}
}
14 changes: 14 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/ShapeGeometryErrorOrWarning.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;

namespace Xbim.Geometry.Abstractions
{
[Flags]
public enum ShapeGeometryErrorOrWarning : byte
{
ErrorBuildFailed = 0,
NoErrorOrWarnings = 1,
WarningEmptyShape = 2,
ErrorProjectionFeaturesFailed = 4,
ErrorOpeningFeaturesFailed = 8
}
}
13 changes: 13 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XBooleanOperandType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@


namespace Xbim.Geometry.Abstractions
{
public enum XBooleanOperandType
{
IfcSolidModel,
IfcHalfSpaceSolid,
IfcBooleanResult,
IfcCsgPrimitive3D,
IfcTessellatedFaceSet
}
}
11 changes: 11 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XCsgPrimitive3dType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace Xbim.Geometry.Abstractions
{
public enum XCsgPrimitive3dType
{
IfcBlock,
IfcRectangularPyramid,
IfcRightCircularCone,
IfcRightCircularCylinder,
IfcSphere
}
}
8 changes: 8 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XCurveMeasureType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Xbim.Geometry.Abstractions
{
public enum XCurveMeasureType
{
LengthMeasure,
ParameterValue
}
}
Loading