Skip to content

Instantly share code, notes, and snippets.

@chuongmep
Last active December 3, 2020 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chuongmep/bc20a4f877c7a16fbdca5f41162bcb21 to your computer and use it in GitHub Desktop.
Save chuongmep/bc20a4f877c7a16fbdca5f41162bcb21 to your computer and use it in GitHub Desktop.
#Author Package RIE
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
def tolist(obj):
    if isinstance(obj, list):
        return UnwrapElement(obj)
    else:
        return [UnwrapElement(obj)]
doc = DocumentManager.Instance.CurrentDBDocument
sheetnames = tolist(IN[0])
sheetnumbers = tolist(IN[1])
titleblock = tolist(IN[2]) 
sheetlist = []
notcreated = []
TransactionManager.Instance.EnsureInTransaction(doc) 
for number in range(len(sheetnumbers)):
    if len(titleblock) > 1:
        newsheet = ViewSheet.Create(doc,titleblock[number].GetTypeId())
    else:
        newsheet = ViewSheet.Create(doc,titleblock[0].GetTypeId()) 
    newsheet.Name = sheetnames[number]
    try:
        newsheet.SheetNumber = sheetnumbers[number]
        sheetlist.append(newsheet.ToDSType(False))
    except:
        notcreated.append(number) 
        doc.Delete(newsheet.Id)
TransactionManager.Instance.TransactionTaskDone()
OUT = sheetlist, notcreated
public static ViewSheet CreateSheet(this Document doc, string sheetname,
string sheetnumber, Autodesk.Revit.DB.Element titleblock)
{
try
{
using (SubTransaction subtran= new SubTransaction(doc))
{
subtran.Start();
string SheetNameFix = RemoveInvalidChars(sheetname);
ViewSheet viewSheet = ViewSheet.Create(doc, titleblock.Id);
viewSheet.Name = SheetNameFix;
viewSheet.SheetNumber = sheetnumber;
subtran.Commit();
return viewSheet;
}
}
catch (Exception ex)
{
MessageBox.Show($"Have Sheet Number Null or Empty,\n Please Check Again\n{ex}",sheetname);
}
return null;
}
#Author Package RIE
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
def tolist(obj):
    if isinstance(obj, list):
        return UnwrapElement(obj)
    else:
        return [UnwrapElement(obj)]
doc = DocumentManager.Instance.CurrentDBDocument
sheetnames = tolist(IN[0])
sheetnumbers = tolist(IN[1])
titleblock = tolist(IN[2]) 
sheetlist = []
notcreated = []
TransactionManager.Instance.EnsureInTransaction(doc) 
for number in range(len(sheetnumbers)):
    if len(titleblock) > 1:
        newsheet = ViewSheet.Create(doc,titleblock[number].Id)
    else:
        newsheet = ViewSheet.Create(doc,titleblock[0].Id) 
    newsheet.Name = sheetnames[number]
    try:
        newsheet.SheetNumber = sheetnumbers[number]
        sheetlist.append(newsheet.ToDSType(False))
    except:
        notcreated.append(number) 
        doc.Delete(newsheet.Id)
TransactionManager.Instance.TransactionTaskDone()
OUT = sheetlist, notcreated
public static ViewSheet CreateSheet(this Document doc, string sheetname,
string sheetnumber, Autodesk.Revit.DB.Element titleblock)
{
try
{
using (SubTransaction subtran= new SubTransaction(doc))
{
subtran.Start();
string SheetNameFix = RemoveInvalidChars(sheetname);
ViewSheet viewSheet = ViewSheet.Create(doc, titleblock.GetTypeId());
viewSheet.Name = SheetNameFix;
viewSheet.SheetNumber = sheetnumber;
subtran.Commit();
return viewSheet;
}
}
catch (Exception ex)
{
MessageBox.Show($"Have Sheet Number Null or Empty,\n Please Check Again\n{ex}",sheetname);
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment