How to Place a Revit Model Group?

What is wrong here ? I was finding this exceedingly frustrating, at first I thought the nodes (Tool.PlaceGroupAtPoint) for placing a group wasn’t working, until I worked out that it was applying scaling factor for some reason, as I tried to find answers looking at posts from a year ago on this topic, but answered with a graphic that doesn’t display any intelligent information Placing Revit Model Groups

The scales I know are 1 metre = 3.28084 feet and 25.4mm = 1 inch, but for some reason there was a scaling factor of 304.8 being applied and as a consequence it was throwing my group way out into space, when applying values of 10,500 and 13,400 for my x, and y.

This was not the case for the node (Springs.Element.SetLocation) where this node relocated my group to the values entered and the node operated as expected.

I couldn’t work out what this scaling factor represented until I found 308.4 metres = 1000 feet. Maybe that’s a 100 foot journey energized by a factor of 10, or conversely as expressed in the proverb, a thousand miles journey begins with a single step, or in this case 1 foot = 0.3048 metres, perhaps we’re only missing by a few decimal points.

Place_Group_Test.dyn (17.6 KB)

Test_Group.rvt (1.7 MB)

Hi @RLietz,

Revit has internal units of feet, I’m assuming the project you are using is set to millimetres. Conversion from mm to ft is 304.8mm to a foot.

Thank you Daniel for the reply, yes you are correct the file I’m using is metric, the point of interest I think I was making, is that one node Springs.Element.SetLocation works perfectly well in a metric environment, and essentially all other nodes that that I have used which have number inputs work as you would expect.

This is not the case for Tool.PlaceGroupAtPoint where it requires a conversion value to achieve the same result as Springs.Element.SetLocation, this is confusing, and it took me some time to realise what was happening, and I suggest it should not matter what units are set in the model, if I specify 1000 units in a number node, and my model is in mm then the distance will be 1 metre.

if I specify 1000 units in a number node, and my model is in inches then the distance will be 83.33 Feet.

I think the design of the node Tool.PlaceGroupAtPoint needs a review.

Hi @RLietz,
Yeah, in old versions of Dynamo you had to do the conversion yourself, but this was built-in to Dynamo quite a few versions ago, maybe the node you are using is old and has a conversion built-in and it is converting twice. Definitely sounds like and issue with the node though. Try using a different node, there are probably some either in clockwork or archi-lab as they are quite comprehensive node packages or maybe in the spring or rhythm node packages.

Cheers,
Dan

Thank goodness for intelligent design, that we don’t have to go backwards. It’s definitely a hard message to sell, ask Autodesk.

What are the different nodes ? In framing any answer it makes sense and is more useful to be quite specific, or is it just part of the “guessing game” from the tower of Rust. https://doc.rust-lang.org/book/guessing-game.html

I appreciate your feedback, but what the Man of Steel do ? “Onwards and Upwards”, I say Jimmy !

And now from the tower of Babel we get a race to the moon !

Ah forgot, that one’s in the past, but at least it’s upwards.

Hi @RLietz,

I have donned my blue cape and have personally written this for you in Python. It does what you ask (and in mm :astonished:).

It’s not fool proof as unfortunately I am sitting next to my Kryptonite cactus :cactus: given to me by my best pal Lexicon Luther and my superpowers have been weakened by it’s presence. Also, I have a busy day ahead so had to be super quick as I have to save Kittens from trees and stuff.

Script attached below…


PlaceGroup.dyn (13.7 KB)

Hope this helps you out with your forays in Dynamo…

Cheeeers,
Dan

2 Likes

Also, I just realized i have inadvertently answered your other Post about how to place multiple groups…

If this answers you question please don’t forget to like if you like and mark as resolved.

Cheers,
Dan

1 Like

Thanks Dan,

For your precious time, all responses are precious for seeking an enlightened truth. My cordial response can be seen here How to arrange multiple Revit groups?

