Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
257 commits
Select commit Hold shift + click to select a range
f0eccd6
Update: ProfileDef factory added, service removed
SteveLockley Nov 20, 2022
915b267
update: Materials removed from Geoemtry Factory interface
SteveLockley Nov 22, 2022
937f605
IXModelGeometryService added
SteveLockley Nov 26, 2022
7ad6ed2
IXModelService renamed to IXModelGeometryService
SteveLockley Nov 28, 2022
5ca3aa5
ModelService Property of IXModelScoped renamed to ModelGeometryService
SteveLockley Nov 28, 2022
f5c7b83
GeometryV5 interface methods remove from IShapeFactory
SteveLockley Nov 29, 2022
9433e77
BRep class -> Enumerations replaces with Arrays
SteveLockley Nov 30, 2022
2b3a144
IXShape interface extended to support IsEqual
SteveLockley Nov 30, 2022
dc076b2
ShapeHashCode added to IXShape
SteveLockley Nov 30, 2022
7f136a6
Shape Orientation added
SteveLockley Nov 30, 2022
47ba0be
CreateGeometryEngineV6 added
SteveLockley Dec 1, 2022
507f96c
Version specific engine added
SteveLockley Dec 1, 2022
166edb4
IXGeometryConverterFactory extended
SteveLockley Dec 2, 2022
1790124
IXlocation updated with ScaledBy, IXVertexFactory added
SteveLockley Dec 3, 2022
85952f1
Tolerance added for vertex equality check
SteveLockley Dec 3, 2022
aa700c9
Removed Vertex Factory equal method
SteveLockley Dec 3, 2022
168b343
IXModelGeometryService exposes VertexFactory
SteveLockley Dec 3, 2022
a4f36ce
OneFoot property added to ModelGeometryService
SteveLockley Dec 5, 2022
9bee7f3
Name of Edge Factory Build methods standardized
SteveLockley Dec 5, 2022
ed623c6
Logging Service Property added to IXModelGeometryService
SteveLockley Dec 8, 2022
0715176
GeometryEngineV6 added to iXModelGeometryService
SteveLockley Dec 8, 2022
20ebcc3
ProfileFactory added to IXModelGeometryService
SteveLockley Dec 8, 2022
4ff4749
V6 Engine properties removed
SteveLockley Dec 8, 2022
eed9f0c
IXMaterialFactory added
SteveLockley Dec 8, 2022
d11ba1f
IXMaterialFactory property added to IXModelGeometryService
SteveLockley Dec 8, 2022
8c34f2a
ProjectionService renamed
SteveLockley Dec 10, 2022
4f5f502
ProjectionFactory exposed
SteveLockley Dec 10, 2022
8b370ea
Surface interfaces extended in scope
SteveLockley Dec 11, 2022
6131d52
Surfaces now U and V periodic
SteveLockley Dec 11, 2022
f837ab4
spline surfae interface started but needs further development
SteveLockley Dec 11, 2022
2632d7f
Rectangle Trimmed Surface intrafce simplified
SteveLockley Dec 11, 2022
7c66a08
Surface Factory interface added Build method
SteveLockley Dec 11, 2022
87d2a6a
Surface Factory updated
SteveLockley Dec 11, 2022
25ab941
Error specifying Ifc2x3 interface fixed
SteveLockley Dec 11, 2022
533879c
Materials removed from BrepDocument
SteveLockley Dec 12, 2022
6f2fec0
Visual Material removed from Storage Item
SteveLockley Dec 12, 2022
b42fa06
Wexbim document support removed
SteveLockley Dec 12, 2022
1317285
Interfaces for Step and WexBIM modified
SteveLockley Dec 13, 2022
f221458
Renamed IXStorageItem
SteveLockley Dec 13, 2022
b743f93
STEP interface amended
SteveLockley Dec 13, 2022
ed27742
STEP interface of BrepDoc Manager updated
SteveLockley Dec 13, 2022
a0da433
IXBRepDocumentManager updated
SteveLockley Dec 13, 2022
dee91db
Material discovery removed from IXBrepDocumentItem
SteveLockley Dec 13, 2022
da877a1
Visual Material simplified
SteveLockley Dec 13, 2022
f8e1d20
Visual Material label restored to interface
SteveLockley Dec 13, 2022
c2ae74f
VisualMaterial interfaces restored to BrepDocument
SteveLockley Dec 13, 2022
03425c9
Extension to BRepDocument for materials
SteveLockley Dec 13, 2022
3234b21
Geoemtry Primitive interface added
SteveLockley Dec 14, 2022
5fd54b2
Geoemtry Engine v6 interface added
SteveLockley Dec 14, 2022
1bcce0f
IXGeometryEngineV6 added to converter
SteveLockley Dec 14, 2022
57792c7
Logging exposed on ModelGeometryService
SteveLockley Dec 14, 2022
3aecd66
Build XShape aded to V6 engine interface
SteveLockley Dec 14, 2022
80fddc1
Build Location added to geometry factory
SteveLockley Dec 15, 2022
988d5a8
MappedShape interface added
SteveLockley Dec 15, 2022
29edddd
IXMatrix added
SteveLockley Dec 15, 2022
9a5a5ba
BuildTransform for IIfcCartesianTransformationOperator added
SteveLockley Dec 15, 2022
b53eadc
Matrix IsAffine removed
SteveLockley Dec 15, 2022
a863864
Scal properties added to IXMatrix
SteveLockley Dec 16, 2022
ed0ad03
setter removed from IXMatrix
SteveLockley Dec 16, 2022
3b17a57
BuildMapTransforms added to ShapeFactory
SteveLockley Dec 16, 2022
3c46316
BuildMapTransform moved to GeometryFactory
SteveLockley Dec 16, 2022
ed00508
Transformation added to IXShapeInstance
SteveLockley Dec 16, 2022
dc8afa4
Values added to IXMatrix
SteveLockley Dec 16, 2022
a9f1046
Parameter added to shapestore addreference
SteveLockley Dec 16, 2022
caeeb7b
IXSolidFactory interface extended to support Build of IIfcExtrudedAre…
SteveLockley Dec 18, 2022
e6c0f01
Updated Essentials to 4x3
SteveLockley Dec 18, 2022
015fd57
Updated Essentials
SteveLockley Dec 19, 2022
6bc3681
Matrix build added
SteveLockley Dec 19, 2022
0251253
Shape material support enhanced Shape Service tidied
SteveLockley Dec 20, 2022
728e721
Symbols removed from ShapeService
SteveLockley Dec 20, 2022
3f039e1
again
SteveLockley Dec 20, 2022
adf65bd
CreateWexBimMesh extended to produce bounds
SteveLockley Dec 20, 2022
6fec318
Scaled removed from IXAxisAlignedBoundingBox
SteveLockley Dec 20, 2022
0a57a30
IXShapeFactory removed wexbimmesh routines
SteveLockley Dec 20, 2022
80d9524
Combine metod of ShapeService amended to use Enumerable
SteveLockley Dec 20, 2022
32f172e
CreateWexBimMesh amended
SteveLockley Dec 20, 2022
d4953c1
IWexBimContent updated
SteveLockley Dec 20, 2022
9ac39c2
Updated Product Store
SteveLockley Dec 21, 2022
eb2bf05
IModel namespace added
SteveLockley Dec 21, 2022
84755cf
Added interface to shapeStore to allow material and colour reference
SteveLockley Dec 22, 2022
87cad13
IXGeometryFactory updated axis builds
SteveLockley Dec 23, 2022
279e240
typo fixed
SteveLockley Dec 23, 2022
a3786eb
IXAxis2Placement2d deleted
SteveLockley Dec 23, 2022
37e602f
IXAxisPlacement2d inherits IXAxisPlacement
SteveLockley Dec 23, 2022
e05dacf
IXShapeMaterial added
SteveLockley Dec 23, 2022
ad86e7c
IXShapeLayeredMaterial added
SteveLockley Dec 23, 2022
fcff69d
Direction reversal added to IXShapeLayeredMaterial
SteveLockley Dec 23, 2022
221861e
NodeType updated
SteveLockley Dec 23, 2022
49208ad
IXShapeItem made immutable
SteveLockley Dec 23, 2022
c018e95
IXShapeMaterialLayer added
SteveLockley Dec 23, 2022
504e18b
Names added to IXShapeMaterialLayer
SteveLockley Dec 23, 2022
a9cab4e
IXShapeMaterialItem added
SteveLockley Dec 23, 2022
be0c10f
Colour support added to shapestore referencing
SteveLockley Dec 23, 2022
b7843a8
IXShapeInstance xtended to handle Materials and Colours
SteveLockley Dec 23, 2022
4c28c0c
IXShapeItem Id made settable
SteveLockley Dec 31, 2022
2d472b6
Fraction addded to IXShapeMaterial
SteveLockley Dec 31, 2022
b56852f
IXShapeStore updated with Material support
SteveLockley Jan 1, 2023
294a271
IXShapeMaterialConstituent added
SteveLockley Jan 2, 2023
2ded6bd
NodeType updated
SteveLockley Jan 2, 2023
9779581
IfcCurve added to CurveType enum
SteveLockley Jan 2, 2023
9bfd1b7
Colour removed from IXShapeComponent
SteveLockley Jan 2, 2023
4502b5c
IXPlacedShapeGeometry extended to support Material, Colours and Trans…
SteveLockley Jan 2, 2023
d6ca1d3
Ifc property of IXShapeStore changed to Type from short
SteveLockley Jan 2, 2023
1085ec4
IXPlacedShapeGeometry Material property changed to IXShapeMaterialIte…
SteveLockley Jan 2, 2023
7819633
XDirection enhanced to allow setters
SteveLockley Jan 3, 2023
0f22598
add IsColliding to the shape service
Jan 3, 2023
236684a
XColourRGB chabged to be a class from struct
SteveLockley Jan 3, 2023
75e00a6
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Jan 3, 2023
68ed2c3
Tidy
SteveLockley Jan 3, 2023
31ca177
fix: rename proximity test to IsOverlapping
Jan 5, 2023
eb88e3c
IfcType made a short
SteveLockley Jan 5, 2023
a564f21
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Jan 5, 2023
31bd63c
feat: model factors abstractions
Jan 6, 2023
8686fe7
updated default node type value
Jan 6, 2023
c0e2d03
added product group
Jan 6, 2023
d13e669
IXLocation now implements IXMatrix
Jan 6, 2023
9a77e69
Removed Transforamtion and add Shape properties to IXPlacedShapeGeometry
SteveLockley Jan 7, 2023
a94f196
ToByteArray added to IXMatrix
SteveLockley Jan 7, 2023
74c4889
tidy IXLocation
SteveLockley Jan 7, 2023
8cfd02a
BRepShapePart added to NodeType
SteveLockley Jan 7, 2023
e3a62f7
NodeType of IXShapeItem made settable
SteveLockley Jan 7, 2023
1339685
BRepShapeNonUniformTransformed added to NodeType
SteveLockley Jan 7, 2023
c16c181
Updated Essentials develop version.
andyward Jan 7, 2023
14fcbdf
IXAxisAlignedBoundingBox support added to GeeometryPrimitives
SteveLockley Jan 7, 2023
c60530f
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Jan 7, 2023
edf836c
Added Build method for Bounding Box
SteveLockley Jan 8, 2023
dcbae45
Translated method added to IXAxisAlignedBoundingBox
SteveLockley Jan 9, 2023
9b59620
Updated IXAxisAlignedBoundingBox Translated
SteveLockley Jan 9, 2023
1bf070d
Added IXLocation Translation setter
SteveLockley Jan 9, 2023
29e3d04
SetTranslation of IXLocation updated
SteveLockley Jan 9, 2023
7c1d72b
SetTranslation return type made void
SteveLockley Jan 9, 2023
7f1537d
Added Translated method to IXLocation
SteveLockley Jan 9, 2023
4b94cd1
fix: IsOverlapping accepts mesh factors to incapsulate tolerance, lin…
Jan 9, 2023
70e4b8e
LayerSetUsage parameters moved to ShapeInstance
SteveLockley Jan 10, 2023
6b9d7fd
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Jan 10, 2023
78ae1e1
IXShapeLayeredMaterialInstance added
SteveLockley Jan 10, 2023
0bb955c
LayeredMaterialInstance added to NodeType
SteveLockley Jan 10, 2023
0d30f88
Priority and IsVentilated added to IXShapeMaterialLayer
SteveLockley Jan 10, 2023
291da57
MaterialLayer added as a material node type
SteveLockley Jan 10, 2023
6f9018b
IXShapeMaterialLayer made IXShapeMaterialItem
SteveLockley Jan 10, 2023
f2bbffb
typos fix
SteveLockley Jan 10, 2023
c70738c
GetSecondDerivative added to IXCurve
SteveLockley Jan 11, 2023
4af5c84
Typo fixed
SteveLockley Jan 11, 2023
e8f251d
Derivatives use Direction rather than vector
SteveLockley Jan 11, 2023
d904371
Axis bult with direction as well as vector
SteveLockley Jan 11, 2023
76bfd55
add Intersect to solid service
Jan 12, 2023
f42b1d0
add Intersect with single shape
Jan 12, 2023
4e85323
add precision param to shape boolean operations
Jan 17, 2023
0ba2791
XbimGeometry Exceptions added
SteveLockley Jan 19, 2023
f5875ad
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Jan 19, 2023
c7be92d
Extension methods added for IModel to support Tags with key value pai…
SteveLockley Jan 21, 2023
152cb1a
Update Essentials for new GE interface & Removes netcoreApp3.1
andyward Feb 1, 2023
b9e62ce
material list defintion support
Feb 1, 2023
76f5339
Updated Essentials: includes new DI approach
andyward Feb 2, 2023
bcc6a5b
Update Essentials
andyward Feb 2, 2023
4fea10d
Bumped Essentials
andyward Feb 3, 2023
7d6430a
Openings and Projections added to Shape Assembly interface
SteveLockley Feb 7, 2023
621de59
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Feb 7, 2023
2938e71
Update Essentials with Logging update
andyward Feb 7, 2023
723566f
BuildCurve added to IXProfileFactory interface
SteveLockley Feb 11, 2023
4c159db
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Feb 11, 2023
1c64dfe
includeTangents argument in IsOverlapping
Feb 14, 2023
bef3426
remove param includetangents
Feb 14, 2023
f0279fe
includeTangents added
Feb 14, 2023
2479116
fix(ShapeService.IsOverlapping): remove bool parameter to use toleran…
Feb 15, 2023
95fc14f
Solid and Wite interfaces extended
SteveLockley Feb 18, 2023
c472946
Merge branch 'master' of https://github.com/xBimTeam/Xbim.Geometry.Ab…
SteveLockley Feb 18, 2023
9c8205b
Updated Essentials - DI updates
andyward Feb 19, 2023
7aae352
Updated v6 Essentials
andyward Feb 20, 2023
a73c4e1
Bumped Essentials for Ifc4x3 fix
andyward Feb 21, 2023
18c860d
BRepDocumentManager added to IXModelGeometryService
SteveLockley Feb 22, 2023
8a9578d
Essentials++
SteveLockley Feb 25, 2023
cabd5c7
Extruded solids returned as IXShape to support multiple solids
SteveLockley Mar 28, 2023
3709f16
SolidFactory interface extended
SteveLockley Mar 29, 2023
5ce1674
ShapeService exception added
Mar 30, 2023
d6dfc9c
Merge 'master' into develop
Mar 30, 2023
6f1c442
Add IXWexBimMeshFactory interface
Apr 5, 2023
47f50ac
Todo comment about IXWexBimMeshFactory
Apr 5, 2023
ed643d1
Add WexBimMeshFactory property to IXModelGeometryService interface
Apr 6, 2023
10c73fb
fix: remove wexbim creation methods from ShapeService
Apr 6, 2023
4aa5500
Expose mesh factors and scale for WexBIM creation
Apr 6, 2023
59c4f1d
fix: duplicate methods in wexbim mesh factory
Apr 6, 2023
322476e
CreateWexBimMesh with explicit meshing parameters
Apr 6, 2023
5e5b7e2
add IFC types props to ixplaced geometry
Apr 17, 2023
c14a498
ProjectionFactory: explicit flag to invoke eact footprint creation
Apr 17, 2023
6e2f0fe
fix: remove internal modifier from GeometryIfcType prop
Apr 17, 2023
95f8077
fix: placed shape geometry IfcType renamed to ProductIfcType
Apr 19, 2023
8181665
fix: revert IfcType propery in IXPlacedShapeGeometry
Apr 27, 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
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
46f7af5
Add GetMeshFactors to IXGeometryPrimitives
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
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
ef07c11
merge master
Jul 26, 2023
fdd62b4
Add IXModelPlacementBuilder interface
Jul 28, 2023
0d674b0
Add ModelPlacementBuilder property to the ModelGeometryService
Jul 28, 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
7421cde
feat: WCS setter and flag in PlacedShapeGeometries enumerator
Jul 31, 2023
707ed4a
Add proper folder structure
Aug 8, 2023
83fbc64
add TriangulatedShape node type
Sep 14, 2023
f954b24
Merge branch 'master' into develop
Sep 14, 2023
fca5474
Added XSolidModelType.IfcSectionedSolidHorizontal
CBenghi May 2, 2024
6486d9b
Upgrade Packages
Sep 5, 2024
97b8d17
Merge remote-tracking branch 'origin/develop' into develop
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
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
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
564a0b8
Replaced BRepDocumentManager with ShapeBinarySerializer in IXModelGeo…
Dec 10, 2024
6448966
Updated Essentials
andyward Dec 15, 2024
2530cd7
Updated Essentials - IFC4x3 improvements
andyward Mar 6, 2025
75da181
Updated essentials and restored strong naming.
CBenghi Mar 25, 2025
142628e
Updated latest master Essentials
andyward Mar 31, 2025
517981c
Update Xbim Essentials package
May 27, 2025
5fda26b
Upgrade Xbim.Essentials package
May 29, 2025
82bd149
Upgrade Essentials
May 29, 2025
c723863
Update Xbim Essentials package
Jun 17, 2025
49107fe
Lowest Essentials reference version is 6.0.53; without Xbim.Tessellat…
Jun 17, 2025
5fc5ca4
Upgrade Xbim Essentials
Jun 19, 2025
7a7b795
Update Essentials
andyward Aug 9, 2025
6f205a5
Bumped Essentials
andyward Oct 30, 2025
bea1f5d
Updated Essentials
andyward Oct 31, 2025
1ae184b
Updated Essentials to master
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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ 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.7.0 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
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
}
}
37 changes: 37 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XCurveType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

namespace Xbim.Geometry.Abstractions
{
public enum XCurveType
{
IfcCurve, //specific type unknown
IfcBSplineCurveWithKnots,
IfcCircle,
IfcCompositeCurve,
IfcCompositeCurveOnSurface,
IfcEllipse,
IfcIndexedPolyCurve,
IfcLine,
IfcOffsetCurve3D,
IfcOffsetCurve2D,
IfcPcurve,
IfcPolyline,
IfcRationalBSplineCurveWithKnots,
IfcSurfaceCurve,
IfcTrimmedCurve,

// IFC4x3
IfcSineSpiral,
IfcCosineSpiral,
IfcClothoid,
IfcSecondOrderPolynomialSpiral,
IfcThirdOrderPolynomialSpiral,
IfcSeventhOrderPolynomialSpiral,

IfcPolynomialCurve,

IfcGradientCurve,
IfcSegmentedReferenceCurve

};

}
37 changes: 37 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XGeometricContinuity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
namespace Xbim.Geometry.Abstractions
{
public enum XGeometricContinuity
{
/// <summary>
/// only geometric continuity.
/// </summary>
GeomAbs_C0,
/// <summary>
/// for each point on the curve, the tangent vectors "on the right" and "on the left" are collinear with the same orientation.
/// </summary>
GeomAbs_G1,
/// <summary>
/// continuity of the first derivative. The "C1" curve is also "G1" but, in addition, the tangent vectors " on the right" and "on the left" are equal.
/// continuity of the first derivatives; any isoparametric (in U or V) of a surface "C1" is also "C1".
/// </summary>
GeomAbs_C1,
/// <summary>
/// for each point on the curve, the normalized normal vectors "on the right" and "on the left" are equal.
/// for BSpline curves only; "on the right" and "on the left" of a knot the computation of the "main curvature radii" and the "main directions" (when they exist) gives the same result.
/// </summary>
GeomAbs_G2,
/// <summary>
/// continuity of the second derivative.
/// </summary>
GeomAbs_C2,
/// <summary>
/// continuity of the third derivative.
/// </summary>
GeomAbs_C3,
/// <summary>
/// continuity of any N-th derivative, whatever is the value given for N (infinite order of continuity). We may also say that a surface is "Ci" in u, and "Cj" in v to indicate the continuity of its derivatives up to the order i in the u parametric direction, and j in the v parametric direction.
/// </summary>
GeomAbs_CN
}
}

