bSI-InfraRoom / bSI-InfraRoom/IFC-Specification

IfcSegment and invalid rules

Open
#461 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
27
Forks
24
PR merge metrics
No merged PRs in 30d

Description

Due to the new intermediate subtype IfcSegment, there are a couple of where rules and functions now invalid.

E.g

**SameDim**: Ensures, that all segments used in the curve have the same dimensionality.

SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0
^^^ ^^^ Dim not available

http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcCompositeCurve.htm

Surfs := IfcGetBasisSurface(C\IfcCompositeCurve.Segments[1].ParentCurve);
^^^^^^^^^^^

http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcGetBasisSurface.htm

The result of having to make these adaptations is a further deviation from p42 https://www.steptools.com/stds/stp_aim/html/t_get_basis_surface.html

Instead of introducing a novel intermediate class in one of the most used constructs. Did the team consider using direct inheritance:

**instead of:**

![afbeelding](https://user-images.githubusercontent.com/1096535/178724659-ce695a2f-5228-4480-bb29-e8fae21dc9cb.png)

*the following:*

![compcurve dot](https://user-images.githubusercontent.com/1096535/178726421-38a6eec9-6976-43f4-a189-8acb8d2044ec.png)

The only notable difference I can think of is the availability of the SameSense attribute on IfcCurveSegment, which can be redeclared as derived if it's undesirable to make that decision in the exchange.

It would eliminate the need to update the rules. Curious to hear your thoughts when you were debating this.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.