But I think fundamentally there is a node lacking that properly handles groups in Dynamo. I would prefer not to use Python, that is the beauty of using Dynamo.

Hi @RLietz,

Under each node lies a bit of code. In this case it is Python and it is what makes Dynamo a little more beautiful in my opinion. Although it can be done in C# using the zero touch interface, people can view the Python code and get an understanding of the Revit API and how to generate their own nodes, another thing which makes Dynamo beautiful, which is the sharing and development of the community.

Did the node work for you? If so, could you please mark as resolved?

Cheers,
Dan

I think this discussion follows on from this one, Design Script or Python...Which one?

About the beauty of Dynamo, I’m not arguing for which is better, Beta or VHS, you see beauty is always in the eye of the beholder. Why don’t we all just program in machine language, the reason is because it tedious and error prone. That’s why assembly code exists, which is then translated by compilers and assemblers to machine code. The same argument applies for dynamo and python. I’m not saying one is better, if you stand back for moment you might see an orchestra, and then you’ll see a conductor, a cellist, a violinist, percussionist etc

The quality of the music depends on the parts that make up the orchestra (call it community if you wish) then you’ll see the big picture. There are many who like to program in python and clearly this is a key to creating dynamo nodes, but there are designers who want higher level programs (dynamo) than to use machine coding or indeed C# or Python, they want more visual tools that allow them to create visual forms that may be made from substances such as rock, and steel, and concrete, and glass, and timber and trees and water and light and air.

So when you see it in context, the most beautiful work, is put together by the best, across a range of skills, and the person who is using Dynamo, does not want to be concerned about coding instructions, he/she is concerned about bending or transforming points in space and applying surfaces and curving and sculpting, and there are already plethora of nodes to contend with to be able to try and achieve these results, where as a coder can marvel at the skill required to create the node that sculpts so well, which without, “Dynamo” would not exist.

Do a search in this forum on “not very good at Python” or just “good Python” and you’ll see where the skill sets are, and who requires what, it then becomes a personal choice of where you choose to apply yourself to be able to create. Finally you’ll see the symphony. And in 5 -10 years it will all have gone the way of VHS’s and Beta’s. You have to remember the ability to fly existed even 5,000 years ago.

To Dan or others, if you read or have read my post on arranging multiple groups, I need the ability to rotate each group at the time of placement with a rotation angle that will be extracted from an excel table which then will form a list, in essence it could be part of another list that provides the rotation angle for the group at time of placement. Similar to the family node FamilyInstance.SetRotation, but there doesn’t seem to be one for groups where you can provide a location point and rotation at the same time. The magic in Dan’s solution is great, but I need to rotate it at the same time.

Thanks.

Hi @RLietz,

Very descriptive and thought provoking creative writing, but we have somewhat deviated from the original topic of “how to place a model group?”, if you want to know how to “rotate” a model group please submit another thread titled “how to rotate a model group?”… kind of helps to say these things earlier and be specific before someone spends their time helping you…in framing any question it makes sense and is more useful to quite specific. Have you heard of rust by any chance?

https://doc.rust-lang.org/book/guessing-game.html

I’m sure I’ve seen this somewhere before…

So, Roland, or to anyone out there who is reading this. Please make sure you frame your questions in a manner that is very specific and asking exactly what you want to ask (and not in stanza 8 after the original question has been solved), this way people who spend their own time helping you can do it that much better. We don’t have to do this, we just want to help you.

Thanks for all your efforts Roland, submit that new request and I’ll be glad to help! Don’t forget to mention “how to rotate a model group?” though. :blush:

Cheers,
Dan

Hi all whom are reading, you have made it this far, the thread continues on a seperate but similar thread below…

Cheers,
Dan

2 Likes

It’s the diversity of tools and languages that allows us to tackle a wide range of challenges efficiently.

The comparison between Dynamo and Python is like appreciating the different roles within an orchestra. Each has its strengths, and what might seem tedious in one context can become a harmonious collaboration when combined effectively.