# Convert Revit.DB.Line to Dynamo curve

**URL:** https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494
**Category:** Developers
**Tags:** python, dynamo
**Created:** [July 25, 2021, 11:10pm UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494 "2021-07-25T23:10:53Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![niojuri22](https://avatars.discourse-cdn.com/v4/letter/n/5f8ce5/32.png) [@niojuri22](https://forum.dynamobim.com/u/niojuri22)
#### Post date: [July 25, 2021, 11:10pm UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494/1 "2021-07-25T23:10:53Z")

</div>

Hi Everyone!

I’m trying to get the stairs path line on Dynamo. But, I can’t use the “ToProtoType()” attribute on Revit.DB.Line  
Can someone help me?

 ![Screenshot_1](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/b/1/b1bf44ecf6d5113dc9d1e0c3baf02bd7e058f114.png)

---

<div class="post-metadata">

### Author: ![chuongmep](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/chuongmep/32/197537_2.png) [@chuongmep](https://forum.dynamobim.com/u/chuongmep)
#### Post date: [July 26, 2021, 3:36am UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494/2 "2021-07-26T03:36:54Z")

</div>

Has resolved in topic.  
[How convert the line to a curve - Revit - Dynamo (dynamobim.com)](https://forum.dynamobim.com/t/how-convert-the-line-to-a-curve/27497/10)

---

<div class="post-metadata">

### Author: ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)
#### Post date: [August 2, 2021, 10:23am UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494/3 "2021-08-02T10:23:42Z")

</div>

Hello,  
an instance of CurveLoop is a `IEnumerable<Curve>` so, you need to iterate on it to convert curves are inside this collection

```auto
import clr
import sys
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import Autodesk.DesignScript.Geometry as DS

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

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument

elem = UnwrapElement(IN[0])
elemsStair = [doc.GetElement(x) for x in elem.GetStairsRuns()]
stairPathCurvLoop = elemsStair[0].GetStairsPath()

OUT = [x.ToProtoType() for x in stairPathCurvLoop]

```

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/2/2/2281f5a3d91823f64791bef52db4dc4cb86dbb15.png)

---

<div class="post-metadata">

### Author: ![mclough](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/mclough/32/134664_2.png) [@mclough](https://forum.dynamobim.com/u/mclough)
#### Post date: [November 15, 2021, 10:43pm UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494/4 "2021-11-15T22:43:49Z")

</div>

i’m trying to understand this.

stairPathCurvLoop is Type CurveLoop  
the line:

```auto
OUT = [x.ToProtoType() for x in stairPathCurvLoop]

```

iterates through the CurveLoop and converts each Revit.DB geometry to Dynamo. When i use this on my example, i still get the error ‘’’ ‘Line’ has no attribute ‘ToProtoType’ ‘’’

```auto
# Dynamo
import clr
import sys
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

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

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI.Selection import *

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

#The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
view = UnwrapElement(IN[0])	# An element - should be an elevation

#Get CropRegionShapeManager from elevation
csm = view.GetCropRegionShapeManager()

#Get Crop Region shape
crshape = csm.GetCropShape()

#Assign your output to the OUT variable.
OUT = [c.ToProtoType() for c in crshape[0]]

```

---

<div class="post-metadata">

### Author: ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)
#### Post date: [November 17, 2021, 12:04pm UTC](https://forum.dynamobim.com/t/convert-revit-db-line-to-dynamo-curve/66494/5 "2021-11-17T12:04:43Z")

</div>

> [@mclough](#):
>
> iterates through the CurveLoop and converts each Revit.DB geometry to Dynamo. When i use this on my example, i still get the error ‘’’ ‘Line’ has no attribute ‘ToProtoType’ ‘’’

Hi, you need to import the ‘GeometryConversion’ tools.  
Read this

> **[Python 0.6.3 to 0.7.x Migration](https://github.com/DynamoDS/Dynamo/wiki/Python-0.6.3-to-0.7.x-Migration#geometryobjects)**
>
> Open Source Graphical Programming for Design. Contribute to DynamoDS/Dynamo development by creating an account on GitHub.
