Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions RFEM/Reports/partsList.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@

from RFEM.initModel import Model

def GetPartsListAllByMaterial():
'''
Returns Parts List All By Material
'''
try:
return Model.clientModel.service.get_parts_list_all_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_all_by_material()

def GetPartsListMemberRepresentativesByMaterial():
'''
Returns Parts List Member Representatives By Material
'''
try:
return Model.clientModel.service.get_parts_list_member_representatives_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_member_representatives_by_material()

def GetPartsListMemberSetsByMaterial():
'''
Returns Parts List Member Sets By Material
'''
try:
return Model.clientModel.service.get_parts_list_member_sets_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_member_sets_by_material()

def GetPartsListMembersByMaterial():
'''
Returns Parts List Members By Material
'''
try:
return Model.clientModel.service.get_parts_list_members_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_members_by_material()

def GetPartsListSolidsByMaterial():
'''
Returns Parts List Solids By Material
'''
try:
return Model.clientModel.service.get_parts_list_solids_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_solids_by_material()

def GetPartsListSurfacessByMaterial():
'''
Returns Parts List Surfaces By Material
'''
try:
return Model.clientModel.service.get_parts_list_surfaces_by_material()
except:
Model.clientModel.service.generate_parts_lists()
return Model.clientModel.service.get_parts_list_surfaces_by_material()
31 changes: 31 additions & 0 deletions RFEM/Results/designOverview.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from RFEM.initModel import Model

def GetDesignOverview():
'''
Returns whole Design Overview list.
'''
# Return Design Overview
return Model.clientModel.service.get_design_overview()

def GetPartialDesignOverview(comply: bool = False):
"""
Returns part of Design Overview that do(esn't) comply.
If comply == False, function resturns checks with Design Ration > 1
If comply == True, function resturns checks with Design Ration <= 1
"""
designOverview = GetDesignOverview()

designRatioLessThanOne = []
designRationOverOne = []
for do in designOverview[0]:
if round(do['design_ratio'], 5) <= 1.0:
designRatioLessThanOne.append(do)
else:
designRationOverOne.append(do)

if comply:
return designRatioLessThanOne
else:
return designRationOverOne


2 changes: 1 addition & 1 deletion RFEM/Tools/PlausibilityCheck.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from RFEM.initModel import Model
from RFEM.enums import PlausibilityCheckResult

class PlausiblityCheck():
class PlausibilityCheck():

def __init__(self,
skip_warnings:bool = False):
Expand Down
2 changes: 1 addition & 1 deletion RFEM/initModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ class Model():
clientModel = None
def __init__(self,
new_model: bool=True,
model_name: str="MyModel",
model_name: str="TestModel",
delete: bool=False,
delete_all: bool=False):

Expand Down
55 changes: 55 additions & 0 deletions UnitTests/test_DesignOverview.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import sys
import os
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir)
)
sys.path.append(PROJECT_ROOT)

from RFEM.initModel import Model
from RFEM.Results.designOverview import GetDesignOverview, GetPartialDesignOverview
from RFEM.Reports.partsList import GetPartsListAllByMaterial, GetPartsListMemberRepresentativesByMaterial
from RFEM.Reports.partsList import GetPartsListMemberSetsByMaterial, GetPartsListMembersByMaterial
from RFEM.Reports.partsList import GetPartsListSolidsByMaterial, GetPartsListSurfacessByMaterial

if Model.clientModel is None:
Model()

def test_designOverview():

Model.clientModel.service.delete_all()
Model.clientModel.service.run_script('..\\scripts\\internal\\Demos\\Demo-004 Bus Station-Concrete Design.js')
Model.clientModel.service.calculate_all(False)

designOverview = GetDesignOverview()
assert designOverview[0][0]['design_ratio'] == 2.851
assert designOverview[0][0]['design_check_type'] == 'DM0210.00'

partialDesignOverview = GetPartialDesignOverview(False)
assert len(partialDesignOverview) == 18

partialDesignOverview = GetPartialDesignOverview(True)
assert len(partialDesignOverview) == 37

a = GetPartsListAllByMaterial()
assert len(a[0]) == 5
assert a[0][0]['volume'] == a[0][1]['volume']

b = GetPartsListMemberRepresentativesByMaterial()
assert b == ''

c = GetPartsListMemberSetsByMaterial()
assert c == ''

d = GetPartsListMembersByMaterial()
assert len(d[0]) == 5
assert d[0][0]['no'] == 1
assert round(d[0][0]['total_weight']) == 1200
assert round(d[0][-1]['total_weight']) == 2300

e = GetPartsListSolidsByMaterial()
assert e == ''

f = GetPartsListSurfacessByMaterial()
assert len(f[0]) == 6
assert f[0][1]['thickness_name'] == 'Uniform | d : 120.0 mm | 2 - C20/25'
4 changes: 2 additions & 2 deletions UnitTests/test_plausiblityCheck.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from RFEM.BasicObjects.section import Section
from RFEM.BasicObjects.material import Material
from RFEM.initModel import Model
from RFEM.Tools.PlausibilityCheck import PlausiblityCheck
from RFEM.Tools.PlausibilityCheck import PlausibilityCheck

if Model.clientModel is None:
Model()
Expand Down Expand Up @@ -39,7 +39,7 @@ def test_plausibility_check():

Model.clientModel.service.finish_modification()

check = PlausiblityCheck()
check = PlausibilityCheck()
assert check.message == 'Success'
assert check.errormessage == ''
assert check.IsModelOK()
Expand Down