@fcorte wrote:
....
Please indicate how to keep (lock) the total column spacing or total row spacing when changing col or row count?
Properties controls for such things affect each other in a way that doesn't seem like what you're after, since the total spacing isn't available directly, but is only a result of the spacing and the number of columns/rows. Entity data for an associative Array object [which is actually of the "INSERT" class] doesn't contain the relevant information, at the top level anyway -- it's probably there if you dig down into nested entity names somehow.
But the (getpropertyvalue) / (setpropertyvalue) functions know about them. Here are the relevant properties from a (dumpallproperties) function [just those for columns and rows, omitting levels for now]:
ItemSpacing (type: double) (LocalName: Column spacing) = 15.000000
ItemSpan (type: double) (LocalName: Total column distance) = 165.000000
Items (type: int) (LocalName: Columns) = 12
RowSpacingWithExpression (type: double) (LocalName: Row spacing) = 6.000000
RowSpan (type: double) (LocalName: Total row distance) = 30.000000
RowsWithExpression (type: int) (LocalName: Rows) = 6
[What the "...WithExpression" parts are about for Rows, I can't imagine....]
I find that if I use (setpropertyvalue) to give it a new number of columns [or rows], the spacing stays the same and the overall span changes. If I give it a new span, the number stays the same, and the spacing changes. It appears that to keep the span and change the number, you need to first save the current span, then give it the new number, and then re-impose the original span. The spacing adjusts accordingly. So to change the above example to 10 columns instead of 12, keeping the 165-unit overall span [with 'ent' being the Array's entity name]:
(setq span (getpropertyvalue ent "itemspan")); save the 165.0 overall
(setpropertyvalue ent "items" 10); impose the new number of columns [span reduces]
(setpropertyvalue ent "itemspan" span); reimpose the 165.0 on the new quantity of columns [spacing increases]
Kent Cooper, AIA