is there a way to enable assembly layers with the option "include submodels" and actually get a result for the assembled components?
I mean, the "Preview Results" window shows results, but when hiding this rule based layer (associative, rules enabled, independent) nothing happens. The message reads "Rules cannot be evaluated for submodels of a Layer model."
We have been working with default layers instead of rules until now. However, we've started experiencing problems in assemblies with wrongly set layer options in assembled sub models, since these are "released" in our pdm system and cannot be changed without further ado.
So, I would like to set the layers by rules in an assembly discounting the submodels.
I found the ppt "Take time to obey the rules" here and started experimenting with rule driven layers. But the problem remains: When enabling "include submodels" all I get is "Rules cannot be evaluated for submodels of a Layer model."
I have to "expand" them, but then each model has to be changed, which is exactly what I am trying to avoid.
Not sure, but maybe using the config.pro option: save_display_status_in_submodel set to NO would allow you to override and save the display status of sub-components in the top-level assembly.
Thanks for your input. I gave it a try, but unfortunately it doesn't work. When "propagating the status" without "save status in submodels" (btw there is a checkbox for that in the layer settings), the rule driven layers still get written into the submodels totally ignorant of whether they are set to show or hide.
Wow this is stupid: Even if I change the setting within the submodel, nothing changes in the assembly. The stuff has to be expanded, otherwise no use.
What I've done is suppress all the models in the assembly, then you can insert that in a temp assy, and propagate the rules to that assembly, then exit out of that temp assy, and save the lower assy, then resume the parts..
Thanks for the tip, I tried it as you suggested (hope so).
The temp assy already had the rule based layers, so this is what I did:
- suppressed the components
- inserted the assy in the temp assy
- "extended rules"
- saved the assy, erased the temp,
- resumed components.
This is a way to copy the rule based layers to another assembly, but hiding those created assy layers has no impact on the visiblity of the features of components since there is no submodel information to hide or show in these layers.
How do you actually "propagate" if not by "extending"? Am I missing something?
I think if it's really not possible to manage the visiblity of features within an assembly without changing released sub components, this is a major defect in the software based on pre-pdm-philosophy.
Extending the rules is the only way I know. I haven't found a way yet to simply "copy" the rules.
Did I answer the question?
I see how you get the message "Rules cannot be evaluated for submodels of a Layer model". I think I can see what you are trying to do, but I don't think you can collect items from sub-components onto an assembly layer...
If what you are trying to do is hide some datums/features from released (hence "read-only") sub-components, then change the config option "save_display_status_in_submodel" to NO; then, hide the sub-component items of interest (in the top assembly context); then save the top assembly layer status...
The system will save the display status of the sub-components with the top assembly, leaving the sub-component's status intact...
With CTRL+F, you can use the same search tool that you were trying to use from within the layer ui to "collect" the items.
FYI, Another way to copy rule-based layers between parts/assemblies:
1) Select the layers in the "template part/assembly" - CTRL+C to copy them
2) Open the target part/assembly - CTRL+V to paste them. Rules will be transferred.
Do I understand that you want to control the visibility of component level items at the assembly level? In other words, add datum planes, points, curves, etc. from a component to an assy layer and hide them inside that assy without adding them to a layer in the component (part or assy). This is not possible, that's not how layers work. You can only add items native to that assy to an assy layer. To control items at the component level, they must be on a component level layer.
Yes, that is exactly what I'd like to do.
On the one hand I understand it when you say it's not possible, for I have come to the same conclusion so far and I guess it might be a performance issue as well, if the components don't report their layers and features to the assembly but the assembly has to regather it everytime.
On the other hand, I ask myself
Do you think a product idea regarding this would be of use, or is ptc's reaction most likely to be: "Yeah, well, no, sorry no way."
Sorry, you lost me in your second paragraph. The problem is, that there are no sub model items to hide in the top assembly context since the layers are empty unless I extend them and thus change the sub models.
The copy & paste is a nice tip, thanks for that. I wouldn't have expected that this might work in this context.