Copy Array in Dynamic Block with Set Distances

Copy Array in Dynamic Block with Set Distances

Dj_T_Rex2002
Enthusiast Enthusiast
920 Views
6 Replies
Message 1 of 7

Copy Array in Dynamic Block with Set Distances

Dj_T_Rex2002
Enthusiast
Enthusiast

Hi, I am running into a little issue. I am trying to copy items in a vertical and horizontal array. I tried looking at different forums but I cannot find a solution. Basically, what I am trying to do is copy the small circles with cross lines at a max of 48" as shown below ...

 

Dj_T_Rex2002_0-1713282315676.png

 

This means, if the building increases, I would like to have a circle in the middle as the spacing would be larger than 48" (doesn't have to have the dimension if that's an issue). Example below showing dimension for distance purpose ...

 

Dj_T_Rex2002_1-1713282548328.png

 

 

 

 

0 Likes
Accepted solutions (1)
921 Views
6 Replies
Replies (6)
Message 2 of 7

MMcCall402
Mentor
Mentor

This is do-able but not exactly easy.  First is to remove the parameters and switch over to using Constraints.  Constraints are needed so we can make some equations in a few user parameters to calculate how many items should be in the array.  One for each direction and one so you can specify values other than 48 of you needed to.  There are two Arraypaths set up for making the symbols replicate.  The "paths" for the arrays are construction lines with their lengths defined by d5 and d8.  Those length values are defined by two other constraint values such that they'll adjust with the overall length and offset from the ends.  The two Arraypaths use the values of WidthArray and HeightArray as the values for the number of items in the array.

 

 

MMcCall402_0-1713296899473.png

 

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

0 Likes
Message 3 of 7

MMcCall402
Mentor
Mentor

I'm sure there's a way to do this with parameters, a couple lookups to supply values for a couple user parameters to be used as item quantities in the arraypaths.  The Lookups would provide those values based on value ranges for the linear distance parameters.  (I always have to research the syntax for specifying the range values correctly)

 

 

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

0 Likes
Message 4 of 7

Dj_T_Rex2002
Enthusiast
Enthusiast

Do you think I can still use Constraints? I already spent a lot of time setting it all up and I just want to be able to array those small items lol. Attaching drawing so maybe you can see what I am trying to do.

0 Likes
Message 5 of 7

MMcCall402
Mentor
Mentor
Accepted solution

I spent some time trying to figure out how to do this without using constraints but so far I've only come close to a full solution.

 

The ARRAYPATH works as long as you can tell it how many objects in the array.

A User Parameter can do this by entering its name as the number of items in the array properties.

Using just parematers, a Block Table is the only tool that can assign a value to a User Parameter.

OK, I'll use the Width parameter length to assign a value for the User Parameter based on ranges of length values.

Block table doesn't accept ranges ...  a Lookup does ... but a Block table can't see a Lookup value

Ok, I'll use a double Lookup, with ranges for the Width parameter to supply values for a new horizontal parameter and use it's value in the block table. This makes the horizontal parameter have incremental values as the Width randomly changes.

No go, the new parameter isn't available as its already been used in the Lookup.

Ok, I'll add another horizontal parameter and use the first one to operate it with a chained stretch action and then use that second parameter in the block table.

This worked!

Now on the array in the other direction, same approach as the first.

.... there's only one block table available.

Ok, enter both linear parameters and both user parameters into the table in a matrix of values to supply the correct two user parameter values based on the two linear parameters.   (this could balloon exponentially with values so I just entered a few to test it out)

No go.  The user parameters don't change and I'm out of ideas.

 

So, I trimmed the table back to work in one direction and posted it as an example.

 

I'm not familiar enough with the block to rebuild it using just Constraints.  (and don't mix and match constraints with parameters, tried it, it got ugly)  The user parameters can easily use the value of a constraint in a formula to derive their value and pass them on to the arraypaths.

 

MMcCall402_0-1713541162085.png

 

 

 

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

Message 6 of 7

Dj_T_Rex2002
Enthusiast
Enthusiast

@MMcCall402 I really appreciate your help. I have no clue how you did the whole Lookup2 or Lookup3, but I will try to figure it out slowly lol. I really really appreciate your help. This is exactly what I need, I just need to study it slowly. Thank you!!!

0 Likes
Message 7 of 7

MMcCall402
Mentor
Mentor

But its not a complete solution.  It only works for one array direction.  I tried to add the other direction into the mix but the result was that neither of them worked then.

 

 I think a rebuild with only constraints would be the best solution to this need.   You'll probably end up with fewer visibility states as a bonus.

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

0 Likes