The integrity of classifications
-
(Nested) classifications don’t work well when it comes to updating models.
Basically it seems like if “Classificaiton ONE” is filtering the model and “Classification TWO” is used as a component filter then C. TWO might not be up to date as it takes no or previous results of C. ONE.
Example:
This is an updated Model (showing the elements via the model tree)

… and this is the result of a classification in a scenario described above and clearly not reflecting the updates of the model. Not present GUIDs are not present any more, but new elements are not considered.

This problem is actually not new and as an experienced user you know you have to open/close all the classificications in “the correct order” and this problem “is fixed”.
So a few remarks here:
- There is no actual hints that this phenomen or other failures which classifications are happening
- Well actually there are warnings e.g. when refered classifications are missing - but just hidden in the log …
2023-01-30 20:34:08.797+0100 [Open model] WARN c.s.s.p.c.Classification - Referred classification is not open: "Classification B" refers "Classification A"- As classifications are not always instantly documented and quick changes are always made, probably are working multiple people on the same file, … all in all I have to doublecheck everything to make sure I can trust the classification results as they make sure the latest changes are being checked.
- Due to the fact that this “manual classification update” task has to be monitored to make sure everything is correct and mid to large sized models have various classification processing times, this can take a lot of time.
- It’s also something which is making Autorun more complex
All in all it would be good to have
- an overview of classification dependecies e.g. like class diagrams to easily see how they work together to make documentation easier and so new colleages can also easily understand the relationships
- a smart update process which automatically detects the relationship hierarchy and make sure classifications are also processed in the correct order when an update is triggered - or which uses checksums in the end to verify that the results are valid
- the option to enable warnings to get instant feedback which classifcations might have an isse due to missing references and so on
- probably even the possibility to manually trigger a “refresh all classifcations” as depending on the amount of hierachy levels in nested classifications a simply “refresh all” solves this issue on the second or third iteration as then first level classifications shouldn’t change anymore anyhow.
- Some more smart ideas …
All in all I still have not understood this issue as sometimes it seems that a simple restart is doing the job, sometimes not. So any advice on how to deal with this is very welcome. And yes this might also be an issue how people are using Solibri but imho it shouldn’t be possible so easily to generate logical errors as this is crucial - not just for new users, as not always the discrepancies are so clear visible as in the example mentioned above.
-
@JSN Would it be possible for you to create a simple scenario where the classification update does not work and share those files. Classification update should work and if it doesn’t we should find what’s wrong with it.
-
So how does it work?
Afaik if I load Classification B (which requires A) then nothing happens (also no warning) until I load A. Then A & B should be fine - I guess certain actions like loading/updating models/changing classifications … trigger (all?) classifications to be reloaded. But in which order?
If Classification C requires A & B then it should have no problem to scale.
If Classification A requires a Classification E (we assume it’s loaded) then I guess E is updated before all others. Is it?And what if E is required as a column in A & B -> does this make any difference on calling/refreshing E or is it just iterating trough E’s values?
Problematic would of course b an accidental short cirtcuit when (A requires B and B requires A) - if this is the case e.g. on a classifcation change, then you classifications don’t update correctly - it seems like they only loose their results if a model is changed.
In general we try to use classifications in a kind of hierarchy from top to bottom to avoid such little accidents, but we also want to optimize their behaviour. Currently it seems like with many (depending) classifications little changes to classifications take a looong time.
Anyhow, I will try to find some time the above described behaviour and recreate a small mockup which can be transmitted for furhter investigation. In the meantime it would be good to understand the way how classifications work a bit more.
Copyright © 2025 Solibri Inc. | Powered by NodeBB