tumcms / Open-Infra-Platform

This is the official repository of the open-source Open Infra Platform software (as of April 2020).
Other
50 stars 23 forks source link

Example file "cube-advanced-brep" is not working #60

Closed SamuilsRulovs closed 2 years ago

SamuilsRulovs commented 4 years ago

The file is here. Current version crashes.

SamuilsRulovs commented 4 years ago

As of today, still not working

christophKaiser commented 3 years ago

The following table shows in the left part a subset of ifc-types which are used in the cube-advanced-brep.ifc. The inheritance structure according to the ifc-documentation is shown in the middle part. The corresponding functions and their converter class in open-infra-plattform are shown in the right part.

The ❌ means that there is no converter function (or at least I wasn't able to found it). The ❓ means that there is something, but the code probably will not do the necessary job for this example file. Ifc-classes in italic and in parentheses are just informational.

I made this table to get a personal overview on which converter functions will be involved for this example file - there is no claim for completeness and correctness. Furthermore, for making this example file workable, it shows the pending work, As well, the table identifies the connection-points / -functions between the pending work and the existing code. See this table just as nice piece of information, maybe someone has more experience to estimate the needed effort.

Structure in ifc-File ifc definition OIP
example cube-advanced-brep.ifc … subtype of … converter function
IfcShapeRepresentation IfcRepresentation Representation convertIfcRepresentation
IfcAdvancedBRep IfcRepresentationItem Representation convertIfcRepresentationItem
> IfcGeometricRepressentationItem Representation convertIfcGeometricRepresentationItem
>> IfcSolidModel SolidModel convertIfcSolidModel
>>> IfcManifoldSolidBrep SolidModel convertIfcManifoldSolidBrep
>>>> IfcAdvancedBRep :question:SolidModel :question:convertIfcAdvancedBrep
IfcClosedShell IfcClosedShell SolidModel convertIfcClosedShell
IfcAdvancedFace IfcFace Face convertIfcFace, called by convertIfcFaceList
> IfcFaceSurface :x:Face :x:convertIfcFaceSurface
>> IfcAdvancedFace :x:Face :x:convertIfcAdvancedFace
> IfcFaceOuterBound IfcFaceBound :question:Face :question:convertIfcFace ??
> IfcFaceOuterBound :question:Face :question:convertIfcFace ??
>> IfcEdgeLoop IfcLoop Curve convertIfcLoop
> IfcEdgeLoop :question:Curve :question:convertIfcEdgeLoop
>>> IfcOrientedEdge (IfcEdge) :question:Curve :question:convertIfcEdge
> IfcOrientedEdge :x:Curve :x:convertIfcOrientedEdge
>>>> IfcEdgeCurve IfcEdge :question:Curve :question:convertIfcEdge
> IfcEdgeCurve :x:Curve :x:convertIfcEdgeCurve
>>>>> IfcVertexPoint (IfcRepresentationItem) Representation convertIfcRepresentationItem
(> IfcTopologicalRepresentationItem) :question:Representation :question:convertIfcTopologicalRepresentationItem
>> IfcVertex :x:Placement :x:convertIfcVertex
>>> IfcVertexPoint :x:Placement :x:convertIfcVertexPoint
>>>>>> IfcCartesianPoint IfcPoint Placement convertIfcPoint
> IfcCartesianPoint Placement convertIfcCartesianPoint
>>>>> IfcPolyline IfcCurve Curve convertIfcCurve
> IfcBoundedCurve Curve convertIfcBoundedCurve
>> IfcPolyline Curve convertIfcPolyline
>>>>>> IfcCartesianPoint IfcCartesianPoint Placement convertIfcCartesianPoint
> IfcPlane IfcSurface Face convertIfcSurface
> IfcElementarySurface Face convertIfcElementarySurface
>> IfcPlane Face convertIfcPlane
>> IfcAxis2Placement3D IfcAxis2Placement3D Placement convertIfcAxis2Placement3D
>>> …
> IfcBSplineSurfaceWithKnots IfcSurface Face convertIfcSurface
> IfcBondedSurface Face convertIfcBoundedSurface
>> IfcBSplineSurface Face convertIfcBSplineSurface
>>> IfcBSplineSurfaceWithKnots Spline convertIfcBSplineSurfaceWithKnots
>> …

EDIT 19th June 2021: Updated row of IfcFace (including convertIfcFaceList)