Exemplo n.º 1
0
 def __init__(self):
     import revitronui
     self.config = revitron.DocumentConfigStorage().get(
         'revitron.export', defaultdict())
     try:
         address = self.config.get('PDF_Printer_Address')
         output = self.config.get('PDF_Temporary_Output_Path')
         self.directory = self.config.get('Sheet_Export_Directory')
         self.defaultSize = self.config.get('Default_Sheet_Size')
     except:
         revitronui.Alert('Please configure your PDF exporter first!')
     if not address:
         revitronui.Alert('Please configure the PDF Printer address first!')
     if not output:
         revitronui.Alert(
             'Please configure the temporary PDF output directory first!')
     if not self.directory:
         revitronui.Alert('Please configure the export directory first!')
     if not self.defaultSize:
         revitronui.Alert('Please configure a paper size settings first!')
     self.exporter = revitron.PDFExporter(address, output)
     self.sizeParamName = self.config.get('Sheet_Size_Parameter_Name')
     self.orientationParamName = self.config.get(
         'Sheet_Orientation_Parameter_Name')
     self.defaultOrientation = self.config.get('Default_Sheet_Orientation')
Exemplo n.º 2
0
 def testConfigStorage(self):
     config = revitron.DocumentConfigStorage()
     config.set('test.1', {'key': 'value'})
     config.set('test.2', 'string')
     raw = revitron._(revitron.DOC.ProjectInformation).get(
         config.storageName)
     self.assertEquals(raw,
                       '{"test.1": {"key": "value"}, "test.2": "string"}')
     self.assertEquals(config.get('test.2'), 'string')
Exemplo n.º 3
0
 def __init__(self):
     import revitronui
     self.config = revitron.DocumentConfigStorage().get(
         'revitron.export', defaultdict())
     try:
         self.exporter = revitron.DWGExporter(
             self.config.get('DWG_Export_Setup'))
     except:
         revitronui.Alert('Please configure your DWG exporter first!')
     self.directory = self.config.get('Sheet_Export_Directory', False)
     if not self.directory:
         revitronui.Alert('Please configure the export directory first!')
Exemplo n.º 4
0
import revitron
import revitronui
import sqlite3
import pyrevit
import os

config = revitron.DocumentConfigStorage().get('revitron.history', dict())
sqliteFile = config.get('file', '')
output = pyrevit.output.get_output()


def flexCharts(charts):
    nodes = []
    scripts = []
    for chart in charts:
        chart._setup_charts()
        canvasId = chart._make_canvas_unique_id()
        nodes.append(chart._make_canvas_code(canvasId))
        scripts.append(chart._make_charts_script(canvasId))
    output.print_html('<r-flex>{}</r-flex>'.format(''.join(nodes)))
    for script in scripts:
        output.inject_script(script, body=True)


if not sqliteFile:
    revitronui.Alert('Logging is disabled for this model!')

try:

    output.print_html('<h1>Model Stats for {}</h1>'.format(revitron.DOC.Title))
    output.add_style('body { padding: 50px; }')
Exemplo n.º 5
0

def addFields(components, fields):
    for field in fields:
        if field == '---':
            components.append(Separator())
        else:
            key = revitron.String.sanitize(field)
            components.append(Label(field))
            components.append(TextBox(key, Text=config.get(key)))
    return components


if not revitron.Document().isFamily():

    config = revitron.DocumentConfigStorage().get('revitron.export',
                                                  defaultdict())

    components = addFields([], [
        'Sheet Export Directory', 'Sheet Naming Template',
        'Sheet Size Parameter Name', 'Default Sheet Size',
        'Sheet Orientation Parameter Name'
    ])

    orientationField = 'Default Sheet Orientation'
    orientationKey = revitron.String.sanitize(orientationField)
    orientations = ['Landscape', 'Portrait']
    default = orientations[0]
    if config.get(orientationKey) in orientations:
        default = config.get(orientationKey)
    components.append(Label(orientationField))
    components.append(ComboBox(orientationKey, orientations, default=default))
from pyrevit import script

mlogger = logger.get_logger(__name__)

