def __init__(self, __revit__, view, model):
        self.app = __revit__.Application
        self.doc = __revit__.ActiveUIDocument.Document
        self._view = view
        self._model = model
        self.excel_parameters = []
        self.exl_file_dir_path = "C:\\"
        self.config_file_dir_path = os.path.dirname(os.path.realpath(__file__))
        self._open_xl_file_Dialog = WinForms.OpenFileDialog()
        self._open_config_file_Dialog = WinForms.OpenFileDialog()
        self._save_config_file_Dialog = WinForms.SaveFileDialog()
        self._worker = BackgroundWorker()

        self._connectSignals()
def FromVegas(myVegas: Vegas):

    global pyVEGAS

    pyVEGAS = myVegas
    studioFile = StudioFile()

    openFileDialog1 = WinForms.OpenFileDialog()
    openFileDialog1.Filter = "Pinnacle Studio Movie(*.axp)|*.axp|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1
    openFileDialog1.RestoreDirectory = True
    openFileDialog1.AddExtension = True
    #    openFileDialog1.InitialDirectory = "\\VEGASPython";
    openFileDialog1.Title = "Load Pinnacle Studio Movie"

    if (openFileDialog1.ShowDialog() == WinForms.DialogResult.OK):
        if studioFile.openFile(openFileDialog1.FileName):
            print("Import Studio Movie started: ", openFileDialog1.FileName)

            print("Create Filename list")
            studioFile.createEventFilenameList()
            print("Filename list created")
            print("Check Files")
            studioFile.checkFileList()
            print("Create Track Event list")
            trackEventList = studioFile.getTrackEventList()
            studioFile.closeFile()
            print("Track Event list created")

            print("Create Timeline")
            createTimeline(trackEventList)
            print("Timeline created")
Exemple #3
0
def create_file_dialog(dialog_type, directory, allow_multiple, save_filename,
                       file_types, uid):
    window = BrowserView.instances[uid]

    if not directory:
        directory = os.environ['HOMEPATH']

    try:
        if dialog_type == FOLDER_DIALOG:
            dialog = WinForms.FolderBrowserDialog()
            dialog.RestoreDirectory = True

            if directory:
                dialog.SelectedPath = directory

            result = dialog.ShowDialog(window)
            if result == WinForms.DialogResult.OK:
                file_path = (dialog.SelectedPath, )
            else:
                file_path = None
        elif dialog_type == OPEN_DIALOG:
            dialog = WinForms.OpenFileDialog()

            dialog.Multiselect = allow_multiple
            dialog.InitialDirectory = directory

            if len(file_types) > 0:
                dialog.Filter = '|'.join([
                    '{0} ({1})|{1}'.format(*parse_file_type(f))
                    for f in file_types
                ])
            else:
                dialog.Filter = localization[
                    'windows.fileFilter.allFiles'] + ' (*.*)|*.*'
            dialog.RestoreDirectory = True

            result = dialog.ShowDialog(window)
            if result == WinForms.DialogResult.OK:
                file_path = tuple(dialog.FileNames)
            else:
                file_path = None

        elif dialog_type == SAVE_DIALOG:
            dialog = WinForms.SaveFileDialog()
            dialog.Filter = localization[
                'windows.fileFilter.allFiles'] + ' (*.*)|'
            dialog.InitialDirectory = directory
            dialog.RestoreDirectory = True
            dialog.FileName = save_filename

            result = dialog.ShowDialog(window)
            if result == WinForms.DialogResult.OK:
                file_path = dialog.FileName
            else:
                file_path = None

        return file_path
    except:
        logger.exception('Error invoking {0} dialog'.format(dialog_type))
        return None
def FromVegas(myVEGAS):

    global pyVEGAS

    pyVEGAS = myVEGAS

    studioFile = StudioFile()

    openFileDialog1 = WinForms.OpenFileDialog()
    openFileDialog1.Filter = "Media File with PinnStudio Scenelist(*.scn.xml)|*.scn.xml|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1
    openFileDialog1.RestoreDirectory = True
    openFileDialog1.AddExtension = False
    #    openFileDialog1.InitialDirectory = "\\VEGASPython";
    openFileDialog1.Title = "Load Pinnacle Studio Scenefile"

    if (openFileDialog1.ShowDialog() == WinForms.DialogResult.OK):
        sceneFilename = openFileDialog1.FileName
        mediaFilePath = os.path.dirname(sceneFilename)
        mediaFilename = sceneFilename.replace(".scn.xml", "")

        if studioFile.openFile(sceneFilename):
            print("Import Studio Movie started: ", sceneFilename)

            print("Create Track Event list")
            trackEventList = studioFile.getTrackEventList(mediaFilename)
            studioFile.closeFile()
            print("Track Event list created")

            print("Create SubClips")
            createSubClips(trackEventList)
            print("SubClips created")
def FromVegas(myVegas):
    studioFile = StudioFile()

    openFileDialog1 = WinForms.OpenFileDialog()
    openFileDialog1.Filter = "Media File with PinnStudio Scenelist(All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1
    openFileDialog1.RestoreDirectory = True
    openFileDialog1.AddExtension = False
    #    openFileDialog1.InitialDirectory = "\\VEGASPython";
    openFileDialog1.Title = "Load Pinnacle Studio Movie"

    if (openFileDialog1.ShowDialog() == WinForms.DialogResult.OK):
        mediaFilename = openFileDialog1.FileName
        mediaFilePath = os.path.dirname(mediaFilename)
        baseFilenameExt = os.path.basename(openFileDialog1.FileName)
        baseFilenameComp = os.path.splitext(baseFilenameExt)
        baseFilename = baseFilenameComp[0]
        Extension = baseFilenameComp[1]
        sceneFilename = baseFilenameExt + ".scn.xml"
        sceneFilenamePath = os.path.join(mediaFilePath, sceneFilename)
        if studioFile.openFile(sceneFilenamePath):
            print("Import Studio Movie started: ", sceneFilenamePath)

            print("Create Track Event list")
            trackEventList = studioFile.getTrackEventList(mediaFilename)
            studioFile.closeFile()
            print("Track Event list created")

            print("Create SubClips")
            createSubClips(trackEventList)
            print("SubClips created")
Exemple #6
0
    def create_file_dialog(self, dialog_type, directory, allow_multiple,
                           save_filename):
        if not directory:
            directory = os.environ["HOMEPATH"]

        try:
            if dialog_type == FOLDER_DIALOG:
                dialog = WinForms.FolderBrowserDialog()
                dialog.RestoreDirectory = True

                result = dialog.ShowDialog(BrowserView.instance.browser)
                if result == WinForms.DialogResult.OK:
                    file_path = (dialog.SelectedPath, )
                else:
                    file_path = None
            elif dialog_type == OPEN_DIALOG:
                dialog = WinForms.OpenFileDialog()

                dialog.Multiselect = allow_multiple
                dialog.InitialDirectory = directory
                dialog.Filter = localization[
                    "windows.fileFilter.allFiles"] + " (*.*)|*.*"
                dialog.RestoreDirectory = True

                result = dialog.ShowDialog(BrowserView.instance.browser)
                if result == WinForms.DialogResult.OK:
                    file_path = tuple(dialog.FileNames)
                else:
                    file_path = None

            elif dialog_type == SAVE_DIALOG:
                dialog = WinForms.SaveFileDialog()
                dialog.Filter = localization[
                    "windows.fileFilter.allFiles"] + " (*.*)|"
                dialog.InitialDirectory = directory
                dialog.RestoreDirectory = True
                dialog.FileName = save_filename

                result = dialog.ShowDialog(BrowserView.instance.browser)
                if result == WinForms.DialogResult.OK:
                    file_path = dialog.FileName
                else:
                    file_path = None

            return file_path

        except:
            logger.exception("Error invoking {0} dialog".format(dialog_type))
            return None
    def searchFile(self, filePathName):
        """ search File

        Parameters:
            filePathName: Path and name of the file to search

            when the file was not found and searchMissingMedia = True the procedure looks in all subdirectories of the directories specified in searchDirList

        return: 
            original filePathName or updated filePathName with new path
            "" when file was not found

        Pre condition
            searchDirName and searchFileList contain the directry name and the file list of the last found filename or None

        Post condition:
            searchDirName and searchFileList contain the directry name and the file list of the found filename
            
        """
        if os.path.isfile(filePathName):
            return filePathName
        elif searchMissingMedia:
            fname = os.path.basename(filePathName)
            if fname.lower() in (name.lower() for name in self.searchFileList
                                 ):  # search in last directoy found
                return os.path.join(self.searchDirName, fname)
            for rootDir in searchDirList:
                print("Search for ", fname, " in ", rootDir)
                for lookupDirName, subdirList, self.searchFileList in os.walk(
                        rootDir):
                    if fname.lower() in (name.lower()
                                         for name in self.searchFileList):
                        self.searchDirName = lookupDirName
                        return os.path.join(self.searchDirName, fname)

        print(fname, " not found")
        openFileDialog2 = WinForms.OpenFileDialog()
        openFileDialog2.Filter = "All files (*.*)|*.*"
        openFileDialog2.FilterIndex = 1
        openFileDialog2.RestoreDirectory = True
        openFileDialog2.AddExtension = True
        #        openFileDialog2.InitialDirectory = self.searchDirName;
        openFileDialog2.FileName = fname
        openFileDialog2.Title = "Select File and Directory for : " + filePathName

        if (openFileDialog2.ShowDialog() == WinForms.DialogResult.OK):
            print(fname, "->", openFileDialog2.FileName)
            return openFileDialog2.FileName
        return filePathName
