Revit API를 사용하여 ActiveUIDocument를 닫을 수있는 방법이 있습니까? Revit GUI에서 작동하는 ActiveUIDocument를 닫는 별도의 추가 기능을 만들었지 만 Idle 이벤트 핸들러에서 해당 추가 기능을 호출하려고하면 아무 일도 일어나지 않습니다. 도와주세요.Idle 이벤트 핸들러에서 Revit API (2014)를 사용하여 ActiveUIDocument를 닫으십시오.
RevitCommandId id_built_in = RevitCommandId.LookupPostableCommandId(PostableCommand.SheetIssuesOrRevisions);
RevitCommandId addinID = RevitCommandId.LookupCommandId("1869A8A1-A239-41CF-9A79-96234D92DEF4");
app.PostCommand(addinID);
Addinn 매니페스트 파일 : 몇 마지막
<?xml version="1.0"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>AddinExternalLauncher.dll</Assembly>
<ClientId>1869A8A1-A239-41CF-9A79-96234D92DEF4</ClientId>
<FullClassName>AddinExternalLauncher.AddinLauncher</FullClassName>
<Text>Addin External Launcher</Text>
<Description></Description>
<VisibilityMode>AlwaysVisible</VisibilityMode>
<VendorId>ADSK</VendorId>
<VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
</AddIn>
</RevitAddIns>
private void CloseDoc(object obj)
{
SendKeys.SendWait("^{F4}");
}
public Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)
{
Threadpool.QueueUserWorkItem(new WaitCallback(Close));
return Result.Succeeded;
}
코드 공회전 이벤트 핸들러 내에서 추가 기능을 호출하는 데 사용 : 아래
내 추가 기능에 대한 코드입니다 addin 호출 후 저널 출력 라인 :' 1:< total bytes expanded: 35414988
' 1:< ;EES;0;0;86;0;0;0;0;0;14;
' 1:< 0 ModelServerState "Destroyed": Current server = "Not Queried", Model server = "", Model server state = "Not Applicable"
' 1:< System (MB) [Available/Total ] [Revit Memory Usage (MB) ]
' 1:< RAM Statistics: 3385/ 8040 623=InUse 629=Peak
' 1:< VM Statistics: 8384617/8388607 536=InUse 542=Peak
' 1:< ::9:: Delta VM: Avail -13 -> 8384597 MB, Used +28 -> 564 MB, Peak +21 -> 564 MB; RAM: Avail -26 -> 3360 MB, Used +41 -> 664 MB, Peak +36 -> 665 MB
'E 24-Aug-2016 15:02:28.961; 1:<
' [Jrn.File Input Information] COMMON.FILE_INPUT.FILE_TYPE: .rvt 013144064.000000
' 0:< The Idling event callback used 53 seconds
' 3:< ::10:: Delta VM: Avail -20 -> 8384577 MB, Used +6 -> 570 MB, Peak +6 -> 570 MB; RAM: Avail -2 -> 3358 MB, Used +3 -> 667 MB, Peak +1 -> 667 MB
' 0.114085 4:<<From Parking Area: ;PERF;MISC;generating greps
' 0:< ::10:: Delta VM: Avail +5 -> 8384583 MB, Used -13 -> 558 MB; RAM: Avail +2 -> 3361 MB, Used -7 -> 661 MB, Peak +0 -> 668 MB
' 0.372841 1:<<;PERF;MISC;drawing/ALL_GAPS 0.258756/TurnOff_GAPs 74%
'C 24-Aug-2016 15:02:29.386; 0:< idle0_doc
'H 24-Aug-2016 15:02:29.386; 0:<
Jrn.Directive "AllowPressAndDrag" _
, 1
' 0:< <<Begin build CT>>
'
'Edit mode: IDR_COMMON
'Command: ID_BUTTON_SELECT
'Category: 0
'Bar list:
' Dialog_Revit_DynamicLabelDBar
' Dialog_Essentials_FilterSelectionNew
'Presenter list:
' PP_DebugTab_Binding_Demo
'Product: Architecture
'
'
'***********************************************************
'***********************************************************
'<<End build CT>>
정보 주셔서 감사합니다. 유휴 이벤트 핸들러에서 직접 SendKeys를 호출하면 Revit 응용 프로그램이 왜 그 이유인지 알 수 없습니다. – amit