Placing multiple families using an excel document

Hi everyone!!!

I am working on a script to place a family using dynamo. The script so far reads the excel document which contains a program name and area. I am able to apply the name and area to the correct parameters within the family, but when I run the script only one of the five rooms is created. I am trying to use dynamo to place the chips in the Revit model so I can then use them to create a conceptual floor plan and also use the script to create programming chips using our laser cutter. Any help would be much appreciated. I have attached the excel document and dynamo script for reference.

programming chips test programming chips

You’re only creating one family instance. Here’s how you can do this with just one more node:

MultipleInstances

Hey Andreas,

Thanks for the help. That worked to create 5 of the instances,but did not assign the parameters to the family from the excel document.

I was able to update the script and have it place the appropriate number of families based on the excel document. The new issue i have run into is that it will not fill the Area of the family. Please see attached clip. It seems that the area is a read-only??

 

Read only

Depending on which version of Dynamo you’re using there should be a File.FromPath node between the File Path node and the Excel.Read node.

Can you confirm that there is actually data coming from your Excel file?

Unfortunately I can’t test your graph on my machine as I don’t have MS Office installed.

Maybe you could run your graph and post a screenshot of it so we can see what’s in your Watch nodes…

EDIT:

Looks like we posted almost simultaneously. Yes, in quite a few categories Area may be a pre-defined, read-only parameter (parameters riven by formulas are read-only, too). You may need to create your own parameter.

When i added the File.FromPath Node I got warnings from dynamo that wanted me to submit bug to Github . I can confirm that data is being pulled out of the excel document.

Got it to work!!! The only issue i am having now is having the families space so that one edge is next to the last any ideas? I am looking to have the ability to group these families together by department or similar area. Is there a way to use a number slider to control the max length they will be laid out before going to the next line?

image two

Hi Glenn,

How about adding a multiplier to each component of the point, for controlling the spacing:

2015-02-24_0928072015-02-24_092812

 

Hey Dimitar,

I got the slider to work, but it is not stacking the families next to each other or spacing them evenly. I would like a way to group them by similar department and from area big to small.

with slider

Start by searching for “sort” and/or “group” on the forum - those topics have been discussed here before.

Hi Glenn,

I’m not sure if I understand you correctly, when you say you want to group them by size. Do you want to group the ones that close in size(to some range) or do you want to group the ones with identical size?

Tho one thing I am certain of - you’ll need to perform any grouping and sorting before the actual placement of the family instances. There already are a lot of other topics related to grouping and sorting with some great examples.

In the picture you posted, the families are indeed spaced evenly center from center but due to the fact that their sizes are different, the spacing between their edges varies. If you want to have a fixed spacing between the differently sized families, you’ll need to perform some recursion and based on your family, it might get a bit tricky because each next family’s insertion point will be the sum of the sizes of the previous families.

2015-02-25_130315

2015-02-25_130456

Dimitar,

What i am trying to do is recreate a script that was written in Rhino/Grasshopper into Revit. What I mean by grouping is having the ability for the programming chips to be align next to each-other and group by department, name, then by area(big to small). Please see attached screenshot from rhino. of what i am trying to accomplish. This will allows us to then export these views to the laser cutter for production as well as create rooms within Revit.

 

rhino example

i succeeded in something like that:

colors are randomly generated by department

 

rooms

 

 

 

 

 

the rooms are from excel like:

excel

 

 

 

 

 

the data is imported to dynamo

dynamo

 

 

best is that the alphanumeric information is loaded into comments

 

data

Peter Kompolschek that is what I am trying to do and have hit a road block. I am able to import the family with the correct information from the excel document, but for the life of me can not figure out how to have them lay out like you did. Any tips or can you share how you aligned yours so nicely? Thanks for the help.

Still trying to figure out how to group the families by a parameter so that they layout like Peter did. Any ideas? I searched on the forum for “group”/Sort and did not find anything. I am so close i can taste it!!!

GroupByKey is your friend…

Grouping

Thanks Andreas. GroupByKey is my friend. I had added that to the script and can see how it creates separate groups by looking at parameters, but i cant figure out have the groups then align to be next to each other. The struggle continues!!!

Please see attached snap. I am able to find the edges for the families as well as group them by “space usage”,but i can not figure out how to have them move to align in Revit.

group the space usage

glenn. the x position is the tricky part!

actually i implemented 2 loops, one is for levels, the other calculates the xposition depending on the family’s width

keep in mind that dynamo is metric and revit inches. so every position calculated has to be converted!!!

x*3.2808

xpos

If you take the width value from your excel and use List.Scan it will add each width to the next and then you can place a zero to start the list and there are the x values as long as the placed family starts from the right and grows to left.