parameters: (filename, skip=[], only=[], root=None)
return_statement: return doc
docstring: Open an IFC file inside a new document.
  
      TODO: change the default argument to `None`, instead of `[]`.
      This is better because lists are mutable.
  
      Most of the work is done in the `insert` function.
docstring_summary: Open an IFC file inside a new document.
docstring_tokens: Open an IFC file inside a new document .
function: def open(filename, skip=[], only=[], root=None):
      """Open an IFC file inside a new document.
  
      TODO: change the default argument to `None`, instead of `[]`.
      This is better because lists are mutable.
  
      Most of the work is done in the `insert` function.
      """
      docname = os.path.splitext(os.path.basename(filename))[0]
      docname = importIFCHelper.decode(docname, utf=True)
      doc = FreeCAD.newDocument(docname)
      doc.Label = docname
      doc = insert(filename, doc.Name, skip, only, root)
      return doc
function_tokens: def open ( filename , skip = [ ] , only = [ ] , root = None ) : docname = os . path . splitext ( os . path . basename ( filename ) ) [ 0 ] docname = importIFCHelper . decode ( docname , utf = True ) doc = FreeCAD . newDocument ( docname ) doc . Label = docname doc = insert ( filename , doc . Name , skip , only , root ) return doc