from typing import Tuple, Set, Iterable, List


class TabbedDialogAction:
    def __init__(self, A_0: Object, A_1: IntPtr): ...
    def Invoke(self) -> None: ...
    def BeginInvoke(self, callback: AsyncCallback, obj: Object) -> IAsyncResult: ...
    def EndInvoke(self, result: IAsyncResult) -> None: ...


class TabbedDialogExtension:
    def __init__(self, userControl: UserControl, onOK: TabbedDialogAction): ...
    @property
    def Control(self) -> UserControl: ...
    @property
    def OnOKAction(self) -> TabbedDialogAction: ...
    @property
    def OnCancelAction(self) -> TabbedDialogAction: ...
    @OnCancelAction.setter
    def OnCancelAction(self, action: TabbedDialogAction) -> None: ...
    @property
    def OnRestoreDefaultsAction(self) -> TabbedDialogAction: ...
    @OnRestoreDefaultsAction.setter
    def OnRestoreDefaultsAction(self, action: TabbedDialogAction) -> None: ...
    def GetContextualHelp(self) -> ContextualHelp: ...
    def SetContextualHelp(self, contextualHelp: ContextualHelp) -> None: ...


class IDropHandler:
    def Execute(self, document: UIDocument, data: Object) -> None: ...


class IControllableDropHandler:
    def CanExecute(self, document: UIDocument, data: Object, dropViewId: ElementId) -> bool: ...


class RibbonPanel:
    @property
    def Name(self) -> str: ...
    @Name.setter
    def Name(self, pName: str) -> None: ...
    @property
    def Title(self) -> str: ...
    @Title.setter
    def Title(self, pTitle: str) -> None: ...
    @property
    def Visible(self) -> bool: ...
    @Visible.setter
    def Visible(self, bVisible: bool) -> None: ...
    @property
    def Enabled(self) -> bool: ...
    @Enabled.setter
    def Enabled(self, bEnabled: bool) -> None: ...
    def GetItems(self) -> List[RibbonItem]: ...
    def AddSeparator(self) -> None: ...
    def AddItem(self, itemData: RibbonItemData) -> RibbonItem: ...
    @overload
    def AddStackedItems(self, item1: RibbonItemData, item2: RibbonItemData, item3: RibbonItemData) -> List[RibbonItem]: ...
    @overload
    def AddStackedItems(self, item1: RibbonItemData, item2: RibbonItemData) -> List[RibbonItem]: ...
    def AddSlideOut(self) -> None: ...
    def Equals(self, obj: Object) -> bool: ...


class UIDocument:
    def __init__(self, document: Document): ...
    def GetRevitUIFamilyLoadOptions() -> IFamilyLoadOptions: ...
    @property
    def Selection(self) -> Selection: ...
    def SaveAndClose(self) -> bool: ...
    @overload
    def ShowElements(self, elementIds: ICollection) -> None: ...
    @overload
    def ShowElements(self, elements: ElementSet) -> None: ...
    @overload
    def ShowElements(self, element: Element) -> None: ...
    @overload
    def ShowElements(self, elementId: ElementId) -> None: ...
    def RefreshActiveView(self) -> None: ...
    @property
    def ActiveView(self) -> View: ...
    @ActiveView.setter
    def ActiveView(self, view: View) -> None: ...
    @property
    def Document(self) -> Document: ...
    def RequestViewChange(self, view: View) -> None: ...
    @overload
    def PromptForFamilyInstancePlacement(self, familySymbol: FamilySymbol, options: PromptForFamilyInstancePlacementOptions) -> None: ...
    @overload
    def PromptForFamilyInstancePlacement(self, familySymbol: FamilySymbol) -> None: ...
    @property
    def Application(self) -> UIApplication: ...
    def GetOpenUIViews(self) -> List[UIView]: ...
    @property
    def ActiveGraphicalView(self) -> View: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetSketchGalleryOptions(self, familySymbol: FamilySymbol) -> List[SketchGalleryOptions]: ...
    def PromptToPlaceViewOnSheet(self, view: View, allowReplaceExistingSheetViewport: bool) -> None: ...
    def PostRequestForElementTypePlacement(self, elementType: ElementType) -> None: ...
    def PromptToPlaceElementTypeOnLegendView(self, elementType: ElementType) -> None: ...
    def PromptToMatchElementType(self, elementType: ElementType) -> None: ...
    def CanPlaceElementType(self, elementType: ElementType) -> bool: ...
    @overload
    def SaveAs(self, options: UISaveAsOptions) -> None: ...
    @overload
    def SaveAs(self) -> None: ...
    def GetPlacementTypes(self, familySymbol: FamilySymbol, pDBView: View) -> List[FaceBasedPlacementType]: ...
    def UpdateAllOpenViews(self) -> None: ...
    def Dispose(self) -> None: ...


class ExternalCommandData(APIObject):
    @property
    def Application(self) -> UIApplication: ...
    @Application.setter
    def Application(self, application: UIApplication) -> None: ...
    @property
    def View(self) -> View: ...
    @View.setter
    def View(self, view: View) -> None: ...
    @property
    def JournalData(self) -> IDictionary: ...
    @JournalData.setter
    def JournalData(self, data: IDictionary) -> None: ...


class DockablePaneState:
    @overload
    def __init__(self, other: DockablePaneState): ...
    @overload
    def __init__(self): ...
    @property
    def DockPosition(self) -> DockPosition: ...
    @DockPosition.setter
    def DockPosition(self, dockPosition: DockPosition) -> None: ...
    @property
    def FloatingRectangle(self) -> Rectangle: ...
    @property
    def TabBehind(self) -> DockablePaneId: ...
    @TabBehind.setter
    def TabBehind(self, tabBehind: DockablePaneId) -> None: ...
    @property
    def MinimumWidth(self) -> int: ...
    @MinimumWidth.setter
    def MinimumWidth(self, minimumWidth: int) -> None: ...
    @property
    def MinimumHeight(self) -> int: ...
    @MinimumHeight.setter
    def MinimumHeight(self, minimumHeight: int) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def SetFloatingRectangle(self, rect: Rectangle) -> None: ...
    def Dispose(self) -> None: ...


class DockablePane:
    @overload
    def __init__(self, other: DockablePane): ...
    @overload
    def __init__(self, id: DockablePaneId): ...
    @property
    def Id(self) -> DockablePaneId: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetTitle(self) -> str: ...
    def Show(self) -> None: ...
    def Hide(self) -> None: ...
    def IsShown(self) -> bool: ...
    def PaneIsBuiltIn(id: DockablePaneId) -> bool: ...
    def PaneIsRegistered(id: DockablePaneId) -> bool: ...
    def PaneExists(id: DockablePaneId) -> bool: ...
    def Dispose(self) -> None: ...


class IFrameworkElementCreator:
    def CreateFrameworkElement(self) -> FrameworkElement: ...


class EditorInteraction:
    @overload
    def __init__(self, interactionType: EditorInteractionType): ...
    @overload
    def __init__(self): ...
    @property
    def InteractionType(self) -> EditorInteractionType: ...
    @InteractionType.setter
    def InteractionType(self, interactionType: EditorInteractionType) -> None: ...


