Tagging right Room info from the linked model to the MEP Elements

Hello guys

I am trying to make a link between the room information (Room Name and Room Number) from my linked Architectural model and the Mechanical equipment elements from my Mechanical model. I searched in this forum and I could find some workflows in Dynamo. I rebuilt this workflow with some slight changes. I don’t have any error but the problem is that the room name and number tagged to my mechanical equipment are not correct.
For example as shown in the below screenshot, the room name and number tagged to my Ventilator must be MECANIQUE and 01-118, but as you see they are not correct. I attached my dynamo script here. Could anybody tell me where the problem is? How can I make a correct connection between my room info and mechanical equipment elements?

Thank you so much in advance

Script - Room01.dyn (35.1 KB)

You have 48 elements in your model and you called 43 values from linked model. The sorting of that values are not correct. (In model for example BSQ 130 first element, in linked model QUAI) You have to sort them correctly.

Thanks @Deniz for your response. Could u please tell me how I can sort them correctly? Do you have an example to show me?

You can try that code to get indexes and then with List.GetItem.atIndex to get rooms. First you have to “String from Object” and connect from 48 item list as liste1. As liste2 connect Room names with 43 items. After that from all elements of categories connect to List.Getitem at Index…

liste1, liste2= IN
for element in liste2:
	if element in liste1:
OUT= z
1 Like

I tried, but it doesn’t work

Like I said, String from Object of first list and room names as second list.

1 Like

Did I do correctly this time?

You need to get the location of each piece of equipment and then check to see if the point is within the bounds of each room.

1 Like

Thanks @Nick
Could u please show me how I can check it?

Geometry check. This is pretty standard on confirming locations within rooms.

1 Like

Hey, sorry I read the list not correctly. I thought the names are identical but the numbers not. You should find a connection between rooms. Like Nick said, location can be one of them…

Thanks Nick. I tried to do it but it doesn’t work for me. See the below pics:

As you see, it seems dynamo created rooms in the opened model (Mechanical model) using the room information extracted from the linked Arch model, but their locations are not the same. Do you know where the issue is? Can I change this workflow slightly to fix this issue?

Thank you so much in advance

This means your coordinates do not match. You’ll have to find the difference in your coordinate systems and correct them.

I’ll also point out that you start out with 39 rooms but remove the null geometry of one. You need to remove that room from your list before filtering them as you’re using the list of 38 geometries and comparing it to your list of 39 rooms. Just use another FilterByBoolMask to reduce your list of rooms.

If you want to get locations from a linked modell, you should BiMorphNodes Package.

Thanks Nick. Do you know how to transform a coordinate system based on another coordinate system?
When I was linking my Architectural model to the Mechanical model I used shared coordinates. As far as I know all models in our project is geo-referenced.

Dynamo uses the internal coordinate system. You can use python to get the transform directly or use custom nodes to get the origins of both models and calculate the transform yourself. There should be other threads in the forums discussing how to do exactly that. They would be a good place to start.

1 Like

I tried to get the project base point coordinates of my main model (Mechanical model) and transformed the coordinates of rooms and mechanical equipment elements based on it, as shown in the below screenshot. But unfortunately it doesn’t work again. It seems now the coordinates are matched but I don’t know why it is not working

It still looks like your points aren’t inside the geometry. The Base Point isn’t necessarily the transform you want. If you’re using Shared Coordinates you would need to find the difference between your Survey Points or your Shared Coordinates origin. You can also use the location of a known point between both models, like a specific grid intersection.

1 Like

Thanks Nick. Do you have an example to show me how to do that based on the difference between my Survey Points and Shared Coordinates Origin? Or using a specific grid intersection?

Thanks :slight_smile: