"""Imports all .pat hatch pattern files in a selected folder and adds them to
the open document.  Script by Mitch Heynick 02.11.18"""

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino, os

def GetAllFileNames(folder,ext):
    #finds all files of chosen filetype in the selected folder
    #returns list of tuples (filename,0) - normal ext. or (filename,1) - alt. ext.
    #returns empty list if no matching filenames found
    filenames=[]
    for filename in os.listdir(folder):
        if filename.lower().endswith(ext): filenames.append(filename[:-len(ext)])
    return filenames

def ImportHatchPats():
    msg="Select folder to import hatch patterns"
    folder=rs.BrowseForFolder(message=msg)
    if not folder: return
    
    ext=".pat"
    filenames=GetAllFileNames(folder,ext)
    if not filenames: return
    
    hatches=sc.doc.HatchPatterns
    for filename in filenames:
        fullpath=os.path.join(folder,filename+ext).lower()
        patts=Rhino.DocObjects.HatchPattern.ReadFromFile(fullpath,True)
        for patt in patts: hatches.Add(patt)
ImportHatchPats()