class DockablePaneProviderData:
    def __init__(self): ...
    def GetFrameworkElement(self) -> FrameworkElement: ...
    @property
    def FrameworkElement(self) -> FrameworkElement: ...
    @FrameworkElement.setter
    def FrameworkElement(self, elem: FrameworkElement) -> None: ...
    @property
    def FrameworkElementCreator(self) -> IFrameworkElementCreator: ...
    @FrameworkElementCreator.setter
    def FrameworkElementCreator(self, elemCreator: IFrameworkElementCreator) -> None: ...
    @property
    def InitialState(self) -> DockablePaneState: ...
    @InitialState.setter
    def InitialState(self, state: DockablePaneState) -> None: ...
    @property
    def ContextualHelp(self) -> ContextualHelp: ...
    @ContextualHelp.setter
    def ContextualHelp(self, help: ContextualHelp) -> None: ...
    @property
    def EditorInteraction(self) -> EditorInteraction: ...
    @EditorInteraction.setter
    def EditorInteraction(self, interaction: EditorInteraction) -> None: ...
    @property
    def VisibleByDefault(self) -> bool: ...
    @VisibleByDefault.setter
    def VisibleByDefault(self, visibleByDefault: bool) -> None: ...


class IDockablePaneProvider:
    def SetupDockablePane(self, data: DockablePaneProviderData) -> None: ...


class UIApplication:
    def __init__(self, revitApp: Application): ...
    @property
    def ActiveUIDocument(self) -> UIDocument: ...
    @property
    def MainWindowExtents(self) -> Rectangle: ...
    @property
    def DrawingAreaExtents(self) -> Rectangle: ...
    @overload
    def DoDragDrop(dropData: Object, handler: IDropHandler) -> None: ...
    @overload
    def DoDragDrop(dropData: ICollection) -> None: ...
    def CanPostCommand(self, commandId: RevitCommandId) -> bool: ...
    def PostCommand(self, commandId: RevitCommandId) -> None: ...
    def CreateRibbonTab(self, tabName: str) -> None: ...
    @overload
    def CreateRibbonPanel(self, tab: Tab, panelName: str) -> RibbonPanel: ...
    @overload
    def CreateRibbonPanel(self, panelName: str) -> RibbonPanel: ...
    @overload
    def CreateRibbonPanel(self, tabName: str, panelName: str) -> RibbonPanel: ...
    @overload
    def GetRibbonPanels(self, tabName: str) -> List: ...
    @overload
    def GetRibbonPanels(self, tab: Tab) -> List: ...
    @overload
    def GetRibbonPanels(self) -> List: ...
    @property
    def LoadedApplications(self) -> ExternalApplicationArray: ...
    @property
    def ActiveAddInId(self) -> AddInId: ...
    def CreateAddInCommandBinding(self, revitCommandId: RevitCommandId) -> AddInCommandBinding: ...
    def RemoveAddInCommandBinding(self, revitCommandId: RevitCommandId) -> None: ...
    def LoadAddIn(self, fileName: str) -> None: ...
    def LoadPackageContents(self, packageContentsPath: str) -> None: ...
    def GetDockablePane(self, id: DockablePaneId) -> DockablePane: ...
    @property
    def ProductIsRS(self) -> bool: ...
    def RegisterDockablePane(self, id: DockablePaneId, title: str, provider: IDockablePaneProvider) -> None: ...
    @property
    def MainWindowHandle(self) -> IntPtr: ...
    @property
    def Application(self) -> Application: ...
    @property
    def IsViewerModeActive(self) -> bool: ...
    @property
    def IsValidObject(self) -> bool: ...
    @overload
    def OpenAndActivateDocument(self, modelPath: ModelPath, openOptions: OpenOptions, detachAndPrompt: bool, openFromCloudCallback: IOpenFromCloudCallback) -> UIDocument: ...
    @overload
    def OpenAndActivateDocument(self, modelPath: ModelPath, openOptions: OpenOptions, detachAndPrompt: bool) -> UIDocument: ...
    @overload
    def OpenAndActivateDocument(self, fileName: str) -> UIDocument: ...
    def add_ViewActivating(self, handler: EventHandler) -> None: ...
    def remove_ViewActivating(self, handler: EventHandler) -> None: ...
    def add_ViewActivated(self, handler: EventHandler) -> None: ...
    def remove_ViewActivated(self, handler: EventHandler) -> None: ...
    def add_DialogBoxShowing(self, handler: EventHandler) -> None: ...
    def remove_DialogBoxShowing(self, handler: EventHandler) -> None: ...
    def add_FormulaEditing(self, handler: EventHandler) -> None: ...
    def remove_FormulaEditing(self, handler: EventHandler) -> None: ...
    def add_Idling(self, handler: EventHandler) -> None: ...
    def remove_Idling(self, handler: EventHandler) -> None: ...
    def add_ApplicationClosing(self, handler: EventHandler) -> None: ...
    def remove_ApplicationClosing(self, handler: EventHandler) -> None: ...
    def add_DisplayingOptionsDialog(self, handler: EventHandler) -> None: ...
    def remove_DisplayingOptionsDialog(self, handler: EventHandler) -> None: ...
    def add_DockableFrameVisibilityChanged(self, handler: EventHandler) -> None: ...
    def remove_DockableFrameVisibilityChanged(self, handler: EventHandler) -> None: ...
    def add_DockableFrameFocusChanged(self, handler: EventHandler) -> None: ...
    def remove_DockableFrameFocusChanged(self, handler: EventHandler) -> None: ...
    def add_FabricationPartBrowserChanged(self, handler: EventHandler) -> None: ...
    def remove_FabricationPartBrowserChanged(self, handler: EventHandler) -> None: ...
    def add_TransferringProjectStandards(self, handler: EventHandler) -> None: ...
    def remove_TransferringProjectStandards(self, handler: EventHandler) -> None: ...
    def add_TransferredProjectStandards(self, handler: EventHandler) -> None: ...
    def remove_TransferredProjectStandards(self, handler: EventHandler) -> None: ...
    def Dispose(self) -> None: ...


class Tab:
    AddIns = 0
    Analyze = 1


class FaceBasedPlacementType:
    Default = 0
    PlaceOnVerticalFace = 1
    PlaceOnFace = 2
    PlaceOnWorkPlane = 3


class SketchGalleryOptions:
    SGO_Default = 0
    SGO_Line = 1
    SGO_Rect = 2
    SGO_InscribedPolygon = 3
    SGO_CircumscribedPolygon = 4
    SGO_Circle = 5
    SGO_Arc3Point = 6
    SGO_ArcCenterEnds = 7
    SGO_ArcTanEnd = 8
    SGO_ArcFillet = 9
    SGO_Spline = 10
    SGO_SplineByPoints = 11
    SGO_FullEllipse = 12
    SGO_PartialEllipse = 13
    SGO_PickLines = 14
    SGO_PickFaces = 15
    SGO_PickWalls = 16
    SGO_PickSupports = 17
    SGO_PickRoofs = 18
    SGO_Point = 19
    SGO_PickPoints = 20
    SGO_PointElement = 21
    SGO_RunLine = 22
    SGO_RunArcFullStep = 23
    SGO_RunArcCenterEnds = 24
    SGO_LandingSquare = 25
    SGO_WinderLShape = 26
    SGO_WinderPattern = 27
    SGO_SupportPickLine = 28
    SGO_WinderUShape = 29
    SGO_LandingWithTwoRuns = 30
    SGO_SketchRun = 31
    SGO_SketchLanding = 32


class EditorInteractionType:
    Dismiss = 0
    KeepAlive = 1


class DockPosition:
    Top = 59419
    Left = 59420
    Right = 59421
    Bottom = 59422
    Floating = 59423
    Tabbed = 59424


class IExternalEventHandler:
    def Execute(self, app: UIApplication) -> None: ...
    def GetName(self) -> str: ...


class ExternalEvent:
    @property
    def IsPending(self) -> bool: ...
    def Create(handler: IExternalEventHandler) -> ExternalEvent: ...
    def CreateJournalable(handler: IExternalEventHandler) -> ExternalEvent: ...
    def Raise(self) -> ExternalEventRequest: ...
    def Dispose(self) -> None: ...


class ExternalEventRequest:
    Accepted = 0
    Pending = 1
    Denied = 2
    TimedOut = 3


class RevitCommandId:
    def LookupPostableCommandId(postableCommand: PostableCommand) -> RevitCommandId: ...
    @property
    def Name(self) -> str: ...
    @property
    def Id(self) -> UInt32: ...
    @property
    def CanHaveBinding(self) -> bool: ...
    @property
    def HasBinding(self) -> bool: ...
    @property
    def IsValidObject(self) -> bool: ...
    def LookupCommandId(name: str) -> RevitCommandId: ...
    def Dispose(self) -> None: ...


class PostableCommand:
    RoofByFace = 20
    Soffit = 493
    RepeatComponent = 840
    ViewList = 1075
    LinearDimensionTypes = 1081
    AngularDimensionTypes = 1082
    SplitElement = 1100
    SpotElevation = 1109
    SpotCoordinate = 1114
    RoofByFootprint = 1142
    RoofByExtrusion = 1143
    RadialDimensionTypes = 1199
    ReloadLatest = 1729
    Render = 1782
    ShowHistory = 1985
    SplitSurface = 1992
    DrawOnFace = 2706
    DrawOnWorkPlane = 2707
    GrayInactiveWorksets = 2765
    ImportGBXML = 3102
    ExportReportsRoomOrAreaReport = 3125
    SheetIssuesOrRevisions = 3153
    RevisionSchedule = 3154
    CalloutTags = 3167
    ElevationTags = 3168
    SectionTags = 3169
    FloorByFaceFloor = 3234
    HideCategory = 3240
    RunInterferenceCheck = 3259
    SpecifyCoordinatesAtPoint = 3266
    ExportIFC = 3278
    SystemBrowser = 3280
    PublishDWGToAutodeskBuzzsaw = 3283
    PublishDWFToAutodeskBuzzsaw = 3284
    PublishDXFToAutodeskBuzzsaw = 3285
    PublishDGNToAutodeskBuzzsaw = 3287
    ResetAnalyticalModel = 3288
    PublishSATToAutodeskBuzzsaw = 3289
    ExportOptionsIFCOptions = 3292
    TypeProperties = 3302
    ExportDWFOrDWFx = 3341
    ExportCADFormatsDWG = 3342
    ExportCADFormatsDXF = 3343
    ExportCADFormatsDGN = 3344
    ExportCADFormatsACIS_SAT = 3345
    ExportCADFormatsSTL = 3346
    RelinquishAllMine = 3363
    MaterialTakeoff = 3388
    DWFMarkup = 3401
    ImportTypes = 3404
    ExportExportTypes = 3405
    CheckMemberSupports = 3410
    AnalyticalConsistencyChecks = 3411
    KeynoteLegend = 3449
    KeynotingSettings = 3450
    OpenBuildingComponent = 3470
    Web = 3619
    TopChord = 3620
    BottomChord = 3621
    TogglePropertiesPalette = 4534
    StatusBarWorksets = 4609
    StatusBarDesignOptions = 4610
    ReinforcementNumbers = 4700
    FamilyCategoryAndParameters = 10133
    ExportImagesandAnimationsWalkthrough = 12059
    ExportImagesandAnimationsSolarStudy = 12075
    SunSettings = 12299
    Grid = 32770
    ArchitecturalWall = 32771
    Door = 32772
    Window = 32773
    Delete = 32778
    Space = 32784
    SpaceTag = 32785
    SpaceSeparator = 32786
    Level = 32794
    FramingElevation = 32814
    ArchitecturalFloor = 32914
    Stair = 32916
    ArchitecturalColumn = 32918
    MirrorProject = 32919
    RotateProjectNorth = 32920
    Rotate = 32934
    MirrorPickAxis = 32936
    LineWeights = 32946
    ObjectStyles = 32947
    AnalysisDisplayStyles = 32948
    Snaps = 32949
    ProjectUnits = 32950
    StructuralPlan = 32952
    FloorPlan = 32953
    Section = 32955
    Camera = 32956
    ProjectBrowser = 32957
    NewSheet = 32958
    ImportCAD = 32959
    LinkCAD = 32961
    PointCloud = 32963
    NewFamilyFile = 32983
    LoadShapes = 32984
    NewConceptualMass = 32986
    Pin = 32997
    Unpin = 33001
    SolidExtrusion = 33002
    PlaceAComponent = 33003
    ModelLine = 33006
    StairPath = 33010
    ReferencePlane = 33026
    Redo = 33031
    Undo = 33032
    Control = 33034
    Filters = 33099
    TemporaryDimensions = 33100
    LinePatterns = 33120
    Array = 33121
    Move = 33127
    Copy = 33129
    PlaceView = 33132
    Text = 33134
    NewTitleBlock = 33140
    AutomaticCeiling = 33158
    FillPatterns = 33163
    Default3DView = 33169
    Label = 33174
    VisibilityOrGraphics = 33175
    ViewRange = 33176
    Opening = 33177
    NewRevitFile = 33179
    ActivateView = 33181
    Materials = 33184
    DeactivateView = 33185
    MaterialAssets = 33186
    DecalTypes = 33188
    Options = 33195
    Room = 33198
    CurtainGrid = 33199
    CurtainWallMullion = 33200
    FamilyTypes = 33203
    FilledRegion = 33204
    RoomTag = 33208
    Align = 33218
    Symbol = 33221
    DuplicateView = 33245
    ExportOptionsExportSetupsDGN = 33248
    ExportOptionsExportSetupsDWGOrDXF = 33251
    ColorFillLegend = 33252
    BuildingElevation = 33255
    JoinOrUnjoinRoof = 33277
    SolidBlend = 33278
    ManageLinks = 33279
    SolidRevolve = 33287
    ScheduleOrQuantities = 33296
    Callout = 33298
    SolidSweep = 33300
    CreateGroup = 33305
    Ramp = 33316
    RoomSeparator = 33318
    AlignedToCurrentView = 33320
    AlignedToPickedLevel = 33321
    WallJoins = 33323
    StartingView = 33327
    AlignedToSelectedLevels = 33328
    TagByCategory = 33329
    AlignedToSelectedViews = 33332
    LoadedTagsAndSymbols = 33338
    NewAnnotationSymbol = 33339
    AlignedToSamePlace = 33341
    SpotSlopeTypes = 33348
    Arrowheads = 33349
    SpotElevationTypes = 33350
    SpotCoordinateTypes = 33351
    ReviewWarnings = 33352
    LineStyles = 33360
    ReflectedCeilingPlan = 33380
    DetailLevel = 33384
    VoidExtrusion = 33397
    VoidBlend = 33398
    VoidRevolve = 33399
    VoidSweep = 33400
    CutGeometry = 33407
    UncutGeometry = 33408
    PlaceDetailGroup = 33421
    OverrideByCategory = 33422
    DetailComponent = 33424
    DetailLine = 33425
    Insulation = 33432
    CreateSimilar = 33441
    Worksets = 33460
    Phases = 33472
    PropertyLine = 33480
    BuildingPad = 33481
    MatchTypeProperties = 33513
    ScopeBox = 33519
    Linework = 33520
    SetWorkPlane = 33527
    DraftingView = 33530
    Legend = 33531
    Demolish = 33534
    RevisionCloud = 33540
    SynchronizeAndModifySettings = 33542
    ProjectInformation = 33543
    ModelInPlace = 33544
    SheetList = 33631
    AreaPlan = 33638
    GradedRegion = 33640
    Toposurface = 33641
    ManageImages = 33648
    ApplyTemplatePropertiesToCurrentView = 33651
    RevealWall = 33654
    SweepWall = 33655
    Paint = 33656
    RemovePaint = 33657
    NoteBlock = 33659
    ModelText = 33660
    ShowHiddenLinesByElement = 33671
    RemoveHiddenLinesByElement = 33673
    ManageViewTemplates = 33683
    CreateTemplateFromCurrentView = 33684
    RestoreBackup = 33690
    ExportODBCDatabase = 33693
    LoadAsGroup = 33695
    SaveAsLibraryGroup = 33696
    ParkingComponent = 33698
    TransferProjectStandards = 33699
    SymbolicLine = 33700
    CutProfile = 33709
    ExportReportsSchedule = 33710
    CloseInactiveViews = 33712
    AreaTag = 33718
    AreaBoundary = 33719
    Area = 33720
    JoinGeometry = 33729
    UnjoinGeometry = 33730
    SwitchJoinOrder = 33731
    TagAllNotTagged = 33735
    MergeSurfaces = 33742
    SharedParameters = 33748
    LegendComponent = 33751
    Offset = 33757
    PurgeUnused = 33780
    PlaceDecal = 33789
    RebarLine = 33810
    LabelContours = 33820
    SplitWithGap = 33829
    ThinLines = 33834
    LinkRevit = 33836
    ExportImagesandAnimationsImage = 33838
    ProjectParameters = 33855
    RelocateProject = 33856
    RotateTrueNorth = 33857
    DuplicateWithDetailing = 33858
    Location = 33862
    AcquireCoordinates = 33863
    ReportSharedCoordinates = 33865
    IdsOfSelection = 33866
    SelectById = 33867
    PublishCoordinates = 33869
    PlanRegion = 33900
    BrowserOrganization = 33904
    Matchline = 33905
    ViewReference = 33906
    DesignOptions = 33907
    AddToSet = 33908
    PickToEdit = 33910
    EditingRequests = 33911
    SaveAsLibraryFamily = 33923
    Subregion = 34964
    Railing = 34969
    Beam = 34972
    Brace = 34973
    StructuralColumn = 34974
    StructuralWall = 34975
    SpanDirectionSymbol = 34980
    StructuralFloor = 34985
    Scale = 34986
    Loads = 34987
    StructuralSettings = 34993
    ReferenceLine = 34994
    RebarCoverSettings = 35003
    ShowMassFormAndFloors = 35060
    CurtainSystemByFace = 35072
    WallByFaceWall = 35074
    ShowMassByViewSettings = 35075
    ShowMassSurfaceTypes = 35078
    ShowMassZonesAndShades = 35079
    StructuralRebar = 35098
    UseCurrentProject = 35110
    SelectLink = 35111
    Wall = 35113
    Isolated = 35114
    MaterialTag = 35145
    CoordinationSettings = 35149
    Slab = 35156
    ElementKeynote = 35158
    MaterialKeynote = 35159
    UserKeynote = 35160
    LoadSelection = 35180
    SaveSelection = 35181
    EditSelection = 35183
    MultiCategoryTag = 35203
    BoundaryConditions = 35223
    StructuralPathReinforcement = 35225
    PathReinforcementSymbol = 35228
    OpeningByFace = 35253
    VerticalOpening = 35254
    DormerOpening = 35255
    WallOpening = 35256
    ShaftOpening = 35257
    SpotSlope = 35259
    HideElements = 35261
    OverrideByElement = 35265
    OverrideByFilter = 35266
    DuplicateAsDependent = 35280
    MaskingRegion = 35287
    MajorSegment = 35293
    ReinforcementSettings = 35300
    ExportFBX = 35350
    RecentFiles = 35364
    OpenFamilyFile = 35365
    CreateParts = 35425
    ViewCube = 35458
    BeamAnnotations = 35585
    AllowableBarTypes = 35599
    MacroManager = 35602
    MacroSecurity = 35603
    NavigationBar = 35631
    ExportBuildingSite = 35674
    FormWorkPlaneView = 35703
    ReconcileHosting = 35708
    SplitFace = 35732
    AdjustAnalyticalModel = 35739
    DiameterDimension = 35778
    DiameterDimensionTypes = 35779
    StructuralFabricArea = 35781
    FabricReinforcementSymbol = 35793
    PlaceOnHost = 35807
    DuctPressureLossReport = 35811
    PipePressureLossReport = 35812
    OpenSampleFiles = 35815
    SingleFabricSheetPlacement = 35823
    AlignedMultiRebarAnnotation = 35831
    LinearMultiRebarAnnotation = 35832
    FabricationSettings = 35839
    LinkIFC = 35853
    SelectionBox = 35857
    DuctAccessory = 37004
    AirTerminal = 37005
    Duct = 37006
    MechanicalEquipment = 37008
    DuctFitting = 37009
    FlexDuct = 37010
    ConvertToFlexDuct = 37014
    DuctLegend = 37027
    PanelSchedules = 37053
    ElectricalSettings = 37054
    LoadClassifications = 37055
    LightingFixture = 37059
    ElectricalEquipment = 37060
    ElectricalFixture = 37061
    CheckCircuits = 37062
    DemandFactors = 37068
    Pipe = 37100
    FlexPipe = 37102
    PipeFitting = 37103
    PipeAccessory = 37105
    ArcWire = 37106
    PipeLegend = 37149
    CheckPipeSystems = 37155
    CheckDuctSystems = 37167
    MechanicalSettings = 37168
    PlumbingFixture = 37203
    HeatingAndCoolingLoads = 37204
    Sprinkler = 37206
    ElectricalConnector = 37217
    DuctConnector = 37218
    PipeConnector = 37219
    Zone = 37244
    BuildingOrSpaceTypeSettings = 37259
    ChamferedWire = 37260
    SplineWire = 37261
    Communication = 37278
    Data = 37279
    FireAlarm = 37280
    Lighting = 37281
    NurseCall = 37282
    Security = 37283
    Telephone = 37284
    CableTrayConnector = 37291
    ConduitConnector = 37292
    CableTrayFitting = 37295
    ConduitFitting = 37296
    CableTray = 37297
    Conduit = 37298
    ManageTemplates = 37314
    EditATemplate = 37315
    ParallelConduits = 37361
    DuctPlaceholder = 37427
    PipePlaceholder = 37428
    ParallelPipes = 37441
    ShowDisconnects = 37444
    SiteComponent = 40239
    AreaAndVolumeComputations = 40382
    ShowWorkPlane = 40484
    Fascia = 40601
    Gutter = 40602
    SlabEdgeFloor = 40603
    CheckSpelling = 40986
    RepeatingDetailComponent = 42058
    InsertViewsFromFile = 42309
    Insert2DElementsFromFile = 42310
    SaveAsLibraryView = 42312
    AutomaticBeamSystem = 42398
    PlaceMass = 42644
    InPlaceMass = 42645
    SynchronizeNow = 42654
    ExportGBXML = 42672
    StructuralTrusses = 43213
    ShowLastReport = 46061
    GraphicalColumnSchedule = 46139
    ApplyCoping = 46450
    RemoveCoping = 46451
    BeamSystemSymbol = 46567
    StructuralAreaReinforcement = 46932
    AreaReinforcementSymbol = 46959
    SolidSweptBlend = 47163
    VoidSweptBlend = 47164
    EditRebarCover = 48583
    ColorSchemes = 48739
    TrimOrExtendToCorner = 48952
    TrimOrExtendSingleElement = 48953
    TrimOrExtendMultipleElements = 48954
    AlignedDimension = 48955
    LinearDimension = 48956
    AngularDimension = 48957
    RadialDimension = 48958
    ArcLengthDimension = 48959
    MeasureBetweenTwoReferences = 48962
    MeasureAlongAnElement = 48963
    MirrorDrawAxis = 49000
    KeyboardShortcuts = 49211
    BeamOrColumnJoins = 49543
    SaveAsTemplate = 49783
    HalftoneOrUnderlay = 49786
    StairBySketch = 50126
    LoadCases = 53531
    LoadCombinations = 53532
    FindOrReplace = 53591
    EnergySettings = 53612
    RunEnergySimulation = 53613
    ResultsAndCompare = 53614
    ExportMassModelGBXML = 53615
    GuideGrid = 53675
    CreateAssembly = 53677
    StairTreadOrRiserNumber = 53827
    ManageConnectionToARevitServerAccelerator = 53949
    RenderInCloud = 53961
    RenderGallery = 53962
    ShowEnergyModel = 53964
    DisplaceElements = 54029
    AssemblyCode = 54096
    FabricationPart = 54149
    Playlist = 57282
    OpenRevitFile = 57601
    Close = 57602
    Save = 57603
    SaveAsProject = 57604
    PrintSetup = 57606
    Print = 57607
    PrintPreview = 57609
    ModelBrowserContainer = 57612
    CopyToClipboard = 57634
    CutToClipboard = 57635
    PasteFromClipboard = 57637
    TabViews = 57650
    TileViews = 57652
    ExitRevit = 57665
    StatusBar = 59393


