AutoCAD Dynamic Blocks :: Combination Stretching And Visibility States?
Dec 9, 2011
I am working on a few dynamic blocks with ducts.The plan is when you stretch the duct to far it will automatically place a coupling and the next peace of duct.
This wasn’t the problem but if I connect more than 2 ducts it goes extremely slow. (see attached file)
I think that if I am using larger steps between stretching (still testing this theory) it will go faster but this goes against my nature of being possible to exactly decide the length on my one.
usage of dynamic title blocks with visiblity states and defining page setup override templates which use same for quick plotting using sheet sets.
I have attached a simple dynamic block that I built which is the outter frame of our company title block, it is designed to allow users to quickly switch between Landscape and Portrait orientations.
The problem I am having is when I go to define page setups for my Sheet Set Page Setup Override Template I am unable to use the "Extents" option with auto-center because the "Extents", as defined by the page setup, includes ALL objects in the paper space regardless of visibility, so my title block ends up being centered in a stupid way if that printing configuration is used.
The only solution I have found is to use the "Layout" option when defining page setups, but this option produces other issues in other ways when printing. I don't want to use the "Window" option either for the potential for users to be using the page setup overrides to print drawings using different paper sizes or drawings that were not originally created using the current template the override is designed to accomodate.
Is there perhaps a system variable that defines whether invisible objects are included in the "Extents" setting in the page setup? I'm sure you'll all agree that Extents is the way to go in this situation, but it is not performing exactly as required.
So, while it wasn't common before, I am finding a need for multiple visibility states in blocks more and more these days, since AutoCAD can't do it I was wondering what work around and tricks people had come up with??
I use the RIBBONS when using ACAD, when creating Dynamic Blocks with Visibility States I am able to add, rename etc the states, but when I need to tell ACAD what to hide and what to show in each state I cant seem to locate the button within the ribbons to do so.
I find myself having to switch back to CLASSIC view to use them and then back to RIBBON.
This is my first dynamic block, and I am trying to make a pipe elbow that is selectable for pipe diameter, arc angle of elbow, AND radius of elbow. I got the diameter and the arc angle just fine, but I can't figure out how to do the radius of the elbow. I used a lookup table for the diameter constraints and I used my visibility state for the angle, seeing as I couldn't find a way to accomodate arc angles with a lookup table. What I'm stuck on is the radius bit.
I need to be able to select the radius or the elbow as either 1.5x, 2x, or 2.5x the diameter of the pipe. So for example, if I have a twenty inch pipe diameter, I need to be able to set the centerline radius of the elbow as either 40, 50, or 30 and then have the outside and inside radii fit proportionally. So in the case of a 20 in diameter, I would need one block with one variation that has radii of 30, 40, and 50, another variation with radii 20, 30 and 40, and yet another variation with radii 40, 50, and 60. I could easily make a reverse lookup table to do this for a single size pipe, but in order to do it for each pipe diameter I would need to be able to cross reference the other lookup table to pull the diameter value, and then have the radii respond to that value.
If this is even possible? And if it is not possible, how I could edit the arc angles with a lookup table instead of a visibility state? Because if I could do that I could use my visibility state to do the radii instead. My other options are to create a second and third dynamic block for each variation, or to add each individual radii variation to my lookup table. The latter of which I won't do because that is far too many options for a lookup table that already spans beyond the extents of my monitor. How I could accomplish all three of these tasks with a dynamic block.
I'm trying to create a block for angled handicapped parking stalls.
I used an array chained to a stretch in order to increase the number of stalls. It worked but for some reason it does not work in all of my visibility states. In some visibility states the array and stretch do not stretch together. The block should end with a stall but some end with a line and no stalls above it.
I attached a drawing with the blocks. The block named "STALLS-60-HANDI" it works correctly except in visibility state 9' and in "STALLS-60-4space Handi" it only works in visibility state 10'.
Is it possible to select visibilty states of a dynamic block in a drawing, for ex. to count how many of each visiblity are in a drawing?
Ex.:
I have a drawing of a big pile plan with al lot of various piles in there. I made one dynamic block of the pile in which i can select what kind of pile i want to have visible. Now i want to count how many of each pile is in the pile plan.
If all different piles would be different blocks i could easily count with 'Block Reference' in 'Quick Select', but i dont know how to do the same with a dynamic block (which has one block name only) and its different visibilities.
Is it possible to link text to each other through visibility states without creating a block within the DB? I have 2 visibility states. Right Section, and Left Section. All notes and text stays the same, geometry is the only thing that mirrors between states.
The hope is that when I update the text on the "Right Section" state, that the same text on the "Left Section" state automatically updates with what I did on the "Right Section".
I solved this by creating multiple blocks within the DB. That works great, however there HAS to be an easier way to do this.
I'm new to dynamic blocks. In my first attempt to create a simple dynamic block with various visibility states in which each would have it's own attribute, the only attribute that works is the attribute in the first visibility state listed. I have read all the postings I could find here in the group on this subject and have made the following changes suggested here to the block:
1. All attributes have distinct tags and prompts. (I even erased all the originial attributes and created new with original tags.)
2. All attributes are locked in position.
3. I REGEN after selecting a different visibility state.
None of these changes has had any effect. Still, then only attribute that opens an attribute edit dialogue box is the "W" attribute in the first visibility state listed.
we have moved from AutoCAD MEP 2012 to AutoCAD 2014 recently using Dynamic blocks with multiple visibility states.
in 2012 we could select a dynamic block with a specific visibility state and select similar, it would only select the visibility state that was previously selected.
in 2014 that is no longer an option WTH?
i have tried a couple of system variables to no avail (pickadd, selectionmode)2014
I have a block which I want 2 visibility states. VS1 and VS2 share some objects and not others. I have a linear parameter in each which I want to do a stretch action on. The stretch action in each visibility state acts upon entities both shared and unshared between VS1 and VS2. This doesn't seem to work..
I have been working with attributes and visibility states for months, i've created a dozen blocks that have worked exactly as designed... Now every block i make with the same method is not working properly
attached is a really simple block. to the left are the 4 individual attributes in the block. on the right is the dynamic block with 4 visibility settings to show 1 attribute, 2 attributes, etc... everything is perfect in the block editor, in model space; vis state 1 shows 3 att's, vis state 2 shows 3 att's, and vis states 3&4 work as designed.
I'm under the gun to create standard blocks to collaborate with 2 other another firms.
How do I manipulate a height parameter all of the dynamic blocks in the drawing from one single field? Say a field located in the drawing properties or on the drawing itself.
For example: Multiple blocks of different walls of same height with other blocks of things on located on those walls, dependant on the wall height, all linked to and changed by a single field. Possibly a Wall Height field located in the custom tab of the drawing properties.
I can pickout each of the blocks and change them at the same time in properites menu because they all share the same parameter name. I would just like to have that height parameter of every block in the drawing, that has that specific parameter controled by a single field. Which I could enter a new height at anytime that would change every block in the drawing to that height.
I have a dynamic block with visibility states.When I use the method BlockReference.Explode(entities) I get in 'entities' all entities including all those who are part of the visibility states not selected. But I want only the entities in the selected visibility state.What surprises me more, is that entities from other states of visibility, although they were added to the current space, do not appear.
How to retrieve only entities associated with the selected visibility state?Or how can I identify entities that are not part of the state of visibility?
var entities = new DBObjectCollection();selectedBr.UpgradeOpen();selectedBr.Explode(entities);foreach (Entity entity in entities){ currentSpace. AppendEntity(entity); tr.AddNewlyCreatedDBObject(entity, true);}selectedBr.Erase();
I'm trying to create a dynamic block with several different visibility states and for each visibility state I have created an attribute. Each attribute has a different text style because I need the size of the text to change when I change the visibility state. But on the model space I can only see and edit te attribute in one of the visibility states. How to create a block that allows me to see different attributes in different visibility states or that alows me to change the text stryle of the attribute acording to the visibility state?
In the past I have not managed to get attributes to constantly behave themselves if I applied a visibility state to them. Following posts by steven-g where he has a method to get them working together I thought I would give it another try. His method was used to link the attributes to a further reference attribute to reveal a field but mine is far simpler, just requiring one of two numbers to appear depending on the project state.
I had two attributes which toggled their visibility but only the primary attribute would display UNTIL AFTER I locked and prest the attributes, wherein it all looks to be working as wanted.
So my question is, why does it now work (and will it continue to do so)?
I don't know if I could get away with only one of those actions but since I had something working I didn't want to break it. I will test it once these drawings have cleared my desk.
I have made up an extensive dynamic block library over the year, however in the latest version when I have tried to modify blocks with visibility states you can not cycle through the different states it will just revert back to the first one.
I want to be able to update a dynamic block with data from our SQL Server database using a VB.NET program.
The dynamic block is configured to show office locations and has the associated office addresses for each office location embedded within the block. However, over time, offices close, new offices are added, addresses change, and so on. Plus, we have a dynamic block in each sheet size for several template types. So, updating them remotely would be a huge advantage. I'd like to just click a button, and know that the offices in the blocks were up to date and accurate.
Currently, I can use VLISP and the DBX technology to open each file and change the addresses. But, I cannot figure out how to change the visibility state (office name) in the prompt list. Anyhow, I want to drive the changes from a VB external application rather than having to open AutoCAD and run a LISP routine. So...
how to modify the following properties of a dynamic block using VB.NET?
1. The visibility states prompt list. (add, delete, modify)
I run Autocad 2010LT at work, where I do fire alarm drawings. I've been trying to create a dynamic block (sort of a one stop-shop) for my wiring diagrams, and wanted to include device text with it.
My question is, is there a way I can create a dynamic block with multiple visibility states where each state has it's own independent/editable attribute definition?
Basically what I'm trying to acheive is the ability to make a different description layout for each one of my device types. (They all have a different function, and a different address style) Really so I can minimize the time I spend editing the formats when I'm trying to crank out a plan review ASAP.
I am trying to insert a Dynamic Block and change it's Visibility State. I can insert the block, and the visibility state changes, however, if I manually try to change it after, it does not change, even though the value has changed. My code executes and returns no errors, so I am assuming that I have done something wrong, or missed something out.
public class MyCommands { [CommandMethod("MyGroup", "Bolts", "MyCommandLocal", CommandFlags.Modal)] public void MyCommand() // This method can have any name {
[Code].....
If I insert my block manually, I can change the states and it works fine, but the code seems to break the block.
I am creating some table of contents. The first column contains symbols that are inserted blocks. Now, when I've created dynamic blocks I've made them to have more visibility states. If I insert the block that has such states, only the saved state is visible. Is there any way that I can use more visibility states when inserting some block into table.
At the moment the only solution is to insert another simplified block that I've created just for this insertion. That way my blocks library is getting bigger and bigger only because of this. I don't use simplified blocks in my drawings, except for the thingy mentioned above.
I have a 4' light fixture that is a rectangle. Right now I have it set up to where I can stretch it and it copies it’s self whatever length that I stretch it in increments of 4'.
Is there a way for me to modify this so that when I stretch it along an arc, that it copies its self and rotates its self along the edge of the arc?
Is there a way to make a dynamic block where I will insert the total length of this “ panel”. Say 3720mm, and that it will divide the “panel” into equal segments with a maximum segment width of 1240mm. ( so with 3720mm that would make 3x 1240mm segments)
Say it would be a “panel” of 5500mm it would be 5 segments of 1100mm, and a “panel” of lets say 3750mm would make 4 segments of 937,5mm.
I made a drawing to illustrate what I mean, A dynamic block for this will save a lot of time!
I have a drawing with several dynamic blocks (over 1000 block references) with visibility states. I recently noticed that all of the blocks no longer have the option to change the visibility state (i.e. the upside down blue triangle no longer appears when clicking on the block).
If I insert a new block it comes in with the option to change the visibility state. However, the previously placed blocks still do not have the option of changing the visibilty state. Even if I update the definition of all block references in my drawing nothing changes with the previously placed blocks.
Is there an option/command to bring back the option of changing visibility states on my previously placed blocks?
I can create a block where you stretch a line and the opposite side stretches equally in an opposite direction but I can't find anything with stretching equally in the same direction.
The block in questions is a door with windows to the side. The door size will remain fixed but as I stretch the window jamb I would like the two mullions to stretch to create an equal stretch.
I have been trying (albeit unsuccessfully) to draw a DB that requires a hole spacing of 16" maximum. The problem with this is that a pair of holes will need to be added or subtracted based on the width while not exceeding this 16" maximum dimension, but maintaining even spacing. I.E., when this block is stretched down, a pair of holes needs to be subtracted and the remaining holes need to be spaced evenly. I have attached the block drawn at it's maximum width and most required holes at this width with stretch parameters for each hole set. The best idea I could think of would be visibility states for each series of holes that would be activated when the block is stretched accordingly but just can't seem to make it work.
Please see the attached drawing. It's for a conveyor system, and the idea is that when you insert the block, you could then select the size of the conveyor and the angle of the turn (straight sections are another block).
What is suppose to happen is, when you insert the block, you stretch the conveyor to the size desired, and the rest of the block should scale to match. Then you select the angle of "turn", and you're good to go.
I got it all to work except... when you stretch the line out, everything scales, but the line doesn't stay in place and just stretch to the left, it moves, which leaves a gap where the conveyor should be.