8 changes: 8 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XGeometryEngineVersion.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Xbim.Geometry.Abstractions
{
public enum XGeometryEngineVersion
{
V5,
V6
}
}
10 changes: 10 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XOrientation.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Xbim.Geometry.Abstractions
{
public enum XOrientation
{
Forward,
Reversed,
Internal,
External
}
}
29 changes: 29 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XProfileDefType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
namespace Xbim.Geometry.Abstractions
{
public enum XProfileDefType
{
IfcArbitraryClosedProfileDef,
IfcArbitraryProfileDefWithVoids,
IfcArbitraryOpenProfileDef,
IfcCenterLineProfileDef,
IfcCompositeProfileDef,
IfcDerivedProfileDef,
IfcMirroredProfileDef,
IfcAsymmetricIShapeProfileDef,
IfcCShapeProfileDef,
IfcCircleProfileDef,
IfcCircleHollowProfileDef,
IfcEllipseProfileDef,
IfcIShapeProfileDef,
IfcLShapeProfileDef,
IfcRectangleProfileDef,
IfcRectangleHollowProfileDef,
IfcRoundedRectangleProfileDef,
IfcTShapeProfileDef,
IfcTrapeziumProfileDef, // deprecated in 4x3
IfcUShapeProfileDef,
IfcZShapeProfileDef,

IfcOpenCrossProfileDef // new in 4x3
}
}
13 changes: 13 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XShapeType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace Xbim.Geometry.Abstractions
{
public enum XShapeType : byte
{
Vertex,
Edge,
Wire,
Face,
Shell,
Solid,
Compound
}
}
26 changes: 26 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XSolidModelType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
namespace Xbim.Geometry.Abstractions
{
/// <summary>
/// The concrete Ifc solid types
/// </summary>
public enum XSolidModelType
{
IfcCsgSolid,
IfcSweptDiskSolid,
IfcSweptDiskSolidPolygonal,
IfcAdvancedBrep,
IfcAdvancedBrepWithVoids,
IfcFacetedBrep,
IfcFacetedBrepWithVoids,
IfcExtrudedAreaSolid,
IfcExtrudedAreaSolidTapered,
IfcFixedReferenceSweptAreaSolid,
IfcRevolvedAreaSolid,
IfcRevolvedAreaSolidTapered,
IfcSectionedSolidHorizontal, // new in IFC4x1 Release Candidate 3
IfcSurfaceCurveSweptAreaSolid,

// Ifc4x3
IfcDirectrixDerivedReferenceSweptAreaSolid
}
}
20 changes: 20 additions & 0 deletions Xbim.Geometry.Abstractions/Enums/XSurfaceType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
namespace Xbim.Geometry.Abstractions
{
public enum XSurfaceType
{
IfcBSplineSurfaceWithKnots,
IfcRationalBSplineSurfaceWithKnots,
IfcCurveBoundedPlane,
IfcCurveBoundedSurface,
IfcRectangularTrimmedSurface,
IfcSurfaceOfLinearExtrusion,
IfcSurfaceOfRevolution,
IfcCylindricalSurface,
IfcPlane,
IfcSphericalSurface,
IfcToroidalSurface,
// IFC4x3
IfcSectionedSurface

}
}
Loading