Create MEP spaces from linked IFC

Hi Forum,

MEP rooms must be created from a linked Ifc file.
Unfortunately, the rooms are only created as DirectShape in the Generic Model in the link document.

The DirectShapes of the link document were filtered.

How can an MEP room be created from the existing bounding box of the DirectShape?
The method center of the bounding box with Space.ByPoint is not suitable (e.g. L-shaped room, elevator shaft in the stairwell).

Best regards

Rolf

Hi @rolf.archi

Is it possible to share rvt file?

Hi Kulkul,

Thank you for the fast feedback.

How can I upload a file larger than 4MB?

Best regards

Rolf

Use another web host (ie: Dropbox, OneDrive, Box, Google Drive), and leave the link open to all for a reasonable amount of time :slight_smile:

Hi Kulkul,

Here is the linked * .ifc.rvt:
https://we.tl/t-d5YdkknyZV

Best regards

Rolf

@rolf.archi I’ve added Spaces. Could you review this rvt file:

Hi Kulkul,

how do you get from DirectShape in the link file to MEP Space in host file?

A_MEP.dyn (35.2 KB)

Best regards

Rolf

The rvt file which you send doesn’t have any IFC Link. Have you reviewed the rvt file which i send you?

Let me know how it looks, so that i can share the graph here.

Hi Kulkul,

the returned rvt file is good.

My * .ifc.rvt is the rvt file created after inserting the ifc file.

Here is the whole project:
https://we.tl/t-z9Mz2tU9Ac

The MEP space must be created in the host file AC.rvt.

Best regards

Rolf

@rolf.archi Here you go…


2 Likes

Hi Kulkul,

Thanks a lot! The result looks very good!
Today the day comes to an end here (Central Europe), so tomorrow I will deal with the exact solution.

Finally an IFC specialist!
There are still many important Ifc topics, e.g. transfer of models for thermal calculations (importing multi-layer components with thermal properties for material …).

I hope to get more ideas and solutions in the future, but more on that later.

Best regard across the Atlantic(?)

Rolf

Hi Kulkul,

it took some time to edit, but now the script is running!

Even Python for Get Levels from Level Names (my task from Kulkul :-)) is solved:

import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

#Preparing input from dynamo to revit
names = IN[0]

#Do some action in a Transaction
levels = []

fec = FilteredElementCollector(doc).OfClass(Level).ToElements()

for l in fec:
	for n in names:
		if l.Name == n:
			levels.Add(l)
OUT = levels

Another question:
NormalVector

Normal vector (Z = -1): Direction of view for surfaces from the room to the outside?

Now I still have to label the rooms, but that’s sure to be easy.

I’ve only been with Dynamo for 4 weeks, so I’m a beginner.

Many thanks for the help.

So it works very well for the rooms in the example.

For rooms with complex geometry:
Room within a room (e.g. elevator in the stairwell) and
L-shaped rooms (center of the base is outside the room contour)
there are still problems:

The new test example:
https://we.tl/t-ZoYPxcbPfv

Best regards

Rolf

If you import the IFC instead of linking it, the rooms should be created by Revit. (File>open IFC)

Hi Einar,

Import creates spaces, but leads to many other problems:
Rooms are not placed correctly, components are not on the axis and all sorts of other disturbing things happen.

I use the architecture model to create a model for thermal calculations.
If the architecture model changes regularly, a linked Ifc file is the better solution.

Best regards

Rolf

Hi Kulkul,

it should look like this:

Is the problem here?
PoBF

Does the point have to lie within the contour?

BEst regards

Rolf

Hi everyone,

as a point for irregular spaces:
“Polylabel Algorithm” von alban_de_chasteigner
https://t.co/CMNG13s6Ej?amp=1

Best regards

Rolf

Hi Rolf,

I tried running the script with the Python script that You posted. Unfortunately the result is an Empty List. Maybe You could point out what could be the problem?

Best Regards
Priit

Hi Priit,

which script did you use: “A_MEP.dyn”?

It worked for me with Python and Revit 21.

Best regards
Rolf

Hi Priit,

Kulkul’s script was my base:
https://aws1.discourse-cdn.com/business6/uploads/dynamobim/original/3X/9/f/9f3ebefed60646e26a75924d21aadbffefe242fa.png

Best regards
Rolf

Hi Rolf

I used the script Kulkul posted and used the script You provided in the Python node (as seen on the picture I posted earlier). But the Python node did not work and resulted in an empty list. What could be the problem with the Python script?

Best Regards
Priit