Added support for Powerproject (#1849)

* implemented initial cli and support for resource parsing for ms project

* Added command line interface and resource support for MS Project XML files

* Removed the test code

* Check for output exists before writting the file to avoid failure

* Added support for Asta Powerproject files
This commit is contained in:
HassanEmam
2021-10-31 23:52:43 +00:00
committed by GitHub
parent 208132785f
commit c8eb933453
7 changed files with 318 additions and 7 deletions
@@ -83,6 +83,7 @@ classes = (
operator.GenerateGanttChart,
operator.ImportP6,
operator.ImportP6XER,
operator.ImportPP,
operator.ImportMSP,
operator.LoadTaskProperties,
operator.SelectTaskRelatedProducts,
@@ -126,6 +127,7 @@ classes = (
def menu_func_import(self, context):
self.layout.operator(operator.ImportP6.bl_idname, text="P6 (.xml)")
self.layout.operator(operator.ImportP6XER.bl_idname, text="P6 (.xer)")
self.layout.operator(operator.ImportPP.bl_idname, text="Powerproject (.pp)")
self.layout.operator(operator.ImportMSP.bl_idname, text="Microsoft Project (.xml)")
@@ -1120,6 +1120,27 @@ class ImportP6XER(bpy.types.Operator, ImportHelper):
return {"FINISHED"}
class ImportPP(bpy.types.Operator, ImportHelper):
bl_idname = "import_pp.bim"
bl_label = "Import Powerproject pp"
bl_options = {"REGISTER", "UNDO"}
filename_ext = ".pp"
filter_glob: bpy.props.StringProperty(default="*.pp", options={"HIDDEN"})
def execute(self, context):
from ifc4d.pp2ifc import PP2Ifc
self.file = IfcStore.get_file()
start = time.time()
pp2ifc = PP2Ifc()
pp2ifc.pp = self.filepath
pp2ifc.file = self.file
pp2ifc.work_plan = self.file.by_type("IfcWorkPlan")[0] if self.file.by_type("IfcWorkPlan") else None
pp2ifc.execute()
Data.load(IfcStore.get_file())
print("Import finished in {:.2f} seconds".format(time.time() - start))
return {"FINISHED"}
class ImportMSP(bpy.types.Operator, ImportHelper):
bl_idname = "import_msp.bim"
bl_label = "Import MSP"