buildingSMART / IFC4.3.x-sample-models

8 stars 5 forks source link

Mixing length and param value? #8

Open aothms opened 1 year ago

aothms commented 1 year ago

@evandroAlfieri @peterrdf I don't recall all details from the conversations. Sorry for the noise. Were there any objects against mixing Length and Param values in the curve segments parameters?

https://github.com/buildingSMART/IFC4.3.x-sample-models/blob/f12921e02ea2e59fa55502c0730e38406ab794f7/models/alignment-geometries-and-linear-positioning/fixed-reference-swept-area-solid/fixed-reference-swept-area-solid.ifc#L87

peterrdf commented 1 year ago

In principle we agreed that mixing of Length Measures and Parameter values within one IfcCurveSegment instance is not preferable. However with the latest schema we use IfcLengthMeasure (instead of IfcNonNegativeLengthMeasure) and we agree not to use IfcParameterValue for now.

aothms commented 1 year ago

Right.. so what does that mean for these two samples? We should remove them. We only retain the stationing example?

https://github.com/buildingSMART/IFC4.3.x-sample-models/tree/main/models/alignment-geometries-and-linear-positioning/fixed-reference-swept-area-solid

https://github.com/buildingSMART/IFC4.3.x-sample-models/tree/main/models/alignment-geometries-and-linear-positioning/sectioned-solid-horizontal

peterrdf commented 1 year ago

I think we should regenerate the geometry based on the latest schema, will be able to do this in Monday

aothms commented 1 year ago

If you could that would be wonderful!

RickBrice commented 1 year ago

@aothms By chance I've been looking at these examples to understand how to model alignments. https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Product_Shape/Product_Geometric_Representation/Alignment_Geometry/AlignmentGeometry-_Segments/content.html states that

When defining the list of segments for the business logic (i.e., IfcAlignmentHorizontalSegment, IfcAlignmentVerticalSegment, IfcAlignmentCantSegment): A zero-length segment shall be added, at the end of the list of segments for IfcAlignmentSegment.DesignParameters. If the geometry definition is also present, then each of the zero-length segments shall have a IfcCurveSegment counterpart - of length zero.

I don't see the zero length segments (business or geometric) in these examples. Are they there?

Also, https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Object_Composition/Aggregation/Alignment_Aggregation_To_Project/content.html states that

Every IfcAlignment must be related to IfcProject using the IfcRelAggregates relationship - either directly or indirectly. The indirect case is when a child alignment is aggregated to a parent alignment. In this case, only the parent alignment must be related to IfcProject.

This is not the case in two of the examples.

If there is an omission can it be addressed?

aothms commented 1 year ago

@RickBrice you're fully correct. We'll have to see how it goes. There is a bit of a conflict between really wanting to include some examples that demonstrate the new concepts in 4.3, but at the same time, because of the time by which these kind of non-schema usage restrictions have remained somewhat fluid, we're really struggling to find something appropriate to include.

@peterrdf any updates on this by any chance? If it's too much trouble to regenerate this one it's also fine if you create something else that's a couple kilobytes in size (but preferably a little more diverse then just something from Alignment-atomic-testset).

Here's what I propose. I've added two bespoke validation rules for these two cases brought up by @RickBrice. By the time of our deadline of the 7th (yes, the day after tomorrow) we'll have to remove what's not conformant.

RickBrice commented 1 year ago

@aothms @peterrdf It also looks like the 4.1.5.1, https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/concepts/Object_Connectivity/Alignment_Spatial_Reference/content.html, tells us that IfcAlignment is associated with a spatial structure with IfcRelReferencedInSpatialStructure. I assume this means IfcSite, IfcBridge, IfcRoad, or IfcRailway, but none of these refer to this concept template. Actually I can't find anything that uses this concept template. Is it a leftover from 4x3 development?

aothms commented 1 year ago

@evandroAlfieri is more up to date on this.

We have a long way to go in terms which of the concepts describe (a) possibilities (b) recommendations (c) requirements. This template is more on the possibilities side. You can exchange an independent alignment (aggregated into the project) but if you also have road or rail in your model you can express their relationship with an alignment using IfcRelReferencedInSpatialStructure.

Note that IfcRelReferencedInSpatialStructure is not a tree-like relationship such as decomposition or containment in IFC. If you take a look at IfcObjectDefinition which defines the inverse called Decomposes it tells us that something can only take part in decomposition of at most one element due to the cardinality constraint SET [0:1] OF IfcRelAggregates. If you look at the inverse for IfcRelReferencedInSpatialStructure ReferencedInStructures in https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcProduct.htm you see that it has unbounded cardinality SET [0:?] OF IfcRelReferencedInSpatialStructure.

evandroAlfieri commented 1 year ago

Nothing to add to @aothms summary. For further questions on this matter, I'd suggest the community Forum - or get in touch via email. Let's try to stick to the issue title for this discussion. Thanks

aothms commented 1 year ago

Again @peterrdf came in and fixed the day. Models should agree now with all written agreements. Have another look when you get the time @RickBrice

RickBrice commented 1 year ago

@aothms Thanks - see the revisions and they seem to align with the specifications. I'll continue to review these examples and report any findings.