class UIControlledApplication:
    @property
    def ControlledApplication(self) -> ControlledApplication: ...
    @property
    def IsLateAddinLoading(self) -> bool: ...
    @property
    def IsViewerModeActive(self) -> bool: ...
    def CreateRibbonTab(self, tabName: str) -> None: ...
    @overload
    def CreateRibbonPanel(self, tab: Tab, panelName: str) -> RibbonPanel: ...
    @overload
    def CreateRibbonPanel(self, panelName: str) -> RibbonPanel: ...
    @overload
    def CreateRibbonPanel(self, tabName: str, panelName: str) -> RibbonPanel: ...
    @overload
    def GetRibbonPanels(self, tabName: str) -> List: ...
    @overload
    def GetRibbonPanels(self, tab: Tab) -> List: ...
    @overload
    def GetRibbonPanels(self) -> List: ...
    @property
    def LoadedApplications(self) -> ExternalApplicationArray: ...
    @property
    def ActiveAddInId(self) -> AddInId: ...
    def CreateAddInCommandBinding(self, revitCommandId: RevitCommandId) -> AddInCommandBinding: ...
    def RemoveAddInCommandBinding(self, revitCommandId: RevitCommandId) -> None: ...
    def LoadAddIn(self, fileName: str) -> None: ...
    def LoadPackageContents(self, packageContentsPath: str) -> None: ...
    def GetDockablePane(self, id: DockablePaneId) -> DockablePane: ...
    @property
    def ProductIsRS(self) -> bool: ...
    def RegisterDockablePane(self, id: DockablePaneId, title: str, provider: IDockablePaneProvider) -> None: ...
    @property
    def MainWindowHandle(self) -> IntPtr: ...
    def add_ViewActivating(self, handler: EventHandler) -> None: ...
    def remove_ViewActivating(self, handler: EventHandler) -> None: ...
    def add_ViewActivated(self, handler: EventHandler) -> None: ...
    def remove_ViewActivated(self, handler: EventHandler) -> None: ...
    def add_FormulaEditing(self, handler: EventHandler) -> None: ...
    def remove_FormulaEditing(self, handler: EventHandler) -> None: ...
    def add_ApplicationClosing(self, handler: EventHandler) -> None: ...
    def remove_ApplicationClosing(self, handler: EventHandler) -> None: ...
    def add_DialogBoxShowing(self, handler: EventHandler) -> None: ...
    def remove_DialogBoxShowing(self, handler: EventHandler) -> None: ...
    def add_Idling(self, handler: EventHandler) -> None: ...
    def remove_Idling(self, handler: EventHandler) -> None: ...
    def add_DisplayingOptionsDialog(self, handler: EventHandler) -> None: ...
    def remove_DisplayingOptionsDialog(self, handler: EventHandler) -> None: ...
    def add_DockableFrameVisibilityChanged(self, handler: EventHandler) -> None: ...
    def remove_DockableFrameVisibilityChanged(self, handler: EventHandler) -> None: ...
    def add_DockableFrameFocusChanged(self, handler: EventHandler) -> None: ...
    def remove_DockableFrameFocusChanged(self, handler: EventHandler) -> None: ...
    def add_FabricationPartBrowserChanged(self, handler: EventHandler) -> None: ...
    def remove_FabricationPartBrowserChanged(self, handler: EventHandler) -> None: ...
    def add_TransferringProjectStandards(self, handler: EventHandler) -> None: ...
    def remove_TransferringProjectStandards(self, handler: EventHandler) -> None: ...
    def add_TransferredProjectStandards(self, handler: EventHandler) -> None: ...
    def remove_TransferredProjectStandards(self, handler: EventHandler) -> None: ...


