Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mixing length and param value? #8

Open
aothms opened this issue Sep 2, 2023 · 11 comments
Open

Mixing length and param value? #8

aothms opened this issue Sep 2, 2023 · 11 comments

Comments

@aothms
Copy link
Contributor

aothms commented Sep 2, 2023

@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?

#80 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #83, IFCNONNEGATIVELENGTHMEASURE(0.), IFCPARAMETERVALUE(450.000218741065), #84);

@peterrdf
Copy link

peterrdf commented Sep 2, 2023

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.

@peterrdf
Copy link

peterrdf commented Sep 2, 2023

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

@aothms
Copy link
Contributor Author

aothms commented Sep 2, 2023

If you could that would be wonderful!

@RickBrice
Copy link

RickBrice commented Sep 4, 2023

@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/Alignment_Geometry_-_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
Copy link
Contributor Author

aothms commented Sep 5, 2023

@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
Copy link

RickBrice commented Sep 6, 2023

@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
Copy link
Contributor Author

aothms commented Sep 6, 2023

@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
Copy link

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 added a commit that referenced this issue Sep 6, 2023
@aothms
Copy link
Contributor Author

aothms commented Sep 6, 2023

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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants