Has anyone else received this error when using Archilabs “elements in space” with ceilings?
I don’t know if Ceilings can be “in” spaces since they’re normally room bounding. Does your space go above the ceiling?
It could also be because ceilings are system families.
I don’t have time to test right now but could it be a generic ceiling. They do not have geometry they are just a plane. Food for thought.
have a good weekend.
If you look at the Python code within the Elements in Spaces node, you’ll see this line:
inSpace = family.Space[phase] which is querying the space property of the family element. Ceilings do not have this property, I’m pretty sure thats why this node will not work with ceilings
TypeError: iteration over non-sequence of type FamilyInstance
Exactly right. This is why I renamed my nodes
FamilyInstance.Room and FamilyInstance.Space.
You can use another method.
Space.IsPointInside (remember your ceiling should be within the volume of your space)
Or if your model has volumetric calculations enabled you can use the room.boundaries node.
So, @john_pierson, your solution works…but not with linked files. Is there a way to do the same thing but read the ceiling from a linked revit model?
UPDATE: I actually got it to work through the “get elements from link” node. It doesn’t work on links just by itself. Sorry, it’s dynamo amateur hour over here lol
UPDATE 2: After a few more tests, it doesn’t seem to pick up that the centroid of the linked ceiling is in my space. I have added the bounding box nodes to spaces in order to visually verify that the ceilings and spaces DO intersect. It seems as though that they meet each other, but don’t actually intersect.
Link to the dynamo file: https://drive.google.com/file/d/1COrdv2ZjvTQlNThBuW8JLk2b-q876WMO/view?usp=sharing
If the ceiling is bounding that will often be the case.
Can you find the centroid of the ceiling (a point) and drop it by 1/2 of its elevation and test that point?
Possibly. I’m not sure how to subtract from a specific point or coordinate.
(The Point.Z nodes in the image above are only included here to show the change in Z value from using Geometry.Translate)
Edit: In retrospect, you may be able to find similar results by using Geometry.Translate on the points you generate from the Solid.Centroid node in your above screenshot)
Thanks @awilliams!!! That worked! Now, to organize my lists so that I can match diffuser and ceiling heights! Haha.
So I know which ceiling is in which space, how high they are, and how high the diffusers are, but how do I say that the diffusers need to equal a certain spaces ceiling height? I guess the problem would be list organization.
Were you ever able to get this working?
Actually, a colleague of mine was just finishing this up yesterday. More in depth script than the original question needed, but yes it’s finished.