I am extracting text bound up in views. Part of the information I have is the Sheet name and Sheet number as it applies, but now I want to know it the piece of text, in the view, on the sheet
# Simplified version by Ron.Allen to just text in views - Apsis0215 at gmail.com 2019-01-02
# Deduced from from Konrad K Sobon @arch_laboratory, http://archi-lab.net Get function 2015
# Derived from Jeremy Tammick's bip function work in C#
import clr
# Import Element wrapper extension methods
clr.AddReference("RevitNodes")
clr.AddReference("DSCoreNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
import System
##IN[0] for elements
if isinstance(IN[0], list):
objList = []
for i in IN[0]:
objList.append(UnwrapElement(i))
else:
objList = IN[0]
elements = []
for i in objList:
elements.append(UnwrapElement(i))
##Export values of objects - the TEXT_TEXT built in parameter is the VALUE of the instance of text.
OUT=[]
#OUT.append(("Sheet Number","Sheet Name","DetailID","View Type","View ID","View Name","Text Note","Object GUID","Revit Select ID"))
OUT.append(("Sheet Number","Sheet Name","DetailID","View Type","View Name","Title on Sheet", "Text Note","GUID","RevitID", "View ID", "View Appears In Sheet List"))
for obj in objList:
##
SNUM=""
SNAME=""
SDtlID = ""
VType = ""
VID= None
DVID=None
VName="nil"
strTxtVal=""
strViewTitle=""
VAISL = None
##View ID and Name
if hasattr(obj, "OwnerViewId"):
#Get object View ID
VID=obj.Document.GetElement(obj.OwnerViewId)
###<<<HERE IS THE ISSUE LOOKING FOR A WAY TO GET THE SHEET AND IF IT <<APPEARS IN SHEET LIST>> SO I CNA IGNORE SHEETS NOT IN THE LIST
VAISL=UnwrapElement(VID)
VAISL=VAISL.GetParameterValueByName("Appears in Sheet List")
###############################################################
#Get Object View Name
Vname=VID.Name
DVID = VID.ToDSType(True)
SNUM = DVID.GetParameterValueByName("Sheet Number")
SNAME = DVID.GetParameterValueByName("Sheet Name")
SDtlID = DVID.GetParameterValueByName("Detail Number")
VType = DVID.GetParameterValueByName("Type").Name
strViewTitle = DVID.GetParameterValueByName("Title on Sheet")
##String Valiue of note from BuiltInParameter
strTxtVal=obj.get_Parameter(BuiltInParameter.TEXT_TEXT).AsString()
#Get GUID
objGUID=obj.UniqueId #Get by ID: #obj = doc.GetElement(objGUID);
EleID=obj.Id
##Append values to list
#OUT.append((SNUM,SNAME,VID,Vname,strTxtVal))
OUT.append((SNUM, SNAME, SDtlID, VType, Vname, strViewTitle, strTxtVal, objGUID,EleID,VID,VAISL))
OUT = map(None, *OUT)
dyn-extract-notes-v00.96a.dyn (11.7 KB)