class IExternalApplication:
    def OnStartup(self, application: UIControlledApplication) -> Result: ...
    def OnShutdown(self, application: UIControlledApplication) -> Result: ...


class ExternalApplicationArray(APIObject):
    def __init__(self): ...
    def Clear(self) -> None: ...
    @property
    def Size(self) -> int: ...
    @property
    def IsEmpty(self) -> bool: ...
    def ForwardIterator(self) -> ExternalApplicationArrayIterator: ...
    def ReverseIterator(self) -> ExternalApplicationArrayIterator: ...
    def GetEnumerator(self) -> IEnumerator: ...
    @property
    def Item(self, index: int) -> IExternalApplication: ...
    @Item.setter
    def Item(self, index: int, item: IExternalApplication) -> None: ...
    def Append(self, item: IExternalApplication) -> None: ...
    def Insert(self, item: IExternalApplication, index: int) -> None: ...


class ExternalApplicationArrayIterator(APIObject):
    def __init__(self): ...
    @property
    def Current(self) -> Object: ...
    def MoveNext(self) -> bool: ...
    def Reset(self) -> None: ...


class AddInCommandBinding:
    @property
    def RevitCommandId(self) -> RevitCommandId: ...
    def add_BeforeExecuted(self, handler: EventHandler) -> None: ...
    def remove_BeforeExecuted(self, handler: EventHandler) -> None: ...
    def add_Executed(self, handler: EventHandler) -> None: ...
    def remove_Executed(self, handler: EventHandler) -> None: ...
    def add_CanExecute(self, handler: EventHandler) -> None: ...
    def remove_CanExecute(self, handler: EventHandler) -> None: ...


class Result:
    Succeeded = 0
    Cancelled = 1
    Failed = -1


class PromptForFamilyInstancePlacementOptions:
    @overload
    def __init__(self, other: PromptForFamilyInstancePlacementOptions): ...
    @overload
    def __init__(self): ...
    @property
    def PlaceAirTerminalOnDuct(self) -> bool: ...
    @PlaceAirTerminalOnDuct.setter
    def PlaceAirTerminalOnDuct(self, placeAirTerminalOnDuct: bool) -> None: ...
    @property
    def SketchGalleryOptions(self) -> SketchGalleryOptions: ...
    @SketchGalleryOptions.setter
    def SketchGalleryOptions(self, sketchGalleryOptions: SketchGalleryOptions) -> None: ...
    @property
    def FaceBasedPlacementType(self) -> FaceBasedPlacementType: ...
    @FaceBasedPlacementType.setter
    def FaceBasedPlacementType(self, faceBasedPlacementType: FaceBasedPlacementType) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class UIView:
    @property
    def ViewId(self) -> ElementId: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetWindowRectangle(self) -> Rectangle: ...
    def Close(self) -> None: ...
    def ZoomToFit(self) -> None: ...
    def Zoom(self, zoomFactor: float) -> None: ...
    def ZoomSheetSize(self) -> None: ...
    def ZoomAndCenterRectangle(self, viewCorner1: XYZ, viewCorner2: XYZ) -> None: ...
    def GetZoomCorners(self) -> List[XYZ]: ...
    def Dispose(self) -> None: ...


