-
Notifications
You must be signed in to change notification settings - Fork 87
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
HasCoordinateOperation constraint to all contexts cannot be satisfied #317
Comments
Yes, you need a new Following this, the documentation needs updating: the sentence "If there is more ... " shall be deleted. I'm open for discussion, if there should be a restriction, that all
I'm all for this. In the end, we're not building anything in the clouds.
Use zeros in
I'd say completely meaningless. |
Cool! Your explanation makes sense. I'm not a domain expert in infra / gis so would you mind translating your comments into a proposal? Also ping @SergejMuhic and @LeeGregory12d is what @pjanck saying making sense? |
true north is an attribute introduced in early versions of IFC way before |
Deprecation of |
Sure, there are currently many ways of expressing this. One thing we lose though is that semantically TrueNorth has quite the explicit meaning and is therefore really nice from the point of view of documenting the concept. |
@SergejMuhic @pjanck agreed - I've referenced #323 which solves the true north issue. If we come to an agreement on #323 we can also solve this issue. |
to be depreciated and to be fixed by @aothms |
(note deprecation of entity attribute is currently a md only change and can be done by anybody) |
Has somebody done this? |
This issue is not about the deprecation of true north - that is a separate issue that is being resolved in #323 . This issue is about the cardinality of the SourceCRS in IfcCoordinateOperation. We have this situation: IfcGeometricRepresentationContext --HasCoordinateOperation S[0:1]-->IfcCoordinateOperation and inversely: IfcGeometricRepresentationContext <--SourceCRS [1:1]-- IfcCoordinateOperation This means that each each representation context has its own coordinate operation. This raises 3 questions:
The third issue is a main concern. It is paradigm shift in how geometric contexts are used. I would propose a change in cardinality so that SourceCRS becomes S[0:N] - that way many contexts can share the same coordinate operation if they indeed are in the same coordinate space ... but that is not the whole solution. Because how do you have three contexts for 2 bridges and an alignment? Do you have three Model contexts? How does software interpret that? How do you say "this model context" is for bridge? Where do you give it a name? |
Quite a summary! :) A lot to unpack, I'll try my best - I may have missed something.
This is of course sub-optimal. However, changing the cardinality of
Which software are you referring to? I don't understand the problem.
Well, you've just summarized my PhD topic in two short questions. :) The answer is not trivial. And definitely not short enough for a GitHub issue answer. See bSI-InfraRoom/IFC-infra-unit-test#85 for an example named
Good approach, yes.
Well, each geometric representation context defines a coordinate system in its 5th attribute
Yes to main concern. Again, my PhD topic :) Still writing, though ... I wouldn't say that it is a huge paradigm shift now - it was when the whole thing was introduced in IFC4.
Yes.
Good question. As three contexts? See
Do you mean during the creation of a model in software, or during the creation of an IFC dataset? For the former: anyway you see fit; for the latter: link geometries to the correct context. Or am I misunderstanding the question?
Name of the context? |
Any software has no way of knowing that two MapConversions are meant (i.e. intended by the authoring user) to be identical.
Great justification, I retract my argument there and you are correct :)
I guess too - there's nowhere else to put it :( This is all assumptions and not documented.
OK - let's hold off on this, and I'd love to test your sample file when I get some time in the coming months or so. I have the luxury of being a non-domain expert, so if we can distill the complexities of what takes a PhD to solve into a simple but extensible thing that non-experts like myself can understand, that'd be a huge win.
Yes, agreed. Can I confirm that for now in IFC4.3 we just need to have multiple contexts, each with its own map conversion? If so, perhaps we can at least improve the documentation and write a sentence or two about it. Can you propose some sentences to write? |
Original issue: https://forums.buildingsmart.org/t/hascoordinateoperation-constraint-to-all-contexts-cannot-be-satisfied/3502
The docs state:
HasCoordinateOperation is an inverse attribute, which points to an
IfcCoordinateOperation
(i.e. anIfcMapConversion
. Specifically, theSourceCRS
refers to theIfcGeometricRepresentationContext
, and theTargetCRS
refers to theIfcProjectedCRS
.Therefore, it is impossible to have an identical instance of IfcCoordinateOperation. You will need a new
IfcMapConversion
per context. This is, well, not very good. All contexts should have the same map conversion, unless you want users brains to explode :slight_smile:An additional impact of this is that it becomes mandatory to have an IfcMapConversion, otherwise your IfcProjectedCRS is not going to be linked to your context. (Note: technically speaking you could have an IfcProjectedCRS without an IfcMapConversion but the entity is unrelated, which is also pretty poor). Some might argue that this is not quite correct, as in theory you might want a situation where you have an IfcProjectedCRS without any conversion (i.e. your geometric context is already in the map CRS). This happens a lot of civil / infrastructure projects, I would imagine.
Funnily enough, it is also exactly in this scenario which makes the true north attribute a bit meaningless, since it is no longer clear which easting / northing is being specified. Related to #315.
The text was updated successfully, but these errors were encountered: