Revit luminaire positioning with different ceiling height

Dear all, this is my first post so I want to say hay and thank You in advanced for Your help. My name is Matija and I’m from Croatia… My company name is LIGHT ON and we are a small lighting design studio.

At the moment I’m searching for a solution for the next problem:

  • We are developing a project for a Hotel with approx 3000 luminaires (which we already planned in dwg). At the moment I’m trying to develop a Dynamo process to place the family instances automaticaly based on x,y coordinates extracted from the dwg.
    The ceiling height’s in the hotels are different (and the ceiling are actually just generic model mass, so no family with ceiling host works, but face hosting should be used).

I managed to assembly a dynamo process that works fine for x,y placing, and even finds the ceiling height, but does not place the family on that place - instead of that, it is placed upside down on the floor (please see the picture).

Please be so kind to let me know what I’m missing…

Thank You!


Matija!

hi,
if you flip the family, does it works fine then ?

Dear khuzaimah.ElecEng, thank You for Your answer…
Do You mean flipping the family with the little icon by it’s side (the one on the photo)?
If so, when clicking it, does not happen anything…

Sorry for not mentioning it before, You’re all welcome to suggest a different approach for finding the soultion…

I think my approach is not perfect, because having the ‘Select model elements’ node, I have to select all the ceilings in the hotel to make it work,so it’s a messy work…

Hope there is an easier way to do it…

thank You!

You could use Select all by category, to pick all your ceilings?

And if you only want to pick ceilings of a certain family, you could pick all by family type.

Dear Phh,
thank You for Your answer…
unfortunately we got the exported IFC from ArchiCad which when exported, generates generic models for all the ceilings… so basicaly all the ceiling hosted luminaires should be only face based…

That’s the reason why I cant select all the ceilings by category or family…

thank’s

Matija

Hello,@damir! Try to use another methode for FamilyInstance creation. Here is an example:

And you could try to find the horizontal face of your ceilings:

1 Like

Or like this to find the bottom surface of the ceilings :

Thank You Dmytro, but it doesn’t work for me…
maybe I’m missing some lacing properties?
take a look on the screenshoot Screenshot_11

Hy Alban_de_Chasteigner,
thank You for Your help…but as I already mentioned…unfortunately we are dealing with some generic mass ceiling,so I cant filter the ceilins by category…
tnx

Dear Johannes_Meiners,
I’m getting an error on the Element.Faces node…
Would You please be so kind to take a look…

thank You!

What kind of element do you get when you look at “Element.Geometry” ?

I got one solid object…

throughout my experience in similar situation, there is a problem when you want to set a location for any ceiling hosted family with Z axis … it won’t work and you cant even change its host after Run. i suggest to try not to use hosted family, use elevation parameter instead

No idea, my example looks ok:

Here is combined solution:


Still, you can use this script only for one ceiling.

If you insert the dwg at the level, you will find the face of the floor. You need to project the points vertically into the ceiling. Look into rayboumce methods to find the ceilings above your points.

Yes, that is actually a fine working solution… but, as You said, it works for only one ceiling at time…

Jacob, that was my first idea, projecting the xy coordinates vertical on the ceiling surface…and that actually works (please see my first photo), but the families don’t attach/place on that projected point, and instead of that they stick on the floor - upside down…