refactor: observe commands driven by AutoCAD automation script
This commit is contained in:
@@ -10,24 +10,12 @@ namespace PRecAnnot.Plant3D2026;
|
||||
|
||||
public sealed class EntryPoint : IExtensionApplication
|
||||
{
|
||||
private static bool automationQueued;
|
||||
public void Initialize()
|
||||
{
|
||||
RuntimeDiagnostics.Write("AssemblyInitializeStarted");
|
||||
RibbonIntegration.Register();
|
||||
if (string.Equals(Environment.GetEnvironmentVariable("P_REC_ANNOT_AUTOMATION"), "FirstLimitedApplyRuntimeTest", StringComparison.Ordinal) && !automationQueued)
|
||||
{
|
||||
try
|
||||
{
|
||||
automationQueued = true;
|
||||
FirstLimitedApplyAutomationBootstrap.Prepare();
|
||||
RuntimeDiagnostics.Write("AutomationBootstrapPrepared", resultStatus: "Gated");
|
||||
}
|
||||
catch (System.Exception exception)
|
||||
{
|
||||
RuntimeDiagnostics.Write("AutomationBootstrapPreparationFailed", "ERROR", resultStatus: "AUTOMATION_BOOTSTRAP_FAILED", exception: exception);
|
||||
}
|
||||
}
|
||||
// Test automation is driven only by the explicitly generated /b script.
|
||||
// Initialize remains production-equivalent and must not orchestrate commands.
|
||||
RuntimeDiagnostics.Write("AssemblyInitializeCompleted");
|
||||
}
|
||||
|
||||
@@ -56,6 +44,12 @@ public sealed class EntryPoint : IExtensionApplication
|
||||
[CommandMethod("PHP_REC_AUTOMATION_READY")]
|
||||
public void AutomationReadyCommand() { }
|
||||
|
||||
[CommandMethod("PHP_REC_AUTOMATION_PREPARE", CommandFlags.Session)]
|
||||
public void AutomationPrepareCommand() => ScriptDrivenFirstApplyAutomation.Prepare();
|
||||
|
||||
[CommandMethod("PHP_REC_AUTOMATION_FINALIZE", CommandFlags.Session)]
|
||||
public void AutomationFinalizeCommand() => ScriptDrivenFirstApplyAutomation.FinalizePreview();
|
||||
|
||||
private static void RunDiagnostic(string commandName)
|
||||
{
|
||||
var operationId = Guid.NewGuid().ToString("N");
|
||||
@@ -171,6 +165,7 @@ public sealed class EntryPoint : IExtensionApplication
|
||||
var candidates = objectsByViewport.SelectMany(x => x)
|
||||
.Where(x => string.Equals(x.ObjectClass, "Pipe", StringComparison.OrdinalIgnoreCase) && x.MembershipStatus == ViewMembershipStatus.Resolved && x.Geometry.PaperPosition is not null)
|
||||
.Select(x => x.SnapshotId).OrderBy(x => x, StringComparer.Ordinal).ToArray();
|
||||
ScriptDrivenFirstApplyAutomation.RecordPxpOa(planId, candidates, context.Viewports.SingleOrDefault()?.Id, summary.CreateCount, summary.SkipCount, mode == PRecAnnotExecutionMode.Apply ? applyPermit is not null : null, summary.ObjectsExamined, membershipResolved);
|
||||
FirstLimitedApplyAutomationCoordinator.RecordPxpOa(planId, candidates, context.Viewports.SingleOrDefault()?.Id, summary.CreateCount, summary.SkipCount, mode == PRecAnnotExecutionMode.Apply ? applyPermit is not null : null);
|
||||
}
|
||||
if (mode == PRecAnnotExecutionMode.Apply)
|
||||
|
||||
Reference in New Issue
Block a user