Select . Get Room at Point not working

Hi,

I am trying to get the rooms either side of a wall. For this I wished to use the Archi-Lab package node select.get room at point. I have used this on my work computer and it works fine but now on my home computer it is not. I use Revit 2018 at work and 2019 at home. The warning message of the node is below.

room for wall relationship #2.dyn (30.1 KB)

Warning: Select.GetRoomAtPoint operation failed.
The call is ambiguous between the following methods or properties: ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.Material, bool)’ and ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.FamilyInstance, bool)’

Do you have a package at home which you don’t have at work? Also what version of Dynamo are you using at each location?

Hi, I am using dynamo 2.0.1 at both work and at home. The node is from the Archi-Lab package which I have at home and at work.

Since it works at my work computer which is Revit 2018. It is not an urgent issue. But my guess is that something has changed in the 2019 API.

I only have a few packages at home but I have lots at work but I don’t know which ones yet. I will update after I get to work.

My thought is that there is a conflict with a package on your home system, but I can’t be sure.

Do you know what version of Revit 2019 (ie 2019.1, 2019.2, 2019.0.2, etc) you’re using?

I can’t confirm at moment. Night here in UK. I will update tomorrow evening. I think it is .1 or .2. I will try after work removing packages and report back the results. Thanks

1 Like

I’m getting a similar error message:

Warning: Select.GetRoomAtPoint operation failed.
The call is ambiguous between the following methods or properties: ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.Material, bool)’ and ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.FamilyInstance, bool)’

This is the first time I’m attempting to use this node, so I don’t know if it was previously working. I am on Revit 2018.3.2, and Dynamo 2.0.1.5065. Is there any update to this issue?

Thanks!

Can you post a sample dyn and rvt file so we know how you’re using it?

I also have this error:

I am using Revit 2018.3 and Dynamo 2.0.2

Here is my dyn files (I can’t upload rvt because the file is too big):

GetRoomAtPoint-Problem-02-05-19.dyn (12.4 KB)

It seems to work when there is not a wall/column or something else in the way of the point. There is a probably a workaround in this situation that involves using multiple points but it would be good to know precisely why this error occurs for future reference.

Not working:

Working:

Just as a way of explanation. I think that its pretty logical to assume that the GetRoomAtPoint operation fails when the point falls onto a Column object. Columns are Room Bounding, what that means is that column volume is removed from the volume of the room. Basically there is no Room where there is a Column. Hide the column and you will see that there is a void for the Room object. If there is no Room the node will not be able to select it. Makes sense?

With column:

With column hidden:

image

2 Likes

That makes a lot of sense. I got it working with multiple test points in the space, but it might be easier to make columns/walls which fall within a room not ‘room bounding’ so that rooms are easier to detect - I will try next time I’m at my PC. Thanks for your help!

Or get the room’s bounding lines and see if it is a donut (or worse Swiss cheese), then remove said donut / cheese creating elements automatically, test your one point to get the room, and then re-enable room bounding on the donut / cheese elements…

Would take a lot of compute as you would be doing many Dynamo geometry evaluations and Revit geometry changes in sequence over a large list of spaces, but I think it’s doable.

1 Like

Hi All,

I seem to be getting the same warning as you(Warning: Select.GetRoomAtPoint operation failed.
The call is ambiguous between the following methods or properties: ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.Material, bool)’ and ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.FamilyInstance, bool) i do not have any columns or objects in the way of the pont just a empty room!. I am stuck at this warning and have no idea how to resolve it. I would much appreciate some guidance.

Hi All,
I’ve got the same issue as the previous poster. Other Archilab nodes are working just fine, so it doesn’t feel like a namespace issue. Would love some help as the GetRoomAtPoint is genius!

*Warning: Select.GetRoomAtPoint operation failed. *
The call is ambiguous between the following methods or properties: ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.Material, bool)’ and ‘Revit.Elements.ElementWrapper.Wrap(Autodesk.Revit.DB.FamilyInstance, bool)’


Room Numbering.dyn (34.6 KB)

Dynamo 2.0.3.8811, Archilab 2020.22.7

EDIT:
My script is trying to find rooms along a curve and in order, which means some of the points end up outside rooms, and inside walls etc… Is there any way around this?
The node works fine if the points are all in rooms.

Try this:

  1. Select your rooms and spline, assuring that the workplaces of each are the same.

  2. Get the boundary lines of each room with a Room.Boundaries node (clockwork I think), and group the curves (Archilab-lab I think) into loops to build a polycurve from each loop - this will protect you from donut room issues.

  3. Build a surface from each polycurve and use the area of that surface as a key to sort the polycurves by their area.

  4. Pull the last polycurve from each sublist - this is the putter room boundary.

  5. Intersect your selected spline with the outter room boundary polycurves. This will result in a series of points in another nested sublist.

  6. Find the parameter at point for each sublist of points along the spline you’re using to renumber the rooms. Use a List.MinimumItem node to pull the parameter value of the point closest to the spline’s start point.

  7. Use a List.SortByKey node to sort the originally selected rooms using the minimum parameter value as the key. Set the room’s parameter values accordingly.