Exemple #8
0
    def InitializeComponent(self):
        """Initialize form components."""
        self.components = System.ComponentModel.Container()

        self.openFileDialog = WinForms.OpenFileDialog()
        self.saveFileDialog = WinForms.SaveFileDialog()

        self.mainMenu = WinForms.MainMenu()

        self.fileMenu = WinForms.MenuItem()
        self.menuFileNew = WinForms.MenuItem()
        self.menuFileOpen = WinForms.MenuItem()
        self.menuFileSave = WinForms.MenuItem()
        self.menuFileSaveAs = WinForms.MenuItem()
        self.menuFileSep_1 = WinForms.MenuItem()
        self.menuFileExit = WinForms.MenuItem()

        self.editMenu = WinForms.MenuItem()
        self.menuEditUndo = WinForms.MenuItem()
        self.menuEditRedo = WinForms.MenuItem()
        self.menuEditSep_1 = WinForms.MenuItem()
        self.menuEditCut = WinForms.MenuItem()
        self.menuEditCopy = WinForms.MenuItem()
        self.menuEditPaste = WinForms.MenuItem()
        self.menuEditSep_2 = WinForms.MenuItem()
        self.menuEditSelectAll = WinForms.MenuItem()

        self.formatMenu = WinForms.MenuItem()
        self.menuFormatFont = WinForms.MenuItem()
        self.menuFormatWordWrap = WinForms.MenuItem()

        self.aboutMenu = WinForms.MenuItem()
        self.menuHelpAbout = WinForms.MenuItem()

        self.richTextBox = WinForms.RichTextBox()
        self.statusBarPanel1 = WinForms.StatusBarPanel()
        self.statusBar = WinForms.StatusBar()
        self.fontDialog = WinForms.FontDialog()
        self.statusBarPanel1.BeginInit()

        # ===================================================================
        # File Menu
        # ===================================================================

        self.menuFileNew.Text = "&New"
        self.menuFileNew.Shortcut = WinForms.Shortcut.CtrlN
        self.menuFileNew.ShowShortcut = False
        self.menuFileNew.Index = 0
        self.menuFileNew.Click += self.OnClickFileNew

        self.menuFileOpen.Text = "&Open"
        self.menuFileOpen.Shortcut = WinForms.Shortcut.CtrlO
        self.menuFileOpen.ShowShortcut = False
        self.menuFileOpen.Index = 1
        self.menuFileOpen.Click += self.OnClickFileOpen

        self.menuFileSave.Text = "&Save"
        self.menuFileSave.Shortcut = WinForms.Shortcut.CtrlS
        self.menuFileSave.ShowShortcut = False
        self.menuFileSave.Index = 2
        self.menuFileSave.Click += self.OnClickFileSave

        self.menuFileSaveAs.Text = "Save &As"
        self.menuFileSaveAs.Index = 3
        self.menuFileSaveAs.Click += self.OnClickFileSaveAs

        self.menuFileSep_1.Text = "-"
        self.menuFileSep_1.Index = 4

        self.menuFileExit.Text = "E&xit"
        self.menuFileExit.Shortcut = WinForms.Shortcut.AltF4
        self.menuFileExit.ShowShortcut = False
        self.menuFileExit.Index = 5
        self.menuFileExit.Click += self.OnClickFileExit

        self.fileMenu.Text = "&File"
        self.fileMenu.Index = 0

        items = (self.menuFileNew, self.menuFileOpen, self.menuFileSave,
                 self.menuFileSaveAs, self.menuFileSep_1, self.menuFileExit)

        self.fileMenu.MenuItems.AddRange(items)

        # ===================================================================
        # Edit menu
        # ===================================================================

        self.menuEditUndo.Text = "&Undo"
        self.menuEditUndo.Shortcut = WinForms.Shortcut.CtrlZ
        self.menuEditUndo.Index = 0
        self.menuEditUndo.Click += self.OnClickEditUndo

        self.menuEditRedo.Text = "&Redo"
        self.menuEditRedo.Shortcut = WinForms.Shortcut.CtrlY
        self.menuEditRedo.Index = 1
        self.menuEditRedo.Click += self.OnClickEditRedo

        self.menuEditSep_1.Text = "-"
        self.menuEditSep_1.Index = 2

        self.menuEditCut.Text = "Cut"
        self.menuEditCut.Shortcut = WinForms.Shortcut.CtrlX
        self.menuEditCut.Index = 3
        self.menuEditCut.Click += self.OnClickEditCut

        self.menuEditCopy.Text = "Copy"
        self.menuEditCopy.Shortcut = WinForms.Shortcut.CtrlC
        self.menuEditCopy.Index = 4
        self.menuEditCopy.Click += self.OnClickEditCopy

        self.menuEditPaste.Text = "Paste"
        self.menuEditPaste.Shortcut = WinForms.Shortcut.CtrlV
        self.menuEditPaste.Index = 5
        self.menuEditPaste.Click += self.OnClickEditPaste

        self.menuEditSelectAll.Text = "Select All"
        self.menuEditSelectAll.Shortcut = WinForms.Shortcut.CtrlA
        self.menuEditSelectAll.Index = 7
        self.menuEditSelectAll.Click += self.OnClickEditSelectAll

        self.menuEditSep_2.Text = "-"
        self.menuEditSep_2.Index = 6

        self.editMenu.Text = "&Edit"
        self.editMenu.Index = 1

        items = (self.menuEditUndo, self.menuEditRedo, self.menuEditSep_1,
                 self.menuEditCut, self.menuEditCopy, self.menuEditPaste,
                 self.menuEditSep_2, self.menuEditSelectAll)

        self.editMenu.MenuItems.AddRange(items)

        # ===================================================================
        # Format Menu
        # ===================================================================

        self.menuFormatWordWrap.Text = "Word Wrap"
        self.menuFormatWordWrap.Checked = self.word_wrap
        self.menuFormatWordWrap.Index = 1
        self.menuFormatWordWrap.Click += self.OnClickFormatWordWrap

        self.menuFormatFont.Text = "Fo&nt"
        self.menuFormatFont.Index = 0
        self.menuFormatFont.Click += self.OnClickFormatFont

        self.formatMenu.Text = "F&ormat"
        self.formatMenu.Index = 2

        items = (self.menuFormatWordWrap, self.menuFormatFont)

        self.formatMenu.MenuItems.AddRange(items)

        # ===================================================================
        # About menu
        # ===================================================================

        self.menuHelpAbout.Text = "&About"
        self.menuHelpAbout.Index = 0
        self.menuHelpAbout.Click += self.OnClickHelpAbout

        self.aboutMenu.Text = "&Help"
        self.aboutMenu.Index = 3
        self.aboutMenu.MenuItems.Add(self.menuHelpAbout)

        self.statusBarPanel1.Dock = WinForms.DockStyle.Fill
        self.statusBarPanel1.Text = "Ready"
        self.statusBarPanel1.Width = 755

        self.richTextBox.Dock = WinForms.DockStyle.Fill
        self.richTextBox.Size = System.Drawing.Size(795, 485)
        self.richTextBox.TabIndex = 0
        self.richTextBox.AutoSize = 1
        self.richTextBox.ScrollBars = WinForms.RichTextBoxScrollBars.ForcedBoth
        self.richTextBox.Font = System.Drawing.Font("Tahoma", 10.0)
        self.richTextBox.AcceptsTab = 1
        self.richTextBox.Location = System.Drawing.Point(0, 0)

        self.statusBar.BackColor = System.Drawing.SystemColors.Control
        self.statusBar.Location = System.Drawing.Point(0, 518)
        self.statusBar.Size = System.Drawing.Size(775, 19)
        self.statusBar.TabIndex = 1
        self.statusBar.ShowPanels = True
        self.statusBar.Panels.Add(self.statusBarPanel1)

        items = (self.fileMenu, self.editMenu, self.formatMenu, self.aboutMenu)
        self.mainMenu.MenuItems.AddRange(items)

        self.openFileDialog.Filter = "Text documents|*.txt|RTF document|*.rtf"
        self.openFileDialog.Title = "Open document"

        self.saveFileDialog.Filter = "Text Documents|*.txt|" \
                                     "Rich Text Format|*.rtf"
        self.saveFileDialog.Title = "Save document"
        self.saveFileDialog.FileName = "Untitled"

        self.AutoScaleBaseSize = System.Drawing.Size(5, 13)
        self.ClientSize = System.Drawing.Size(775, 537)
        self.Menu = self.mainMenu
        self.Text = "Python Wordpad"

        self.Controls.Add(self.statusBar)
        self.Controls.Add(self.richTextBox)
        self.statusBarPanel1.EndInit()
