# Get Revit Title Cell Data

**URL:** https://forum.dynamobim.com/t/get-revit-title-cell-data/45554
**Category:** Revit
**Tags:** revit, schedule, dynamo
**Created:** [January 14, 2020, 11:51pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554 "2020-01-14T23:51:09Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Kyle\_Nelson](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@Kyle\_Nelson](https://forum.dynamobim.com/u/Kyle_Nelson)
#### Post date: [January 14, 2020, 11:51pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/1 "2020-01-14T23:51:09Z")

</div>

Does anyone know of a way to get data from a schedule title cell?

I’m using dynamo to export electrical element data to excel so they can be edited by a non-Revit user. We insert cells in the Revit schedule title to input schedule notes. I’m looking for a way to include the that specific cell in the data that I’m exporting to allow the non-Revit user to edit the schedule notes. I would then like to import that back into Revit. Does anyone know if this is possible?

---

<div class="post-metadata">

### Author: ![khuzaimah.ElecEng](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/khuzaimah.eleceng/32/92768_2.png) [@khuzaimah.ElecEng](https://forum.dynamobim.com/u/khuzaimah.ElecEng)
#### Post date: [January 15, 2020, 8:55am UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/2 "2020-01-15T08:55:44Z")

</div>

try BimorphNodes package and archilab package, it should help you in that

---

<div class="post-metadata">

### Author: ![Kyle\_Nelson](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@Kyle\_Nelson](https://forum.dynamobim.com/u/Kyle_Nelson)
#### Post date: [January 15, 2020, 6:21pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/3 "2020-01-15T18:21:06Z")

</div>

I can’t seem to find a node that will get the title cells/rows. I can get at the headers and body rows but not title rows.

---

<div class="post-metadata">

### Author: ![SeanP](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/seanp/32/42560_2.png) [@SeanP](https://forum.dynamobim.com/u/SeanP)
#### Post date: [January 15, 2020, 6:53pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/4 "2020-01-15T18:53:21Z")

</div>

> [@Edit the schedule column headers with Python](https://forum.dynamobim.com/t/edit-the-schedule-column-headers-with-python/39662/2):
>
> I managed to find solution on my own. Editing the column headers is possible, but in a different way. In case anyone would have similar struggle, I’m leaving solution: it worked for me to edit the ColumnHeading property of ScheduleField class, instead of trying to set the cell text. [https://www.revitapidocs.com/2018.2/3890f745-6f24-f81a-9f8f-d8b47c8e3f94.htm](https://www.revitapidocs.com/2018.2/3890f745-6f24-f81a-9f8f-d8b47c8e3f94.htm)

Use this link and combine it with the changes for the SectionType below and I think this may get you what you want:

```
TableData td = vs.GetTableData(); // get viewschedule table data
TableSectionData tsd = td.GetSectionData(SectionType.Header); // get header section data
string text = tsd.GetCellText(0, 0);
tsd.SetCellText(0, 0, "my new title");

```

---

<div class="post-metadata">

### Author: ![Kyle\_Nelson](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@Kyle\_Nelson](https://forum.dynamobim.com/u/Kyle_Nelson)
#### Post date: [January 15, 2020, 7:50pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/5 "2020-01-15T19:50:43Z")

</div>

Got it! Thanks for the references. I had to modify it a little bit to get the input and output but that did the trick. Here’s what I came up with:

# The inputs to this node will be stored as a list in the IN variables.

schedule = UnwrapElement(IN[0])  
row = IN[1]  
column = IN[2]

TransactionManager.Instance.EnsureInTransaction(doc)

#get viewschedule table data  
td = schedule.GetTableData()  
#get header section data  
tsd = td.GetSectionData(SectionType.Header)  
text = tsd.GetCellText(row,column)

TransactionManager.Instance.TransactionTaskDone()

# Assign your output to the OUT variable.

OUT = text

---

<div class="post-metadata">

### Author: ![Kyle\_Nelson](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@Kyle\_Nelson](https://forum.dynamobim.com/u/Kyle_Nelson)
#### Post date: [January 15, 2020, 7:51pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/6 "2020-01-15T19:51:54Z")

</div>

Excuse the formatting. New user here.

---

<div class="post-metadata">

### Author: ![Bren](https://avatars.discourse-cdn.com/v4/letter/b/50afbb/32.png) [@Bren](https://forum.dynamobim.com/u/Bren)
#### Post date: [June 5, 2021, 1:06am UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/7 "2021-06-05T01:06:16Z")

</div>

I’m using your script. Any idea why this outputs an empty string?

 ![Capture](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/a/8/a8efc7eb992e29754370db9977f9345ab17cb144.png)

Revit 2019: [get title cell data.rvt](https://forum.dynamobim.com/uploads/short-url/2bNJak8SKT2J8WHs8kINl3hmKil.rvt) (600 KB)  
Dynamo: [get title cell data.dyn](https://forum.dynamobim.com/uploads/short-url/1S6PAA7KuG56BUzJ6qxFUPpOpoo.dyn) (16.1 KB)  
Python: [get title cell data.py](https://forum.dynamobim.com/uploads/short-url/8hIhvscZ3wRe3SM5nExOE8aFQ2V.py) (1.2 KB)

```auto
import clr

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

# Import RevitNodes
clr.AddReference("RevitNodes")

import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitAPI")

clr.AddReference("RevitAPIUI")

import Autodesk
from Autodesk.Revit.DB import *

# Import Revit elements
from Revit.Elements import *

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

import sys

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
adoc = doc.ActiveView

#The inputs to this node will be stored as a list in the IN variables.

schedule = UnwrapElement(IN[0])
row = IN[1]
column = IN[2]

TransactionManager.Instance.EnsureInTransaction(doc)

#get viewschedule table data
td = schedule.GetTableData()
#get header section data
tsd = td.GetSectionData(SectionType.Header)
text = tsd.GetCellText(row,column)

TransactionManager.Instance.TransactionTaskDone()
#Assign your output to the OUT variable.

OUT = text

```

---

<div class="post-metadata">

### Author: ![Kyle\_Nelson](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@Kyle\_Nelson](https://forum.dynamobim.com/u/Kyle_Nelson)
#### Post date: [June 7, 2021, 2:17pm UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/8 "2021-06-07T14:17:26Z")

</div>

Line 48 replace Header with Body. Header is used for the data above the A, B, C, etc. column markers. Body is used for data below that.  
It should read: tsd = td.GetSectionData(SectionType.Body)

I was getting header cells (rows inserted below the title cell row) information with my code above. Also, if you’re looking to output all of the headers into a list, you’ll need to have a loop in your python code.

---

<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: [June 8, 2021, 10:59am UTC](https://forum.dynamobim.com/t/get-revit-title-cell-data/45554/9 "2021-06-08T10:59:58Z")

</div>

Hello,  
here is an alternative to read header

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

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

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

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

schedule = UnwrapElement(IN[0])
row = IN[1]
column = IN[2]

text = schedule.GetCellText(SectionType.Header,row,column)

OUT = text

```
