Hello!
I’m trying to set the I_DCPVT_GROUPS_DESIGN command to work correctly, but I don’t know where the error is in the code, what I’m doing wrong, and how I should proceed further to get results from I_DCPVT_GROUPS_DESIGN.
This is my script:
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
from System import Environment
user = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
clr.AddReference(user + r"\Dynamo\Dynamo Revit\3.3\packages\Structural Analysis for Dynamo\bin\interop.RobotOM.dll")
from RobotOM import RobotApplicationClass, IRDimCalcParamVerifType, IRDimCalcParamLimitStateType
clr.AddReference("System.Reflection")
from System.Reflection import BindingFlags
from RobotOM import *
from System import Object
class ComObject:
def __init__(self, obj):
self.obj = obj
self.typ = obj.GetType()
def __getattribute__(self, name):
def newm(*args):
args = args or (None,)
return self.typ.InvokeMember(
name,
BindingFlags.InvokeMethod | BindingFlags.GetProperty,
None,
self.obj,
*args,
)
return newm
objects = IN[0]
app = RobotApplicationClass()
project = app.Project
project.ViewMngr.Refresh()
rdm_server = IRDimServer(app.Kernel.GetExtension("RDimServer"))
rdm_server.Mode = 1
rdm_calc_engine = IRDimCalcEngine(rdm_server.CalculEngine)
calc_param = IRDimCalcParam(rdm_calc_engine.GetCalcParam())
calc_conf = rdm_calc_engine.GetCalcConf()
stream = IRDimStream(rdm_server.Connection.GetStream())
stream.Clear()
stream.WriteLong(1)
calc_param.SetObjsList(IRDimCalcParamVerifType.I_DCPVT_GROUPS_DESIGN,stream)
calc_param.SetLimitState(IRDimCalcParamLimitStateType.I_DCPLST_ULTIMATE,1)
stream.Clear()
stream.WriteText("all")
calc_param.SetLoadsList(stream)
rdm_calc_engine.SetCalcParam(calc_param)
rdm_calc_engine.Solve(None)
all_results = IRDimAllRes(rdm_calc_engine.Results())
grp_results = IRDimGrpResCurrProf(all_results.Get(1, I_DGRCP_GOVERNING))
detailed_results = IRDimDetailedRes(grp_results.Get(1))
case = detailed_results.GovernCaseName
ratio = detailed_results.Ratio
print(ratio)
print(case)
OUT = case, ratio
I get error message in code: object does not implement in line detailed_results