class ContextualHelp:
    def __init__(self, helpType: ContextualHelpType, helpPath: str): ...
    @property
    def HelpType(self) -> ContextualHelpType: ...
    @HelpType.setter
    def HelpType(self, helpType: ContextualHelpType) -> None: ...
    @property
    def HelpPath(self) -> str: ...
    @HelpPath.setter
    def HelpPath(self, helpPath: str) -> None: ...
    @property
    def HelpTopicUrl(self) -> str: ...
    @HelpTopicUrl.setter
    def HelpTopicUrl(self, helpPath: str) -> None: ...
    def Launch(self) -> None: ...


class RibbonItem:
    @property
    def Name(self) -> str: ...
    @property
    def ItemText(self) -> str: ...
    @ItemText.setter
    def ItemText(self, text: str) -> None: ...
    @property
    def ToolTip(self) -> str: ...
    @ToolTip.setter
    def ToolTip(self, toolTip: str) -> None: ...
    @property
    def LongDescription(self) -> str: ...
    @LongDescription.setter
    def LongDescription(self, longDescription: str) -> None: ...
    @property
    def ToolTipImage(self) -> ImageSource: ...
    @ToolTipImage.setter
    def ToolTipImage(self, image: ImageSource) -> None: ...
    @property
    def Enabled(self) -> bool: ...
    @Enabled.setter
    def Enabled(self, bEnabled: bool) -> None: ...
    @property
    def Visible(self) -> bool: ...
    @Visible.setter
    def Visible(self, bVisible: bool) -> None: ...
    @property
    def ItemType(self) -> RibbonItemType: ...
    def Equals(self, obj: Object) -> bool: ...
    def GetContextualHelp(self) -> ContextualHelp: ...
    def SetContextualHelp(self, contextualHelp: ContextualHelp) -> None: ...


class RibbonItemData:
    @property
    def Name(self) -> str: ...
    @Name.setter
    def Name(self, name: str) -> None: ...
    @property
    def ToolTip(self) -> str: ...
    @ToolTip.setter
    def ToolTip(self, toolTip: str) -> None: ...
    @property
    def LongDescription(self) -> str: ...
    @LongDescription.setter
    def LongDescription(self, longDescription: str) -> None: ...
    @property
    def ToolTipImage(self) -> ImageSource: ...
    @ToolTipImage.setter
    def ToolTipImage(self, image: ImageSource) -> None: ...
    def GetContextualHelp(self) -> ContextualHelp: ...
    def SetContextualHelp(self, contextualHelp: ContextualHelp) -> None: ...


class RibbonItemType:
    PushButton = 0
    PulldownButton = 1
    SplitButton = 2
    ToggleButton = 3
    RadioButtonGroup = 4
    ComboBoxMember = 5
    ComboBox = 6
    TextBox = 7


class ContextualHelpType:
    #None = 0
    ContextId = 1
    Url = 2
    ChmFile = 3


class DockablePaneId(GuidEnum):
    def __init__(self, guid: Guid): ...
    def op_Equality(first: DockablePaneId, second: DockablePaneId) -> bool: ...
    def op_Inequality(first: DockablePaneId, second: DockablePaneId) -> bool: ...


class PreviewControl:
    def __init__(self, document: Document, viewId: ElementId): ...
    @property
    def ViewId(self) -> ElementId: ...
    @property
    def UIView(self) -> UIView: ...
    @property
    def ScrollbarVisibility(self) -> ScrollbarVisibility: ...
    @ScrollbarVisibility.setter
    def ScrollbarVisibility(self, scrollbarVisibility: ScrollbarVisibility) -> None: ...
    def Dispose(self) -> None: ...


class ScrollbarVisibility:
    #None = 0
    Horizontal = 1
    Vertical = 2
    Both = 3


class IExternalCommand:
    def Execute(self, commandData: ExternalCommandData) -> Tuple[Result, str, ElementSet]: ...


class IExternalCommandAvailability:
    def IsCommandAvailable(self, applicationData: UIApplication, selectedCategories: CategorySet) -> bool: ...


class ComboBoxMember(RibbonItem):
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, value: ImageSource) -> None: ...
    @property
    def GroupName(self) -> str: ...


class ComboBoxMemberData(RibbonItemData):
    def __init__(self, name: str, text: str): ...
    @property
    def Text(self) -> str: ...
    @Text.setter
    def Text(self, text: str) -> None: ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, value: ImageSource) -> None: ...
    @property
    def GroupName(self) -> str: ...
    @GroupName.setter
    def GroupName(self, value: str) -> None: ...


class ComboBox(RibbonItem):
    @property
    def Current(self) -> ComboBoxMember: ...
    @Current.setter
    def Current(self, value: ComboBoxMember) -> None: ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...
    def AddItem(self, memberData: ComboBoxMemberData) -> ComboBoxMember: ...
    def AddItems(self, memberData: List[ComboBoxMemberData]) -> List[ComboBoxMember]: ...
    def AddSeparator(self) -> None: ...
    def GetItems(self) -> List[ComboBoxMember]: ...
    def add_DropDownOpened(self, value: EventHandler) -> None: ...
    def remove_DropDownOpened(self, value: EventHandler) -> None: ...
    def add_DropDownClosed(self, value: EventHandler) -> None: ...
    def remove_DropDownClosed(self, value: EventHandler) -> None: ...
    def add_CurrentChanged(self, value: EventHandler) -> None: ...
    def remove_CurrentChanged(self, value: EventHandler) -> None: ...


class ComboBoxData(RibbonItemData):
    def __init__(self, name: str): ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...


class RadioButtonGroup(RibbonItem):
    @property
    def Current(self) -> ToggleButton: ...
    @Current.setter
    def Current(self, value: ToggleButton) -> None: ...
    def AddItem(self, buttonData: ToggleButtonData) -> ToggleButton: ...
    def AddItems(self, buttonData: List[ToggleButtonData]) -> List[ToggleButton]: ...
    def GetItems(self) -> List[ToggleButton]: ...


class RadioButtonGroupData(RibbonItemData):
    def __init__(self, name: str): ...


class RibbonButton(RibbonItem):
    @property
    def LargeImage(self) -> ImageSource: ...
    @LargeImage.setter
    def LargeImage(self, largeImage: ImageSource) -> None: ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...
    @property
    def IsEnabledByContext(self) -> bool: ...


class PushButton(RibbonButton):
    @property
    def AssemblyName(self) -> str: ...
    @AssemblyName.setter
    def AssemblyName(self, assemblyName: str) -> None: ...
    @property
    def ClassName(self) -> str: ...
    @ClassName.setter
    def ClassName(self, className: str) -> None: ...
    @property
    def AvailabilityClassName(self) -> str: ...
    @AvailabilityClassName.setter
    def AvailabilityClassName(self, availabilityClassName: str) -> None: ...


class ButtonData(RibbonItemData):
    @property
    def Text(self) -> str: ...
    @Text.setter
    def Text(self, text: str) -> None: ...
    @property
    def LargeImage(self) -> ImageSource: ...
    @LargeImage.setter
    def LargeImage(self, largeImage: ImageSource) -> None: ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...