if not revitron.Document().isFamily():

    out = script.get_output()
    UI.printLogo()
    UI.printTitle()
    out.print_html('Removing registered extensions')

    extManager = rpm.ExtensionsManager()
    extManager.removeAll()

    out.print_html('Getting project dependencies<br>')
    lines = revitron.DocumentConfigStorage().get('rpm.extensions',
                                                 '').split('\r\n')

    for line in lines:

        items = line.split('\t')

        try:
            extType = items[0].strip()
            extRepo = items[1].strip()
        except:
            extType = ''
            extRepo = ''

        if extRepo:
            try:
                extName = os.path.basename(extRepo).replace('.git', '')
Exemplo n.º 7
0
import revitron
import sys
from pyrevit import forms

if not forms.check_workshared(revitron.DOC):
    sys.exit()

config = revitron.DocumentConfigStorage().get('revitron.history', dict())
sqliteFile = config.get('file', '')

msgDisabled = """Logging transactions is disabled for this Revit model. Select or create a database to enable logging."""

msgEnabled = """Logging transactions is enabled for this Revit model. The following database is used:

{}"""


def alertReopen():
    forms.alert(
        'Note that changes won\'t take effect until the current file is closed and reopened again.'
    )


res = None
optionSelect = 'Select or create database'
optionDisable = 'Disable logging'
optionCancel = 'Close'

if not sqliteFile:
    res = forms.alert(msgDisabled, options=[optionSelect, optionCancel])
else:
Exemplo n.º 8
0
 def _getSqliteFile(self):
     import revitron
     config = revitron.DocumentConfigStorage().get('revitron.history',
                                                   dict())
     return config.get('file', '')
Exemplo n.º 9
0
Define extensions to be used with this Revit model. Defined extensions can be installed by using the "Install Extensions" button. 
"""
import revitron
import System.Windows
from pyrevit import script
from rpw.ui.forms import FlexForm, TextBox, Button, Label


def openHelp(sender, e):
    script.open_url(
        'https://revitron-ui.readthedocs.io/en/latest/tools/rpm.html')


if not revitron.Document().isFamily():

    config = revitron.DocumentConfigStorage().get('rpm.extensions')

    components = [
        Label(
            'You can define a list of pyRevit extensions to be used with the currently active model.\n'
            'That list will be stored in the project information and therefore can be easily distributed\n'
            'among other team members to easly create a common work environment.\n'
            'To install or switch to the extension saved with your project just hit the "Install Extensions" button.\n\n'
            'Enter one extension per line providing the type of the extension ("ui" or "lib")\n'
            'and the repository URL separated by a TAB as follows:',
            FontSize=14,
            Height=140,
            Width=650),
        Label(
            'ui	https://ui-extension-repository.git\r\nlib	https://lib-extension-repository.git',
            FontFamily=System.Windows.Media.FontFamily('Consolas'),
Exemplo n.º 10
0
import revitron
import os
from revitron import _
from pyrevit import script
from collections import defaultdict

config = revitron.DocumentConfigStorage().get('revitron.export', defaultdict())
setup = config.get('DWG_Export_Setup')
exporter = revitron.DWGExporter(setup)

sheets = revitron.Selection().get()

if not sheets:
    sheets = [revitron.ACTIVEVIEW]

dirs = []

for sheet in sheets:
    path = exporter.exportSheet(sheet, config.get('Sheet_Export_Directory'),
                                config.get('Sheet_Naming_Template'))
    if path:
        dirs.append(os.path.dirname(path))
        script.get_output().print_html(
            ':smiling_face: Exported <em>{}</em>'.format(
                os.path.basename(path)))
    else:
        script.get_output().print_html(
            ':pouting_face: Error exporting <em>{}</em>'.format(
                os.path.basename(path)))

dirs = list(set(dirs))
Exemplo n.º 11
0
        component_values = {}
        window = Window.GetWindow(sender)
        for container in [
                window.Main, window.Settings, window.Raw, window.Finished
        ]:
            for component in container.Children:
                try:
                    component_values[component.Name] = component.value
                except AttributeError:
                    pass
        window.values = component_values
        window.close()


config = revitron.DocumentConfigStorage().get(
    'revitron.rooms.calculateRoomHeights', defaultdict())

fields = addField(OrderedDict(),
                  config,
                  'roomFltrParam',
                  'Room Filter Parameter Name',
                  'TextBox',
                  tab='Settings')
fields = addField(fields,
                  config,
                  'roomFltrList',
                  'Room Filter List (separate multiple by comma)',
                  'TextBox',
                  tab='Settings')
fields = addField(fields,
                  config,