Coverage for bim2sim/__main__.py: 0%

31 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-12 17:09 +0000

1"""bim2sim main module. 

2 

3This tool can be used to create simulation models based on IFC4 files. 

4 

5Usage: 

6 bim2sim project create <project_path> [-i <source>] [-s <target>] [-o] 

7 bim2sim project load [<project_path>] 

8 bim2sim --help 

9 bim2sim --version 

10 

11Options: 

12 load Load project from current working directory or given path 

13 create Create project folder on given relative or absolute path 

14 -h --help Show this screen. 

15 -v --version Show version. 

16 -s <target> --sim <target> Simulation to convert to. 

17 -i <source> --ifc <source> Path to ifc file 

18 -o --open Open config file 

19""" 

20from importlib.metadata import version 

21 

22import docopt 

23 

24from bim2sim import run_project 

25from bim2sim.project import Project, FolderStructure 

26from bim2sim.kernel.decision.console import ConsoleDecisionHandler 

27 

28 

29def get_version(): 

30 """Get package version""" 

31 try: 

32 return version("bim2sim") 

33 except Exception: 

34 return "unknown" 

35 

36 

37def commandline_interface(): 

38 """user interface""" 

39 

40 args = docopt.docopt(__doc__, version=get_version()) 

41 

42 # arguments 

43 project = args.get('project') 

44 load = args.get('load') 

45 create = args.get('create') 

46 

47 path = args.get('<project_path>') 

48 target = args.get('--sim') 

49 source = args.get('--ifc') 

50 open_conf = args.get('--open') 

51 

52 if project: 

53 if create: 

54 FolderStructure.create(path, source, target, open_conf) 

55 exit(0) 

56 # pro = Project.create(path, source, target, open_conf) 

57 elif load: 

58 pro = Project(path) 

59 handler = ConsoleDecisionHandler() 

60 run_project(pro, handler) 

61 handler.shutdown(True) 

62 else: 

63 print("Invalid arguments") 

64 exit() 

65 

66 

67commandline_interface()