class PushButtonData(ButtonData):
    def __init__(self, name: str, text: str, assemblyName: str, className: str): ...
    @property
    def ClassName(self) -> str: ...
    @ClassName.setter
    def ClassName(self, className: str) -> None: ...
    @property
    def AssemblyName(self) -> str: ...
    @AssemblyName.setter
    def AssemblyName(self, assemblyName: str) -> None: ...
    @property
    def AvailabilityClassName(self) -> str: ...
    @AvailabilityClassName.setter
    def AvailabilityClassName(self, availabilityClassName: str) -> None: ...


class PulldownButton(RibbonButton):
    def GetItems(self) -> List[PushButton]: ...
    def AddPushButton(self, buttonData: PushButtonData) -> PushButton: ...
    def AddSeparator(self) -> None: ...


class PulldownButtonData(ButtonData):
    def __init__(self, name: str, text: str): ...


class SplitButton(PulldownButton):
    @property
    def IsSynchronizedWithCurrentItem(self) -> bool: ...
    @IsSynchronizedWithCurrentItem.setter
    def IsSynchronizedWithCurrentItem(self, value: bool) -> None: ...
    @property
    def CurrentButton(self) -> PushButton: ...
    @CurrentButton.setter
    def CurrentButton(self, value: PushButton) -> None: ...


class SplitButtonData(PulldownButtonData):
    def __init__(self, name: str, text: str): ...


class TextBox(RibbonItem):
    @property
    def PromptText(self) -> str: ...
    @PromptText.setter
    def PromptText(self, value: str) -> None: ...
    @property
    def SelectTextOnFocus(self) -> bool: ...
    @SelectTextOnFocus.setter
    def SelectTextOnFocus(self, value: bool) -> None: ...
    @property
    def Value(self) -> Object: ...
    @Value.setter
    def Value(self, value: Object) -> None: ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...
    @property
    def ShowImageAsButton(self) -> bool: ...
    @ShowImageAsButton.setter
    def ShowImageAsButton(self, value: bool) -> None: ...
    @property
    def Width(self) -> float: ...
    @Width.setter
    def Width(self, value: float) -> None: ...
    def add_EnterPressed(self, value: EventHandler) -> None: ...
    def remove_EnterPressed(self, value: EventHandler) -> None: ...


class TextBoxData(RibbonItemData):
    def __init__(self, name: str): ...
    @property
    def Image(self) -> ImageSource: ...
    @Image.setter
    def Image(self, image: ImageSource) -> None: ...


class ToggleButton(PushButton):


class ToggleButtonData(PushButtonData):
    @overload
    def __init__(self, name: str, text: str): ...
    @overload
    def __init__(self, name: str, text: str, assemblyName: str, className: str): ...


class TaskDialog(APIObject):
    def __init__(self, title: str): ...
    @property
    def Title(self) -> str: ...
    @Title.setter
    def Title(self, title: str) -> None: ...
    @property
    def MainInstruction(self) -> str: ...
    @MainInstruction.setter
    def MainInstruction(self, MainInstruction: str) -> None: ...
    @property
    def Id(self) -> str: ...
    @Id.setter
    def Id(self, Id: str) -> None: ...
    @property
    def MainContent(self) -> str: ...
    @MainContent.setter
    def MainContent(self, mainContent: str) -> None: ...
    @property
    def ExpandedContent(self) -> str: ...
    @ExpandedContent.setter
    def ExpandedContent(self, expandedContent: str) -> None: ...
    @property
    def VerificationText(self) -> str: ...
    @VerificationText.setter
    def VerificationText(self, verificationText: str) -> None: ...
    @property
    def ExtraCheckBoxText(self) -> str: ...
    @ExtraCheckBoxText.setter
    def ExtraCheckBoxText(self, extraText: str) -> None: ...
    @property
    def FooterText(self) -> str: ...
    @FooterText.setter
    def FooterText(self, footerText: str) -> None: ...
    @property
    def AllowCancellation(self) -> bool: ...
    @AllowCancellation.setter
    def AllowCancellation(self, allowCancellation: bool) -> None: ...
    @property
    def DefaultButton(self) -> TaskDialogResult: ...
    @DefaultButton.setter
    def DefaultButton(self, defaultButton: TaskDialogResult) -> None: ...
    @property
    def MainIcon(self) -> TaskDialogIcon: ...
    @MainIcon.setter
    def MainIcon(self, icon: TaskDialogIcon) -> None: ...
    @property
    def CommonButtons(self) -> TaskDialogCommonButtons: ...
    @CommonButtons.setter
    def CommonButtons(self, buttons: TaskDialogCommonButtons) -> None: ...
    @property
    def TitleAutoPrefix(self) -> bool: ...
    @TitleAutoPrefix.setter
    def TitleAutoPrefix(self, autoPrefix: bool) -> None: ...
    @property
    def EnableMarqueeProgressBar(self) -> bool: ...
    @EnableMarqueeProgressBar.setter
    def EnableMarqueeProgressBar(self, enableMarqueeProgressBar: bool) -> None: ...
    @overload
    def AddCommandLink(self, id: TaskDialogCommandLinkId, mainContent: str) -> None: ...
    @overload
    def AddCommandLink(self, id: TaskDialogCommandLinkId, mainContent: str, supportingContent: str) -> None: ...
    @overload
    def Show(title: str, mainInstruction: str, buttons: TaskDialogCommonButtons, defaultButton: TaskDialogResult) -> TaskDialogResult: ...
    @overload
    def Show(title: str, mainInstruction: str, buttons: TaskDialogCommonButtons) -> TaskDialogResult: ...
    @overload
    def Show(title: str, mainInstruction: str) -> TaskDialogResult: ...
    @overload
    def Show(self) -> TaskDialogResult: ...
    def WasVerificationChecked(self) -> bool: ...
    def WasExtraCheckBoxChecked(self) -> bool: ...
    def EnableDoNotShowAgain(self, dialogId: str, enableDoNotShow: bool, doNotShowText: str) -> None: ...


class TaskDialogCommonButtons:
    #None = 0
    Ok = 1
    Yes = 2
    No = 4
    Cancel = 8
    Retry = 16
    Close = 32


class TaskDialogCommandLinkId:
    CommandLink1 = 1001
    CommandLink2 = 1002
    CommandLink3 = 1003
    CommandLink4 = 1004


class TaskDialogResult:
    #None = 0
    Ok = 1
    Cancel = 2
    Retry = 4
    Yes = 6
    No = 7
    Close = 8
    CommandLink1 = 1001
    CommandLink2 = 1002
    CommandLink3 = 1003
    CommandLink4 = 1004


class TaskDialogIcon:
    TaskDialogIconNone = 0
    TaskDialogIconShield = 65532
    TaskDialogIconInformation = 65533
    TaskDialogIconError = 65534
    TaskDialogIconWarning = 65535


class UIThemeManager:
    def GetThemeName(frameTheme: UITheme) -> str: ...
    @property
    def DefaultTheme() -> UITheme: ...
    @DefaultTheme.setter
    def DefaultTheme(frameTheme: UITheme) -> None: ...
    @property
    def CurrentTheme() -> UITheme: ...
    @CurrentTheme.setter
    def CurrentTheme(frameTheme: UITheme) -> None: ...


class ColorSelectionDialog:
    def __init__(self): ...
    @property
    def SelectedColor(self) -> Color: ...
    @property
    def OriginalColor(self) -> Color: ...
    @OriginalColor.setter
    def OriginalColor(self, originalColor: Color) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Show(self) -> ItemSelectionDialogResult: ...
    def Dispose(self) -> None: ...


class DockablePanes:


