Autodesk forge 通过设计自动化进行Dwg比较

Autodesk forge 通过设计自动化进行Dwg比较,autodesk-forge,autodesk-designautomation,Autodesk Forge,Autodesk Designautomation,我想知道是否可能,如果可能,如何通过设计自动化实现dwg比较?有没有办法创建一个在输入中接受2个dwg的比较活动,并将一个布尔值作为输出?是的,您可以创建一个接受两个图形的活动。 下面的活动JSON使用内置的比较并输出结果差异图 示例活动Json { "HostApplication": "", "RequiredEngineVersion": "23.0", "Parameters": { "InputParameters": [

我想知道是否可能,如果可能,如何通过设计自动化实现dwg比较?有没有办法创建一个在输入中接受2个dwg的比较活动,并将一个布尔值作为输出?

是的,您可以创建一个接受两个图形的活动。 下面的活动JSON使用内置的比较并输出结果差异图

示例活动Json

{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.dwg"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "COMPAREINPLACE\nON\n-COMPARE\n\nToCompareWith.dwg\n_SAVEAS\n\noutput.dwg\n"
    },
    "Id": "FPDCompare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens2.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "FPDCompare"
}
{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.txt"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "ISDWGSIMILAR\nToCompareWith.dwg\n"
    },
    "AppPackages":["Compare"],
    "Version": 1,
    "Id": "Compare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "Compare"
}
工作项Json

{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.dwg"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "COMPAREINPLACE\nON\n-COMPARE\n\nToCompareWith.dwg\n_SAVEAS\n\noutput.dwg\n"
    },
    "Id": "FPDCompare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens2.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "FPDCompare"
}
{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.txt"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "ISDWGSIMILAR\nToCompareWith.dwg\n"
    },
    "AppPackages":["Compare"],
    "Version": 1,
    "Id": "Compare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "Compare"
}
如果您使用自己的自定义比较逻辑,则可以输出 将结果转换为txt文件或json文件

活动Json

{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.dwg"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "COMPAREINPLACE\nON\n-COMPARE\n\nToCompareWith.dwg\n_SAVEAS\n\noutput.dwg\n"
    },
    "Id": "FPDCompare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens2.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "FPDCompare"
}
{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.txt"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "ISDWGSIMILAR\nToCompareWith.dwg\n"
    },
    "AppPackages":["Compare"],
    "Version": 1,
    "Id": "Compare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "Compare"
}
工作项Json

{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.dwg"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "COMPAREINPLACE\nON\n-COMPARE\n\nToCompareWith.dwg\n_SAVEAS\n\noutput.dwg\n"
    },
    "Id": "FPDCompare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource": "https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens2.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "FPDCompare"
}
{
    "HostApplication": "",
    "RequiredEngineVersion": "23.0",
    "Parameters": {
        "InputParameters": [
            {
                "Name": "HostDwg",
                "LocalFileName": "$(HostDwg)"
            },
            {
                "Name": "ToCompareWith",
                "LocalFileName": "ToCompareWith.dwg"
            }
        ],
        "OutputParameters": [
            {
                "Name": "Result",
                "LocalFileName": "output.txt"
            }
        ]
    },
    "Instruction": {
        "CommandLineParameters": null,
        "Script": "ISDWGSIMILAR\nToCompareWith.dwg\n"
    },
    "AppPackages":["Compare"],
    "Version": 1,
    "Id": "Compare"
}
{
    "Arguments": {
        "InputArguments": [
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens.dwg",
                "Name": "HostDwg"
            },
            {
                "Resource":"https://madhukar-fda.s3.us-west-2.amazonaws.com/Kitchens1.dwg",
                "Name": "ToCompareWith"
            }
        ],
        "OutputArguments": [
            {
                "Name": "Result",
                "HttpVerb": "POST"
            }
        ]
    },
    "ActivityId": "Compare"
}
注意:在脚本参数中,“isdwgsimilor”是一个自定义命令,您将在其中处理两个图形,第一个图形是当前图形,第二个图形是您愿意与之进行比较的图形[ToCompare]

自定义网络命令

    [CommandMethod("FDACOMMANDS", "ISDWGSIMILAR", CommandFlags.Transparent)]
    public static void CompareDrawing()
    {
        var doc = Application.DocumentManager.MdiActiveDocument;
        var db = doc.Database;
        var ed = doc.Editor;
        var promptResult = ed.GetString("Select Drawing To Compare With");
        if (promptResult.Status != PromptStatus.OK) return;
        var drawingToCompareWith = promptResult.StringResult;
        ed = Application.DocumentManager.MdiActiveDocument.Editor;
        using (OpenCloseTransaction o = new OpenCloseTransaction())
        {
           /*

           {

           Here your logic code to compare two drawings

           }

           */

            /*output.txt / json is pushed to your cloud storage as provided in workitem json*/
            using (var writer = File.CreateText("output.txt"))
            {
                if (b != null) /*b value is result of your compare*/
                {
                    writer.WriteLine("TRUE Drawings are same");
                }
                else writer.WriteLine("FALSE Drawings aren't same");
            }
        }
    }

通常,设计自动化只适用于不需要与UI交互的功能。我不确定DWG的核心工作流是否可以比较。请接受我与工程师团队的检查。我们与工程师团队进行了一些讨论。虽然我们可以运行内置命令[-COMPARE],但该命令会创建一个新的diff图形(就地绘图),因此切换文档是在新的就地`diff绘图上运行命令的主要问题。我们正在与工程师团队进一步检查是否有可能调用COMPARE命令的核心逻辑,获取比较结果,而不是执行命令。将使您保持更新。我将不使用内置命令,但一个与应用程序包一起上传的特定应用程序包。但我想知道如何指定一个活动和一个应用程序包,该活动和应用程序包将在输入中接受2个dwg并发布一个布尔值(可能是json?)在输出中。抱歉,我仍在与工程师团队讨论。我得到了一些信息,但没有得到可以与您共享的最终评论。将让您不断更新。最后,我们现在得到了工作脚本。我的同事Madhukar已经过测试。他将很快发布答案。