winquist wrote:
I don't think this really is a VISRETAIN issue. I have VISRETAIN=1 so that layer changes are retained after the session is over.
This is a problem with the drawing not recognizing LINETYPE changes in the XREF-drawing even when reloaded. For example, suppose that layer100 was dashed in drawing-A. When I then would attach drawing-A to drawing-B, I'd see that the layer drawing-A/layer100 was dashed. If I then were in drawing-A and changed layer100 to dash-dot, I would expect that to show up in drawing-B the next time it was opened.
It is a VISRETAIN issue. What you describe above is VISRETAIN doing its job when set to 1. When VISRETAIN = 1 in the parent drawing, it "retains" the layer properties set in the parent drawing. At the moment you xref in drawing-B, those properties are set in drawing-A and maintained. Making changes to layer properties in drawing-B has no effect on those objects in drawing-A. (However, if you change an *object* property such as linetype or color in drawing-B, as opposed to a *layer* property, then that change will be seen in drawing-A, after the next reload of drawing-B)
winquist wrote:
Instead, all other changes made in drawing-A are seen when I reopen drawing-B (or reload drawing-A in drawing-B), but drawing-A/layer100 is still dashed. It's like it can't get the old LINETYPE associated with layer100 out of its memory unless the xref is completed detached and then attached again.
Again, this is VISRETAIN = 1 doing its job. Layer changes are not going to update because the parent drawing-A is storing them, not reading them from the drawing-B. If you change VISRETAIN = 0, and reload the Xref, then layer properties are read in from the child drawing and updated.
Yes, I know this is a 12+ year old thread, but it showed up at the top of a Google search and it contains mis-information, which could mislead a new AutoCAD user who finds it. 