class BuiltInDockablePanes:
    @property
    def ContentDelivery() -> DockablePaneId: ...
    @property
    def ElementView() -> DockablePaneId: ...
    @property
    def FabricationPartBrowser() -> DockablePaneId: ...
    @property
    def HostByLinkNavigator() -> DockablePaneId: ...
    @property
    def PnIdModelerBrowser() -> DockablePaneId: ...
    @property
    def ProjectBrowser() -> DockablePaneId: ...
    @property
    def PropertiesPalette() -> DockablePaneId: ...
    @property
    def RebarBrowser() -> DockablePaneId: ...
    @property
    def SystemNavigator() -> DockablePaneId: ...
    @property
    def ViewBrowser() -> DockablePaneId: ...


class DoubleClickOptions:
    @property
    def IsValidObject(self) -> bool: ...
    def GetDoubleClickOptions() -> DoubleClickOptions: ...
    def GetRenameOnSlowDoubleClickInProjectBrowser(self) -> bool: ...
    def SetRenameOnSlowDoubleClickInProjectBrowser(self, bRenameOnSlowDoubleClickInProjectBrowser: bool) -> None: ...
    def GetAction(self, target: DoubleClickTarget) -> DoubleClickAction: ...
    def SetAction(self, target: DoubleClickTarget, action: DoubleClickAction) -> None: ...
    def IsSupportedAction(self, target: DoubleClickTarget, action: DoubleClickAction) -> bool: ...
    def Dispose(self) -> None: ...


class FamilyInstancePlacingArgs:
    @property
    def ActiveView(self) -> View: ...
    @property
    def IsBanned(self) -> bool: ...
    @IsBanned.setter
    def IsBanned(self, isBanned: bool) -> None: ...
    @property
    def StatusMessage(self) -> str: ...
    @StatusMessage.setter
    def StatusMessage(self, statusMessage: str) -> None: ...
    @property
    def TooltipMessage(self) -> str: ...
    @TooltipMessage.setter
    def TooltipMessage(self, tooltipMessage: str) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class FileDialog:
    @property
    def Filter(self) -> str: ...
    @Filter.setter
    def Filter(self, filter: str) -> None: ...
    @property
    def Title(self) -> str: ...
    @Title.setter
    def Title(self, title: str) -> None: ...
    @property
    def DefaultFilterEntry(self) -> str: ...
    @DefaultFilterEntry.setter
    def DefaultFilterEntry(self, defaultFilterEntry: str) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetSelectedModelPath(self) -> ModelPath: ...
    def Show(self) -> ItemSelectionDialogResult: ...
    def IsValidFilterString(filterString: str) -> bool: ...
    def Dispose(self) -> None: ...


class FileOpenDialog(FileDialog):
    def __init__(self, filter: str): ...
    @property
    def ShowPreview(self) -> bool: ...
    @ShowPreview.setter
    def ShowPreview(self, showPreview: bool) -> None: ...


class FileSaveDialog(FileDialog):
    def __init__(self, filter: str): ...
    @property
    def InitialFileName(self) -> str: ...
    @InitialFileName.setter
    def InitialFileName(self, initialFileName: str) -> None: ...


class FilterDialog:
    @overload
    def __init__(self, doc: Document, name: str): ...
    @overload
    def __init__(self, doc: Document, filterToSelect: ElementId): ...
    @property
    def NewFilterId(self) -> ElementId: ...
    @property
    def FilterToSelect(self) -> ElementId: ...
    @FilterToSelect.setter
    def FilterToSelect(self, id: ElementId) -> None: ...
    @property
    def NewFilterName(self) -> str: ...
    @NewFilterName.setter
    def NewFilterName(self, newFilterName: str) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Show(self) -> None: ...
    def Dispose(self) -> None: ...


class IExternalResourceUIServer:
    def GetDBServerId(self) -> Guid: ...
    def HandleLoadResourceResults(self, document: Document, loadData: List[ExternalResourceLoadData]) -> None: ...
    def HandleBrowseResult(self, resultType: ExternalResourceUIBrowseResultType, browsingItemPath: str) -> None: ...


class RibbonButtonOptions:
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class RevitLinkUIUtils:
    def ReportLinkLoadResults(doc: Document, loadResults: IDictionary) -> None: ...


class SelectionUIOptions:
    @property
    def SelectFaces(self) -> bool: ...
    @SelectFaces.setter
    def SelectFaces(self, selectFaces: bool) -> None: ...
    @property
    def SelectLinks(self) -> bool: ...
    @SelectLinks.setter
    def SelectLinks(self, selectLinks: bool) -> None: ...
    @property
    def SelectUnderlay(self) -> bool: ...
    @SelectUnderlay.setter
    def SelectUnderlay(self, selectUnderlay: bool) -> None: ...
    @property
    def DragOnSelection(self) -> bool: ...
    @DragOnSelection.setter
    def DragOnSelection(self, dragOnSelection: bool) -> None: ...
    @property
    def SelectPinned(self) -> bool: ...
    @SelectPinned.setter
    def SelectPinned(self, selectPinned: bool) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetSelectionUIOptions() -> SelectionUIOptions: ...
    def ElementSelectsAsPinned(document: Document, element: Element) -> bool: ...
    def Dispose(self) -> None: ...


class SetupEnergySimulationDialog:
    def __init__(self): ...
    @property
    def ProjectName(self) -> str: ...
    @property
    def ProjectId(self) -> int: ...
    @property
    def RunName(self) -> str: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Show(self) -> SetupEnergySimulationDialogResult: ...
    def Dispose(self) -> None: ...


class TableViewUIUtils:
    def TestCellAndPromptToEditTypeParameter(tableView: TableView, sectionType: SectionType, row: int, column: int) -> bool: ...


class TextEditorOptions:
    @property
    def ShowBorder(self) -> bool: ...
    @ShowBorder.setter
    def ShowBorder(self, showBorder: bool) -> None: ...
    @property
    def ShowOpaqueBackground(self) -> bool: ...
    @ShowOpaqueBackground.setter
    def ShowOpaqueBackground(self, showOpaqueBackground: bool) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetTextEditorOptions() -> TextEditorOptions: ...
    def Dispose(self) -> None: ...


class ThinLinesOptions:
    @property
    def AreThinLinesEnabled() -> bool: ...
    @AreThinLinesEnabled.setter
    def AreThinLinesEnabled(isEnabled: bool) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class UISaveAsOptions:
    def __init__(self): ...
    @property
    def ShowOverwriteWarning(self) -> bool: ...
    @ShowOverwriteWarning.setter
    def ShowOverwriteWarning(self, showOverwriteWarning: bool) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class UIFabricationUtils:
    def SetOpenConnectorIndicatorPlanColor(color: Color) -> None: ...
    def GetOpenConnectorIndicatorPlanColor() -> Color: ...
    def SetOpenConnectorIndicatorTowardsColor(color: Color) -> None: ...
    def GetOpenConnectorIndicatorTowardsColor() -> Color: ...
    def SetOpenConnectorIndicatorAwayColor(color: Color) -> None: ...
    def GetOpenConnectorIndicatorAwayColor() -> Color: ...


class UITheme:
    Dark = 0
    Light = 1


class ItemSelectionDialogResult:
    Confirmed = 0
    Canceled = 1


class DoubleClickTarget:
    Family = 0
    SketchedElement = 1
    ViewOnSheet = 2
    Assembly = 3
    Group = 4
    ComponentStairs = 5
    OutsideViewOnSheet = 6


class DoubleClickAction:
    NoAction = 0
    EditFamily = 1
    EditType = 2
    ActivateView = 3
    EnterEditMode = 4
    DeactivateView = 5


class SetupEnergySimulationDialogResult:
    Continue = 1
    Cancel = 2
