In our previous tutorials we showed how to:
- Create Wall Opening for Cable Tray in Revit 2016 using Dynamo
- Create Wall Opening for Ductwork in Revit 2016 using Dynamo
- Create Floor Opening for Vertical Pipes in Revit 2016 using Dynamo
- Create Rectangular Wall Opening for Horizontal Pipes in Revit 2016 using Dynamo
The workflow assumed that the model contains all trades in one file. But most of cases each trade exists in its own file and based on the linking technique used in your firm the relation between the trades projects defers.
In this example I assumed that the architecture linked the piping file to the base model project, because most of cases the architect will be the responsible for making the opening in the walls of his model.
Nothing changed from the Create Rectangular Wall Opening for Horizontal Pipes in Revit 2016 using Dynamo tutorial except the technique of getting the pipe elements. In the previous tutorials we addressing the pipe elements directly from the current model, but now we will access them through the Link file.
The “Get all Pipes from link” Node is pure Python Script that get the link documents from the current project then collect the Pipes Category and set them as its output. The workflow then continues as it is in the Create Rectangular Wall Opening for Horizontal Pipes in Revit 2016 using Dynamo tutorial.

The sample Revit project files:
Hi Mustafa,
I have tried this script, however I’m getting a false warning at the end (python script) which says:
“IronPythonEvaluator.EvaluateIronPythonScript – Operace se nezdařila.
Traceback (most recent call last):
File “”, line 36, in
TypeError: unsupported operand type(s) for /: ‘NoneType’ and ‘int'”
I am using Revit 18 and I have transfered both models to rvt 2018.
I used dynamo 2.0.1
Do you have any idea of what is the problem?
Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File “”, line 23, in
IndexError: index out of range: 1