如何将使用“Out”参数的C#方法转换为Python

2024-09-27 00:21:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Revit API,执行这段代码时遇到一些问题。我知道C#中的“out”参数在Python中不受尊重,因此我想问是否有任何方法可以将此方法转换为Python代码,以便执行

我在这里保留指向Revit API文档的链接: https://www.revitapidocs.com/2020/5d34b8dd-9137-da2f-9df7-172304d0cc08.htm

提前谢谢

C版本:

public class FamilyLoadOptions : IFamilyLoadOptions
    {
        public bool OnFamilyFound(bool familyInUse, out bool overwriteParameterValues)
        {
            overwriteParameterValues = true;
            return true;
        }

        public bool OnSharedFamilyFound(Family sharedFamily, bool familyInUse, out FamilySource source, out bool overwriteParameterValues)
        {
            source = FamilySource.Family;
            overwriteParameterValues = true;
            return true;
        }

    }


Family loadedFamily = null;

var success = doc.LoadFamily(localPath, new FamilyLoadOptions(), out loadedFamily);

我的Python版本:

class FamilyLoadOptions(IFamilyLoadOptions):
    def OnFamilyLoad(familyInUse, overwriteParameterValues):
        overwriteParameterValues = True
        return True
    
    def OnsharedFamilyFound(sharedFamily, familyInUse, source, overwriteParameterValues):
        overwriteParameterValues = True
        return True

ref = clr.Reference[Family]()

doc.LoadFamily(familyPath, FamilyLoadOptions(), ref)    

Tags: 方法代码apitruesourcereturnpublicout

热门问题