def main():
    """Main Function."""

    print("Running {fname} version {ver}...".format(fname=__name,
                                                    ver=__version))

    # STEP 0: Setup
    doc = __revit__.ActiveUIDocument.Document
    view = doc.ActiveView

    # STEP 1: Ask user for clash report html file adn parse it
    print("Opening interference check report file...")
    open_dialog = swf.OpenFileDialog()
    open_dialog.Title = "Open Interference Check Report"
    open_dialog.Filter = "HMTL files (*.html)|*.html"
    if open_dialog.ShowDialog() == swf.DialogResult.OK:  # file selected
        file_path = open_dialog.FileName
        # STEP 2: Parse clash report file and summarize findings
        print("Reading {fname}...".format(fname=file_path))
        with open(file_path, mode="rb") as html_file:
            html = html_file.read()  # just read the plain bytes
            uhtml = unicode(
                html, "utf-16")  # Revit exports html in UTF-16(-LE) encoding
        print("Parsing file contents...")
        parser = InterferenceReportParser()
        parser.feed(uhtml)
        parser.close()
        clashes = parser.clashes
        clashing_ids = []
        for pair in parser.clashes.values():
            for elem_id in pair:
                clashing_ids.append(elem_id)
        clashing_ids = set(clashing_ids)
        # Get all element ids of the elements in the view
        all_ids = db.FilteredElementCollector(doc, view.Id)\
                    .WhereElementIsNotElementType()\
                    .ToElementIds()
        all_ids = set([elem_id.IntegerValue for elem_id in all_ids])
        # Get all element ids of non-clashing elements in the view
        non_clashing_ids = all_ids - clashing_ids
        # Create summary text for user input dialog
        summary_text = "Checked report {path}\n".format(path=file_path)
        summary_text += "Found {num} clashes in the report.\n".format(
            num=len(clashes))
        summary_text += "Found {num} clashing elements involved in those clashes.\n".format(
            num=len(clashing_ids))
        summary_text += "The total number of elements in the current view is {num}\n".format(
            num=len(all_ids))
        summary_text += "Found {num} non-clashing elements in the current view.".format(
            num=len(non_clashing_ids))
        print(summary_text)

        # STEP 3: Ask user for display option
        dialog = ui.TaskDialog(title="Mark All Clashes")
        dialog.MainInstruction = "Interference Report Summary"
        dialog.MainContent = summary_text
        dialog.AddCommandLink(ui.TaskDialogCommandLinkId.CommandLink1,
                              "Mark clashing elements and fade the rest")
        dialog.AddCommandLink(ui.TaskDialogCommandLinkId.CommandLink2,
                              "Hide all non-clashing elements temporarily")
        dialog.CommonButtons = ui.TaskDialogCommonButtons.Close
        dialog.DefaultButton = ui.TaskDialogResult.Close
        result = dialog.Show()

        # Step 4: Emphasize the clashes based on the user selection
        transaction = db.Transaction(doc)
        transaction.Start("{name} - v{ver}".format(name=__name, ver=__version))
        try:
            if result == ui.TaskDialogResult.CommandLink1:  # Mark clashes and fade the rest
                print("Marking all clashing elements and fading the rest...")
                for elem_id in all_ids:  # fade all visible elements in the view
                    view.SetElementOverrides(db.ElementId(elem_id),
                                             faded_overrides)
                for elem_id in clashing_ids:  # emphasize the clashing elements
                    view.SetElementOverrides(db.ElementId(elem_id),
                                             clashing_overrides)
            elif result == ui.TaskDialogResult.CommandLink2:  # Hide all non-clashing elements
                print(
                    "Hiding all non-clashing elements in the view temporarily..."
                )
                for elem_id in non_clashing_ids:  # hide alll non-clashing elements
                    view.HideElementTemporary(db.ElementId(elem_id))
            else:
                print("Nothing to do.")
        except Exception as ex:
            print("Exception: {ex}".format(ex=ex))
            transaction.RollBack()
        else:
            transaction.Commit()
            print("Done.")
    else:  # no file to parse
        print("Nothing to do.")
 def VBoxManageButtonClick(self, sender, args):
     ofd = Forms.OpenFileDialog()
     ofd.CheckFileExists = True
     if ofd.ShowDialog() == Forms.DialogResult.OK:
         self.VBoxManageTextBox.Text = ofd.FileName