IFC4.3.x-development icon indicating copy to clipboard operation
IFC4.3.x-development copied to clipboard

IfcSweptDiskSolid informal proposition does not consider Start and End param

Open aothms opened this issue 3 years ago • 6 comments

The FilletRadius, if provided, has to be smaller then or equal to the length of the start and end segment of the IfcPolyline, and smaller then or equal to one half of the lenght of the shortest inner segment.

My proposal would be to deprecate StartParam and EndParam for IfcSweptDiskSolid. Start and EndParam is pretty confusing (polyline parametrization is non-uniform, lines can have non-normalized direction vectors, ...) and redundant with TrimmedCurve.

aothms avatar Sep 18 '22 10:09 aothms

+1

Moult avatar Sep 18 '22 12:09 Moult

Thanks @Moult

Another comment in case we decide the other way and fix the proposition: The proposition also doesn't include any note on that the directrix might actually be closed, in which case there is no start and end segment.

aothms avatar Sep 18 '22 12:09 aothms

-1 arn't there cases, where the directrix maybe longer then the desired volume? The previous change was to make StartParam and EndParam optional for most cases (where the sweep starts and ends at the start and end of the directrix) but allow for exceptional cases, where it is different.

PS: in STEP Part 42 both are mandatory

TLiebich avatar Sep 18 '22 17:09 TLiebich

or +1, it the omision of StartParam and EndParam is restricted to the constraint subtype IfcSweptDiskSolidPolygonal

TLiebich avatar Sep 18 '22 17:09 TLiebich

Well, we don't need to decide this now. But there's quite some confusion on StartParam and EndParam on the forums. And looking at the sources of the implementations I have access to, they do make different assumptions.

The legacy of 2x3 (required params and no real parametrization of most curves) meant that in most cases the range was (0, 1) and always ignored on import.

This is now slowly being looked at in simple cases where there is a single conical curve for example. But in these cases there is trimmed curve that is a well supported alternative.

For polygonal directrices I really wouldn't see why you want want to express a swept parametric range and not just move the individual points.

A note on why implementation is difficult:

And the parametric ranges of the typical directrix curves

  • IfcPolyline piecewise function with every segment has a range of (i, i+1) regardless of segment length
  • IfcCompositeCurve accumulation of the parametric ranges of the referenced bounded curves
  • IfcIndexedPolyCurve unspecified

are all different. Most implementations I know of are not able to retain these kind of parametric ranges in their data model after evaluating the wire/loop. For example open cascade does not support non-normalized line vectors (ifc does, polyline is always non-normalized).

aothms avatar Sep 19 '22 08:09 aothms

see your points, but clarifying the parameterisation of curves is an important task anyway (maybe followed by a new issue), also trimmed curves and the new alignement-related curves all uses parameter values based on the curve parameterization for trimmung.

TLiebich avatar Sep 19 '22 10:09 TLiebich