コード例 #1
0
ファイル: script.py プロジェクト: kjanik11/pyRevit
    def _print_combined_sheets_in_order(self):
        # todo: Revit does not follow the order of sheets as set by ViewSet
        print_mgr = doc.PrintManager
        print_mgr.PrintRange = PrintRange.Select
        viewsheet_settings = print_mgr.ViewSheetSetting

        sheet_set = ViewSet()

        for sheet in self.sheets_lb.ItemsSource:
            sheet_set.Insert(sheet.revit_sheet)

        # Collect existing sheet sets
        cl = FilteredElementCollector(doc)
        viewsheetsets = cl.OfClass(clr.GetClrType(
            ViewSheetSet)).WhereElementIsNotElementType().ToElements()
        all_viewsheetsets = {vss.Name: vss for vss in viewsheetsets}

        sheetsetname = 'OrderedPrintSet'

        with Transaction(doc, 'Update Ordered Print Set') as t:
            t.Start()
            # Delete existing matching sheet set
            if sheetsetname in all_viewsheetsets:
                viewsheet_settings.CurrentViewSheetSet = all_viewsheetsets[
                    sheetsetname]
                viewsheet_settings.Delete()

            viewsheet_settings.CurrentViewSheetSet.Views = sheet_set
            viewsheet_settings.SaveAs(sheetsetname)
            t.Commit()

        print_mgr.PrintToFile = True
        print_mgr.CombinedFile = True
        print_mgr.PrintToFileName = op.join(r'C:', 'Ordered Sheet Set.pdf')
        print_mgr.SubmitPrint()
コード例 #2
0
    def createsheetset(self, sender, args):
        self.my_window.Close()
        # get selected revision
        srindex = self.my_listView_revisionList.SelectedIndex
        if srindex >= 0:
            sr = doc.GetElement(ElementId(self.revs[srindex]))
        else:
            return

        # get printed printmanager
        printmanager = doc.PrintManager
        printmanager.PrintRange = PrintRange.Select
        viewsheetsetting = printmanager.ViewSheetSetting

        # collect data
        sheetsnotsorted = FilteredElementCollector(doc).OfCategory(
            BuiltInCategory.OST_Sheets).WhereElementIsNotElementType(
            ).ToElements()
        sheets = sorted(sheetsnotsorted, key=lambda x: x.SheetNumber)
        viewsheetsets = FilteredElementCollector(doc).OfClass(
            clr.GetClrType(
                ViewSheetSet)).WhereElementIsNotElementType().ToElements()
        allviewsheetsets = {vss.Name: vss for vss in viewsheetsets}
        sheetsetname = 'Rev {0} - {1}'.format(sr.RevisionNumber,
                                              sr.Description)

        with Transaction(doc, 'Create Revision Sheet Set') as t:
            t.Start()
            if sheetsetname in allviewsheetsets.keys():
                viewsheetsetting.CurrentViewSheetSet = allviewsheetsets[
                    sheetsetname]
                viewsheetsetting.Delete()

            # find revised sheets
            myviewset = ViewSet()
            for s in sheets:
                revs = s.GetAllRevisionIds()
                revids = [x.IntegerValue for x in revs]
                if sr.Id.IntegerValue in revids:
                    myviewset.Insert(s)

            # create new sheet set
            viewsheetsetting.CurrentViewSheetSet.Views = myviewset
            viewsheetsetting.SaveAs(sheetsetname)
            t.Commit()
コード例 #3
0
        sheetPrint.append(sheetId)
        print(sheet.SheetNumber)
print(len(sheetPrint))


def divide_chunks(l, n):
    # looping till length l
    for i in range(0, len(l), n):
        yield l[i:i + n]


#chunks = list(divide_chunks(sheetPrint, 200))
#count = 1
t = Transaction(doc, 'Create split lists')
t.Start()
sheetSet = ViewSet()
for s in sheetPrint:
    #a = 0
    #for c in chunk:
    sheetSet.Insert(doc.GetElement(s))
    #b = doc.GetElement(s)
    #t = b.ViewType
    #r = str(b.ViewType)
    #n = b.Name
    #a += 1
    #print(r + "," + n + "," + str(s))
print(sheetSet.Size.ToString())
#print(a)
# Transaction Start

printManager = doc.PrintManager
コード例 #4
0
from Autodesk.Revit.DB import Transaction, FilteredElementCollector, PrintRange, View, ViewSet, ViewSheetSet
from Autodesk.Revit.UI import TaskDialog

uidoc = __revit__.ActiveUIDocument
doc = __revit__.ActiveUIDocument.Document

sheetsetname = 'ViewPrintSet'

# Get printmanager / viewsheetsetting
printmanager = doc.PrintManager
printmanager.PrintRange = PrintRange.Select
viewsheetsetting = printmanager.ViewSheetSetting

# Collect selected views
myviewset = ViewSet()
for elId in uidoc.Selection.GetElementIds():
    el = doc.GetElement(elId)
    if isinstance(el, View):
        myviewset.Insert(el)

if myviewset.IsEmpty:
    TaskDialog.Show('pyRevit', 'At least one view must be selected.')
else:
    # Collect existing sheet sets
    cl = FilteredElementCollector(doc)
    viewsheetsets = cl.OfClass(clr.GetClrType(ViewSheetSet)).WhereElementIsNotElementType().ToElements()
    allviewsheetsets = {vss.Name: vss for vss in viewsheetsets}

    with Transaction(doc, 'Created Print Set') as t:
        t.Start()
コード例 #5
0
ファイル: script.py プロジェクト: Melca-G/Aeolus
                                 multi_file=True,
                                 unc_paths=False)
destinationFolder = forms.pick_folder()

# open File and export
for f in collectorFiles:
    currentDoc = FileUtilities.OpenFileCloseWorksets(f, application, False)
    # Unload Links
    revitLinkType = FilteredElementCollector(doc).OfClass(
        RevitLinkType).ToElements()
    for r in revitLinkType:
        try:
            r.Unload(None)
        except:
            pass
    saveOp = SaveAsOptions()
    workOp = WorksharingSaveAsOptions()
    workOp.SaveAsCentral = True
    saveOp.SetWorksharingOptions(workOp)
    title = currentDoc.Title
    currentDoc.SaveAs(destinationFolder + '\\' + title, saveOp)
    currentDoc.Close(False)
    # Open again
    currentDoc2 = FileUtilities.OpenFile(destinationFolder + '\\' + title,
                                         application, False)
    view = FileUtilities.GetViewByName(currentDoc2, "FBX Export")
    set = ViewSet()
    set.Insert(view)
    FileUtilities.ExportFBX(currentDoc2, set, destinationFolder)
    currentDoc2.Close(False)