Hello ,
We just did the update to 2014 and I receive following Error within the root design.
Exception ...... iv_ensureSubAssemblyExists [Root.DesignFreezeAssembly.MD150_360]
Circular Reference ...... %%childSpecLists
The structure is very simple :
We do not understand what is the problem as it was working in 2013.
Please support if someone knows what might be the reason for this circular Error.
Thank you / Regards
Timo
There isn't enough code here for me to be definitive, but I can say almost certainly that your conditional design expression is causing the problem. Either pType or pSize depends on some reference which requires the children rule to be evaluated. Because you are already evaluating the children rule, it is circular. This may have been true in the past, and it was being ignored. But ignoring these kinds of things proved to be a problem, and so we no longer ignore such errors. You didn't say precisely what release you were upgrading from, but this is probably why you are seeing a change in behavior if the code has not changed.
The way out is to have a rule that can compute the needed info without having to compute all the children. There are lots of ways to do this depending on the case. Without seeing more, I can't give better advice. But it should be obvious that you can't have the children looking at each other to see if they should exist, and because of the way evaluation works, the children critical value.
Thank you Jack,
We are updating from 2013 R2. I removed the conditional parameters and the result is the same.
I find it very strange that the subdesign , if I make it root, is working perfectly.
Hope this is enough information, otherwise let me know what screenshots you want.
Thank you / Regards
Timo
It isn't what I thought. Since this uses iLogic, and the circularity appears within Autodesk rules, I am going to ask the people more familiar with this area to look at it.
We have found something that may be related. I would like you to try to set ExpandHierarchy? to false. This is a parameter on %%IviLogicAssemblyDocument. I don't have your source, so I don't know the best place to put this change, but you can always change it in the library for a test. There is a reported defect DE1702, which appears to have the same behavior. In my view, the default should be false. I am not sure why it isn't on this, we are still investigating. But if changing it fixes the circularReference, then we are on the right track.
This will have the side effect of hiding many children in the tree view, and may affect other outputs, like STL generation.
Hello Jack ,
Yes the cirucular reference is gone now. I did NOT know what you meant with Library so I simply put it in the adopted part code.
Is there anything else I need to do or is this meant to be the solution ?
Does it affect the I Logic rules or the drawing output ?
Thank you / Regards
Timo
As I said, we are still investigating the effect of this change. Your change is the better of the options I suggested. Let us know if you run into any issues that may be related.
Hi Jack,
Yes, the IlogicAssembly does not react on parameter changes as it used to do.
Practically it seems that it does not react if rules are used to set “COMPONENT VISIBLE = True “ or False.
Regards
Timo