Author Topic: Variable Blocks  (Read 787 times)


  • Hero Member
  • *****
  • Posts: 2815
Variable Blocks
« on: January 22, 2017, 10:40:40 AM »
A "Variable Block" is a new discovery of mine and is borne out of the axiom "when you get lemons make lemonade".

The "lemon" here is that you should never use Blocks in Linked Symbols. Reason being: as we all know, if you ever edit an L-Symbol's source file the changes would automatically appear in the host file whenever you reopen the host. However, this does not apply to the Blocks in the host file. When you first load an L-Symbol any Blocks in the L-Symbol are loaded into the drawing. BUT if you edit any of the Blocks in the source file, reopening the host file does not update these edited Blocks. They maintain the definition already in the host file. The only way to get the revised Blocks is to either (a) delete the L-Symbol, then Purge (which you should not do if there are other unused Blocks that you want to keep. If so and you have dc2016 or later, then delete via the Insert Manager), Save/Close/reopen the host (if not dcad will use the cached version of the L-Symbol) and reload the L-Symbol, or (b) open the host file, explode instances of the edited Blocks, copy and paste them into the source file and block-redefine them there (and don't forget to close the source file without saving). Either way is not extremely difficult, except if you have the L-Symbol in lots of host files, because you would have to do each host individually.

Note that if Blocks of the same name exist in a file before the L-Symbol is loaded then the symbol's Blocks' names are appended with a [1], thus would be a different definition than the existing. However, deleting a symbol and saving/closing/reopening would not result in a different definition than the 2nd set of Blocks.

Now for the lemonade. The above scenario actually brings about an entity previously thought to not exist in dcad and probably in no other CAD program: The Variable Block. Take the above scenario and look on the bright side... say you are designing a home and the client is not sure about what window style he wants. The original file is your first window demo. For a 2nd window demo you load the entire design file as an L-Symbol into an empty file, then redefine all the window Blocks as the 2nd window style. Now, as you continue to design the building in the source file and maybe move the windows around to match, whenever you open the host file you will automatically be presented with the design changes but the window style will remain as that of the 2nd demo. Pretty neat, don't you think. Same thing can work for furniture, landscaping, etc.