from typing import Tuple, Set, Iterable, List


class gbXMLExportComplexity:
    Simple = 0
    SimpleWithShadingSurfaces = 1
    Complex = 2
    ComplexWithShadingSurfaces = 3
    ComplexWithMullionsAndShadingSurfaces = 4


class gbXMLBuildingType:
    AutomotiveFacility = 0
    ConventionCenter = 1
    Courthouse = 2
    DiningBarLoungeOrLeisure = 3
    DiningCafeteriaFastFood = 4
    DiningFamily = 5
    Dormitory = 6
    ExerciseCenter = 7
    FireStation = 8
    Gymnasium = 9
    HospitalOrHealthcare = 10
    Hotel = 11
    Library = 12
    Manufacturing = 13
    Motel = 14
    MotionPictureTheatre = 15
    MultiFamily = 16
    Museum = 17
    Office = 18
    ParkingGarage = 19
    Penitentiary = 20
    PerformingArtsTheater = 21
    PoliceStation = 22
    PostOffice = 23
    ReligiousBuilding = 24
    Retail = 25
    SchoolOrUniversity = 26
    SingleFamily = 27
    SportsArena = 28
    TownHall = 29
    Transportation = 30
    Warehouse = 31
    Workshop = 32
    NoOfBuildingTypes = 33
    CustomizeBuildingType = -2
    NoBuildingType = -1


class gbXMLServiceType:
    CentralHeatingRadiators = 0
    CentralHeatingConvectors = 1
    CentralHeatingRadiantFloor = 2
    CentralHeatingHotAir = 3
    OtherRoomHeater = 4
    RadiantHeaterFlue = 5
    RadiantHeaterNoFlue = 6
    RadiantHeaterMultiburner = 7
    ForcedConvectionHeaterFlue = 8
    ForcedConvectionHeaterNoFlue = 9
    VAVSingleDuct = 10
    VAVDualDuct = 11
    VAVIndoorPackagedCabinet = 12
    VAVTerminalReheat = 13
    FanCoilSystem = 14
    InductionSystem = 15
    ConstantVolumeFixedOA = 16
    ConstantVolumeVariableOA = 17
    ConstantVolumeTerminalReheat = 18
    MultizoneHotDeckColdDeck = 19
    ConstantVolumeDualDuct = 20
    RadiantCooledCeilings = 21
    ActiveChilledBeams = 22
    WaterLoopHeatPump = 23
    VariableRefrigerantFlow = 24
    SplitSystemsWithNaturalVentilation = 25
    SplitSystemsWithMechanicalVentilation = 26
    SplitSystemsWithMechanicalVentilationWithCooling = 27
    NoOfServiceTypes = 28
    NoServiceType = -1


class gbXMLConditionType:
    Heated = 0
    Cooled = 1
    HeatedAndCooled = 2
    Unconditioned = 3
    Vented = 4
    NaturallyVentedOnly = 5
    NoOfConditionTypes = 6
    NoConditionType = -1


class gbXMLSpaceType:
    ActiveStorage = 0
    ActiveStorageHospitalOrHealthcare = 1
    AirOrTrainOrBusBaggageArea = 2
    AirportConcourse = 3
    AtriumEachAdditionalFloor = 4
    AtriumFirstThreeFloors = 5
    AudienceOrSeatingAreaPenitentiary = 6
    AudienceOrSeatingAreaExerciseCenter = 7
    AudienceOrSeatingAreaGymnasium = 8
    AudienceOrSeatingAreaSportsArena = 9
    AudienceOrSeatingAreaConventionCenter = 10
    AudienceOrSeatingAreaMotionPictureTheatre = 11
    AudienceOrSeatingAreaPerformingArtsTheatre = 12
    AudienceOrSeatingAreaReligious = 13
    AudienceOrSeatingAreaPoliceOrFireStations = 14
    AudienceOrSeatingAreaCourtHouse = 15
    AudienceOrSeatingAreaAuditorium = 16
    BankCustomerArea = 17
    BankingActivityAreaOffice = 18
    BarberAndBeautyParlor = 19
    CardFileAndCataloguingLibrary = 20
    ClassroomOrLectureOrTrainingPenitentiary = 21
    ClassroomOrLectureOrTraining = 22
    ConfinementCellsPenitentiary = 23
    ConfinementCellsCourtHouse = 24
    ConferenceMeetingOrMultipurpose = 25
    CorridorOrTransition = 26
    CorridorOrTransitionManufacturingFacility = 27
    CorridorsWithPatientWaitingExamHospitalOrHealthcare = 28
    CourtSportsAreaSportsArena = 29
    CourtroomCourtHouse = 30
    DepartmentStoreSalesAreaRetail = 31
    DetailedManufacturingFacility = 32
    DiningArea = 33
    DiningAreaHotel = 34
    DiningAreaFamilyDining = 35
    DiningAreaLoungeOrLeisureDining = 36
    DiningAreaMotel = 37
    DiningAreaTransportation = 38
    DiningAreaPenitentiary = 39
    DiningAreaCivilServices = 40
    DormitoryBedroom = 41
    DormitoryStudyHall = 42
    DressingOrLockerOrFittingRoomGymnasium = 43
    DressingOrLockerOrFittingRoomCourtHouse = 44
    DressingOrLockerOrFittingRoomPerformingArtsTheatre = 45
    DressingOrLockerOrFittingRoomAuditorium = 46
    DressingOrLockerOrFittingRoomExerciseCenter = 47
    ElectricalOrMechanical = 48
    ElevatorLobbies = 49
    EmergencyHospitalOrHealthcare = 50
    EquipmentRoomManufacturingFacility = 51
    ExamOrTreatmentHospitalOrHealthcare = 52
    ExerciseAreaExerciseCenter = 53
    ExerciseAreaGymnasium = 54
    ExhibitSpaceConventionCenter = 55
    FellowshipHallReligiousBuildings = 56
    FineMaterialWarehouse = 57
    FineMerchandiseSalesAreaRetail = 58
    FireStationEngineRoomPoliceOrFireStation = 59
    FoodPreparation = 60
    GarageServiceOrRepairAutomotiveFacility = 61
    GeneralHighBayManufacturingFacility = 62
    GeneralLowBayManufacturingFacility = 63
    GeneralExhibitionMuseum = 64
    HospitalNurseryHospitalOrHealthcare = 65
    HospitalOrMedicalSuppliesHospitalOrHealthcare = 66
    HospitalOrRadiologyHospitalOrHealthcare = 67
    HotelOrConferenceCenterConferenceOrMeeting = 68
    InactiveStorage = 69
    JudgesChambersCourtHouse = 70
    LaboratoryOffice = 71
    LaundryIroningAndSorting = 72
    LaundryWashingHospitalOrHealthcare = 73
    LibraryAudioVisualLibraryAudioVisual = 74
    LivingQuartersDormitory = 75
    LivingQuartersMotel = 76
    LivingQuartersHotel = 77
    Lobby = 78
    LobbyReligiousBuildings = 79
    LobbyMotionPictureTheatre = 80
    LobbyAuditorium = 81
    LobbyPerformingArtsTheatre = 82
    LobbyPostOffice = 83
    LobbyHotel = 84
    LoungeOrRecreation = 85
    MallConcourseSalesAreaRetail = 86
    MassMerchandisingSalesAreaRetail = 87
    MediumOrBulkyMaterialWarehouse = 88
    MerchandisingSalesAreaRetail = 89
    MuseumAndGalleryStorage = 90
    NurseStationHospitalOrHealthcare = 91
    OfficeEnclosed = 92
    OfficeOpenPlan = 93
    OfficeCommonActivityAreasInactiveStorage = 94
    OperatingRoomHospitalOrHealthcare = 95
    OtherTelevisedPlayingAreaSportsArena = 96
    ParkingAreaAttendantOnlyParkingGarage = 97
    ParkingAreaPedestrianParkingGarage = 98
    PatientRoomHospitalOrHealthcare = 99
    PersonalServicesSalesAreaRetail = 100
    PharmacyHospitalOrHealthcare = 101
    PhysicalTherapyHospitalOrHealthcare = 102
    PlayingAreaGymnasium = 103
    Plenum = 104
    PoliceStationLaboratoryPoliceOrFireStations = 105
    PublicAndStaffLoungeHospitalOrHealthcare = 106
    ReadingAreaLibrary = 107
    ReceptionOrWaitingTransportation = 108
    ReceptionOrWaitingMotel = 109
    ReceptionOrWaitingHotel = 110
    RecoveryHospitalOrHealthcare = 111
    RestorationMuseum = 112
    Restrooms = 113
    RingSportsAreaSportsArena = 114
    SleepingQuartersPoliceOrFireStation = 115
    SortingAreaPostOffice = 116
    SpecialtyStoreSalesAreaRetail = 117
    StacksLibrary = 118
    StairsInactive = 119
    Stairway = 120
    SupermarketSalesAreaRetail = 121
    TerminalTicketCounterTransportation = 122
    WorkshopWorkshop = 123
    WorshipPulpitChoirReligious = 124
    NoOfSpaceTypes = 125
    CustomizeSpaceType = -2
    NoSpaceType = -1


class gbXMLSurfaceType:
    InteriorWall = 0
    ExteriorWall = 1
    Roof = 2
    InteriorFloor = 3
    Shade = 4
    UndergroundWall = 5
    UndergroundSlab = 6
    Ceiling = 7
    SurfaceAir = 8
    UndergroundCeiling = 9
    RaisedFloor = 10
    SlabOnGrade = 11
    NoOfSurfaceTypes = 12


class gbXMLOpeningType:
    FixedWindow = 0
    OperableWindow = 1
    FixedSkylight = 2
    OperableSkylight = 3
    SlidingDoor = 4
    NonSlidingDoor = 5
    OpeningAir = 6
    NoOfOpeningTypes = 7


class gbXMLBuildingOperatingSchedule:
    DefaultOperatingSchedule = 0
    TwentyFourHourSevenDayFacility = 1
    TwentyFourHourHourSixDayFacility = 2
    TwentyFourHourHourFiveDayFacility = 3
    TwelveHourSevenDayFacility = 4
    TwelveHourSixDayFacility = 5
    TwelveHourFiveDayFacility = 6
    KindergartenThruTwelveGradeSchool = 7
    YearRoundSchool = 8
    TheaterPerformingArts = 9
    Worship = 10
    NoOfOperatingScheduleEnums = 11


class gbXMLBuildingHVACSystem:
    TwelveSEERSPointNineAFUESplitPackagedGasFiveToElevenTon = 0
    ElevenPointThreeEERPackagedVAVEightyFourPointFourPercentBoilerHeating = 1
    CentralVAVHWHeatChillerFivePointNinetySixCOPBoilersEightyFourPoint5Eff = 2
    FourPipeFanCoilSystemChillerFivePointNinetySixCOPBoilersEightFourPointFiveEff = 3
    CentralVAVElectricResistanceHeatChillerFivePointNinetySixCOP = 4
    TwelveSEERSevenPointSevenHSPFSplitPackagedHeatPump = 5
    TwoPipeFanCoilSystemChillerFivePointNinetySixCOPBoilersEightyFourPointFiveEff = 6
    TwelveSEEREightPointThreeHSPFPackagedTerminalHeatPumpPTAC = 7
    ResidentialSeventeenSEERNinePointSixHSPFSplitHPLessThanFivePointFiveTon = 8
    UnderfloorAirDistribution = 9
    ResidentialFourteenSEERPointNineAFUESplitPackagedGasLessThanFivePointFiveTon = 10
    ResidentialFourteenSEEREightPointThreeHSPFSplitPackagedHeatPump = 11
    NoOfHVACSystemEnums = 12


class gbXMLExportBuildingEnvelope:
    UseFunctionParameter = 0
    IdentifyExteriorElements = 1


class HVACLoadType(Element):
    @property
    def AreaPerPerson(self) -> float: ...
    @AreaPerPerson.setter
    def AreaPerPerson(self, value: float) -> None: ...
    @property
    def SensibleHeatGainPerPerson(self) -> float: ...
    @SensibleHeatGainPerPerson.setter
    def SensibleHeatGainPerPerson(self, value: float) -> None: ...
    @property
    def LatentHeatGainPerPerson(self) -> float: ...
    @LatentHeatGainPerPerson.setter
    def LatentHeatGainPerPerson(self, value: float) -> None: ...
    @property
    def LightingLoadDensity(self) -> float: ...
    @LightingLoadDensity.setter
    def LightingLoadDensity(self, value: float) -> None: ...
    @property
    def PowerLoadDensity(self) -> float: ...
    @PowerLoadDensity.setter
    def PowerLoadDensity(self, value: float) -> None: ...
    @property
    def PlenumLighting(self) -> float: ...
    @PlenumLighting.setter
    def PlenumLighting(self, value: float) -> None: ...
    @property
    def OutdoorAirPerPerson(self) -> float: ...
    @OutdoorAirPerPerson.setter
    def OutdoorAirPerPerson(self, value: float) -> None: ...
    @property
    def OutdoorAirPerArea(self) -> float: ...
    @OutdoorAirPerArea.setter
    def OutdoorAirPerArea(self, value: float) -> None: ...
    @property
    def AirChangesPerHour(self) -> float: ...
    @AirChangesPerHour.setter
    def AirChangesPerHour(self, value: float) -> None: ...
    @property
    def OutdoorAirFlowStandard(self) -> OutdoorAirFlowStandard: ...
    @OutdoorAirFlowStandard.setter
    def OutdoorAirFlowStandard(self, eOutdoorAirFlowStandard: OutdoorAirFlowStandard) -> None: ...
    @property
    def HeatingSetPoint(self) -> float: ...
    @HeatingSetPoint.setter
    def HeatingSetPoint(self, value: float) -> None: ...
    @property
    def CoolingSetPoint(self) -> float: ...
    @CoolingSetPoint.setter
    def CoolingSetPoint(self, value: float) -> None: ...
    @property
    def HumidificationSetPoint(self) -> float: ...
    @HumidificationSetPoint.setter
    def HumidificationSetPoint(self, value: float) -> None: ...
    @property
    def DehumidificationSetPoint(self) -> float: ...
    @DehumidificationSetPoint.setter
    def DehumidificationSetPoint(self, value: float) -> None: ...


class HVACLoadSpaceType(HVACLoadType):
    @property
    def IsPlenum(self) -> bool: ...
    @property
    def SpaceTypeName(self) -> str: ...
    @SpaceTypeName.setter
    def SpaceTypeName(self, name: str) -> None: ...
    def Create(document: Document, name: str) -> HVACLoadSpaceType: ...
    @overload
    def IsNameUnique(self, name: str) -> bool: ...
    @overload
    def IsNameUnique(document: Document, name: str) -> bool: ...


class HVACLoadBuildingType(HVACLoadType):
    @property
    def BuildingTypeName(self) -> str: ...
    @BuildingTypeName.setter
    def BuildingTypeName(self, name: str) -> None: ...
    @property
    def OpeningTime(self) -> str: ...
    @OpeningTime.setter
    def OpeningTime(self, value: str) -> None: ...
    @property
    def ClosingTime(self) -> str: ...
    @ClosingTime.setter
    def ClosingTime(self, value: str) -> None: ...
    @property
    def UnoccupiedCoolingSetPoint(self) -> float: ...
    @UnoccupiedCoolingSetPoint.setter
    def UnoccupiedCoolingSetPoint(self, value: float) -> None: ...
    def Create(document: Document, name: str) -> HVACLoadBuildingType: ...
    @overload
    def IsNameUnique(self, name: str) -> bool: ...
    @overload
    def IsNameUnique(document: Document, name: str) -> bool: ...
    def IsValidTime(hourMinute: str) -> bool: ...


class OutdoorAirFlowStandard:
    ByPeopleAndByArea = 0
    ByACH = 1
    MaxByPeople_ByArea = 2
    MaxByACH_ByPeopleByArea = 3
    MaxByACH_ByArea_ByPeople = 4


class ConstructionType:
    ExteriorWall = 0
    InteriorWall = 1
    Slab = 2
    Roof = 3
    Ceiling = 4
    Floor = 5
    Door = 6
    ExteriorWindow = 7
    InteriorWindow = 8
    Skylight = 9


class HVACLoadConstructionClass:
    LooseConstruction = 0
    MediumConstruction = 1
    TightConstruction = 2
    NoneConstruction = 3


class HVACLoadLoadsReportType:
    NoReport = 0
    SimpleReport = 1
    StandardReport = 2
    DetailedReport = 3


class AnalysisDisplayLegend(Element):
    @property
    def Height(self) -> float: ...
    @Height.setter
    def Height(self, height: float) -> None: ...


class AnalysisDisplayColorEntry:
    @overload
    def __init__(self, color: Color): ...
    @overload
    def __init__(self, color: Color, value: float): ...
    @overload
    def __init__(self): ...
    @property
    def Value(self) -> float: ...
    @property
    def Color(self) -> Color: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayColorEntry) -> bool: ...
    def HasValue(self) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayColorSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayColorSettings): ...
    @property
    def MaxColor(self) -> Color: ...
    @MaxColor.setter
    def MaxColor(self, color: Color) -> None: ...
    @property
    def MinColor(self) -> Color: ...
    @MinColor.setter
    def MinColor(self, color: Color) -> None: ...
    @property
    def ColorSettingsType(self) -> AnalysisDisplayStyleColorSettingsType: ...
    @ColorSettingsType.setter
    def ColorSettingsType(self, colorSettingsType: AnalysisDisplayStyleColorSettingsType) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetIntermediateColors(self) -> List[AnalysisDisplayColorEntry]: ...
    def AreIntermediateColorsValid(self, map: List[AnalysisDisplayColorEntry]) -> bool: ...
    def SetIntermediateColors(self, map: List[AnalysisDisplayColorEntry]) -> None: ...
    def Colors(self) -> int: ...
    def IsEqual(self, other: AnalysisDisplayColorSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayLegendSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayLegendSettings): ...
    @property
    def TextTypeId(self) -> ElementId: ...
    @TextTypeId.setter
    def TextTypeId(self, textTypeId: ElementId) -> None: ...
    @property
    def HeadingTextTypeId(self) -> ElementId: ...
    @HeadingTextTypeId.setter
    def HeadingTextTypeId(self, headingTextTypeId: ElementId) -> None: ...
    @property
    def ShowLegend(self) -> bool: ...
    @ShowLegend.setter
    def ShowLegend(self, showLegend: bool) -> None: ...
    @property
    def ShowUnits(self) -> bool: ...
    @ShowUnits.setter
    def ShowUnits(self, showUnits: bool) -> None: ...
    @property
    def ShowDataName(self) -> bool: ...
    @ShowDataName.setter
    def ShowDataName(self, showDataName: bool) -> None: ...
    @property
    def ShowDataDescription(self) -> bool: ...
    @ShowDataDescription.setter
    def ShowDataDescription(self, showDataDescription: bool) -> None: ...
    @property
    def Rounding(self) -> float: ...
    @Rounding.setter
    def Rounding(self, rounding: float) -> None: ...
    @property
    def NumberOfSteps(self) -> int: ...
    @NumberOfSteps.setter
    def NumberOfSteps(self, numberOfSteps: int) -> None: ...
    @property
    def ColorRangeWidth(self) -> int: ...
    @ColorRangeWidth.setter
    def ColorRangeWidth(self, colorRangeWidth: int) -> None: ...
    @property
    def ColorRangeHeight(self) -> int: ...
    @ColorRangeHeight.setter
    def ColorRangeHeight(self, colorRangeHeight: int) -> None: ...
    @property
    def ScaleHeight(self) -> int: ...
    @ScaleHeight.setter
    def ScaleHeight(self, scaleHeight: int) -> None: ...
    @property
    def NumberForScale(self) -> float: ...
    @NumberForScale.setter
    def NumberForScale(self, numberForScale: float) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayLegendSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayColoredSurfaceSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayColoredSurfaceSettings): ...
    @property
    def ShowGridLines(self) -> bool: ...
    @ShowGridLines.setter
    def ShowGridLines(self, showGridLines: bool) -> None: ...
    @property
    def ShowContourLines(self) -> bool: ...
    @ShowContourLines.setter
    def ShowContourLines(self, showContourLines: bool) -> None: ...
    @property
    def GridColor(self) -> Color: ...
    @GridColor.setter
    def GridColor(self, color: Color) -> None: ...
    @property
    def GridLineWeight(self) -> int: ...
    @GridLineWeight.setter
    def GridLineWeight(self, lineWeight: int) -> None: ...
    @property
    def Transparency(self) -> int: ...
    @Transparency.setter
    def Transparency(self, transparency: int) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayColoredSurfaceSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayMarkersAndTextSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayMarkersAndTextSettings): ...
    @property
    def TextTypeId(self) -> ElementId: ...
    @TextTypeId.setter
    def TextTypeId(self, textTypeId: ElementId) -> None: ...
    @property
    def MarkerType(self) -> AnalysisDisplayStyleMarkerType: ...
    @MarkerType.setter
    def MarkerType(self, markerType: AnalysisDisplayStyleMarkerType) -> None: ...
    @property
    def TextLabelType(self) -> AnalysisDisplayStyleMarkerTextLabelType: ...
    @TextLabelType.setter
    def TextLabelType(self, textLabelType: AnalysisDisplayStyleMarkerTextLabelType) -> None: ...
    @property
    def MarkerSize(self) -> float: ...
    @MarkerSize.setter
    def MarkerSize(self, markerSize: float) -> None: ...
    @property
    def Rounding(self) -> float: ...
    @Rounding.setter
    def Rounding(self, rounding: float) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayMarkersAndTextSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayDiagramSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayDiagramSettings): ...
    @property
    def TextTypeId(self) -> ElementId: ...
    @TextTypeId.setter
    def TextTypeId(self, textTypeId: ElementId) -> None: ...
    @property
    def FenceType(self) -> AnalysisDisplayStyleDiagramFenceType: ...
    @FenceType.setter
    def FenceType(self, fenceType: AnalysisDisplayStyleDiagramFenceType) -> None: ...
    @property
    def TextLabelType(self) -> AnalysisDisplayStyleDiagramTextLabelType: ...
    @TextLabelType.setter
    def TextLabelType(self, textLabelType: AnalysisDisplayStyleDiagramTextLabelType) -> None: ...
    @property
    def Rounding(self) -> float: ...
    @Rounding.setter
    def Rounding(self, rounding: float) -> None: ...
    @property
    def Transparency(self) -> int: ...
    @Transparency.setter
    def Transparency(self, transparency: int) -> None: ...
    @property
    def OutlineColor(self) -> Color: ...
    @OutlineColor.setter
    def OutlineColor(self, color: Color) -> None: ...
    @property
    def OutlineLineWeight(self) -> int: ...
    @OutlineLineWeight.setter
    def OutlineLineWeight(self, lineWeight: int) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayDiagramSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayVectorSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayVectorSettings): ...
    @property
    def TextTypeId(self) -> ElementId: ...
    @TextTypeId.setter
    def TextTypeId(self, textTypeId: ElementId) -> None: ...
    @property
    def VectorTextType(self) -> AnalysisDisplayStyleVectorTextType: ...
    @VectorTextType.setter
    def VectorTextType(self, vectorTextType: AnalysisDisplayStyleVectorTextType) -> None: ...
    @property
    def ArrowheadScale(self) -> AnalysisDisplayStyleVectorArrowheadScale: ...
    @ArrowheadScale.setter
    def ArrowheadScale(self, arrowheadScale: AnalysisDisplayStyleVectorArrowheadScale) -> None: ...
    @property
    def VectorPosition(self) -> AnalysisDisplayStyleVectorPosition: ...
    @VectorPosition.setter
    def VectorPosition(self, vectorPosition: AnalysisDisplayStyleVectorPosition) -> None: ...
    @property
    def VectorOrientation(self) -> AnalysisDisplayStyleVectorOrientation: ...
    @VectorOrientation.setter
    def VectorOrientation(self, vectorOrientation: AnalysisDisplayStyleVectorOrientation) -> None: ...
    @property
    def Rounding(self) -> float: ...
    @Rounding.setter
    def Rounding(self, rounding: float) -> None: ...
    @property
    def ArrowLineWeight(self) -> int: ...
    @ArrowLineWeight.setter
    def ArrowLineWeight(self, lineWeight: int) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayVectorSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayDeformedShapeSettings:
    @overload
    def __init__(self): ...
    @overload
    def __init__(self, other: AnalysisDisplayDeformedShapeSettings): ...
    @property
    def ShowGridLines(self) -> bool: ...
    @ShowGridLines.setter
    def ShowGridLines(self, showGridLines: bool) -> None: ...
    @property
    def ShowContourLines(self) -> bool: ...
    @ShowContourLines.setter
    def ShowContourLines(self, showContourLines: bool) -> None: ...
    @property
    def TextTypeId(self) -> ElementId: ...
    @TextTypeId.setter
    def TextTypeId(self, textTypeId: ElementId) -> None: ...
    @property
    def TextLabelType(self) -> AnalysisDisplayStyleDeformedShapeTextLabelType: ...
    @TextLabelType.setter
    def TextLabelType(self, textLabelType: AnalysisDisplayStyleDeformedShapeTextLabelType) -> None: ...
    @property
    def Rounding(self) -> float: ...
    @Rounding.setter
    def Rounding(self, rounding: float) -> None: ...
    @property
    def GridColor(self) -> Color: ...
    @GridColor.setter
    def GridColor(self, color: Color) -> None: ...
    @property
    def GridLineWeight(self) -> int: ...
    @GridLineWeight.setter
    def GridLineWeight(self, lineWeight: int) -> None: ...
    @property
    def Transparency(self) -> int: ...
    @Transparency.setter
    def Transparency(self, transparency: int) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisDisplayDeformedShapeSettings) -> bool: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayStyle(Element):
    @overload
    def CreateAnalysisDisplayStyle(document: Document, name: str, deformedShapeSettings: AnalysisDisplayDeformedShapeSettings, colorSettings: AnalysisDisplayColorSettings, legendSettings: AnalysisDisplayLegendSettings) -> AnalysisDisplayStyle: ...
    @overload
    def CreateAnalysisDisplayStyle(document: Document, name: str, vectorSettings: AnalysisDisplayVectorSettings, colorSettings: AnalysisDisplayColorSettings, legendSettings: AnalysisDisplayLegendSettings) -> AnalysisDisplayStyle: ...
    @overload
    def CreateAnalysisDisplayStyle(document: Document, name: str, diagramSettings: AnalysisDisplayDiagramSettings, colorSettings: AnalysisDisplayColorSettings, legendSettings: AnalysisDisplayLegendSettings) -> AnalysisDisplayStyle: ...
    @overload
    def CreateAnalysisDisplayStyle(document: Document, name: str, markersAndTextSettings: AnalysisDisplayMarkersAndTextSettings, colorSettings: AnalysisDisplayColorSettings, legendSettings: AnalysisDisplayLegendSettings) -> AnalysisDisplayStyle: ...
    @overload
    def CreateAnalysisDisplayStyle(document: Document, name: str, coloredSurfaceSettings: AnalysisDisplayColoredSurfaceSettings, colorSettings: AnalysisDisplayColorSettings, legendSettings: AnalysisDisplayLegendSettings) -> AnalysisDisplayStyle: ...
    def GetElements(document: Document) -> ICollection: ...
    def FindByName(document: Document, name: str) -> ElementId: ...
    def SetName(self, name: str) -> None: ...
    def IsNameUnique(document: Document, name: str, excludedElement: AnalysisDisplayStyle) -> bool: ...
    def GetColorSettings(self) -> AnalysisDisplayColorSettings: ...
    def SetColorSettings(self, colorSettings: AnalysisDisplayColorSettings) -> None: ...
    def GetLegendSettings(self) -> AnalysisDisplayLegendSettings: ...
    def SetLegendSettings(self, legendSettings: AnalysisDisplayLegendSettings) -> None: ...
    def HasColoredSurfaceSettings(self) -> bool: ...
    def GetColoredSurfaceSettings(self) -> AnalysisDisplayColoredSurfaceSettings: ...
    def SetColoredSurfaceSettings(self, coloredSurfaceSettings: AnalysisDisplayColoredSurfaceSettings) -> None: ...
    def HasMarkersAndTextSettings(self) -> bool: ...
    def GetMarkersAndTextSettings(self) -> AnalysisDisplayMarkersAndTextSettings: ...
    def SetMarkersAndTextSettings(self, markersAndTextSettings: AnalysisDisplayMarkersAndTextSettings) -> None: ...
    def HasDiagramSettings(self) -> bool: ...
    def GetDiagramSettings(self) -> AnalysisDisplayDiagramSettings: ...
    def SetDiagramSettings(self, diagramSettings: AnalysisDisplayDiagramSettings) -> None: ...
    def HasVectorSettings(self) -> bool: ...
    def GetVectorSettings(self) -> AnalysisDisplayVectorSettings: ...
    def SetVectorSettings(self, vectorSettings: AnalysisDisplayVectorSettings) -> None: ...
    def HasDeformedShapeSettings(self) -> bool: ...
    def GetDeformedShapeSettings(self) -> AnalysisDisplayDeformedShapeSettings: ...
    def SetDeformedShapeSettings(self, deformedShapeSettings: AnalysisDisplayDeformedShapeSettings) -> None: ...
    def IsTextTypeIdValid(textTypeId: ElementId, doc: Document) -> bool: ...


class AnalysisResultSchema:
    @overload
    def __init__(self, name: str, description: str): ...
    @overload
    def __init__(self, other: AnalysisResultSchema): ...
    @property
    def Name(self) -> str: ...
    @Name.setter
    def Name(self, name: str) -> None: ...
    @property
    def Description(self) -> str: ...
    @Description.setter
    def Description(self, description: str) -> None: ...
    @property
    def AnalysisDisplayStyleId(self) -> ElementId: ...
    @AnalysisDisplayStyleId.setter
    def AnalysisDisplayStyleId(self, analysisDisplayStyleId: ElementId) -> None: ...
    @property
    def IsVisible(self) -> bool: ...
    @IsVisible.setter
    def IsVisible(self, isVisible: bool) -> None: ...
    @property
    def CurrentUnits(self) -> int: ...
    @CurrentUnits.setter
    def CurrentUnits(self, currentUnits: int) -> None: ...
    @property
    def Scale(self) -> float: ...
    @Scale.setter
    def Scale(self, scale: float) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def IsEqual(self, other: AnalysisResultSchema) -> bool: ...
    def SetUnits(self, names: List[str], multipliers: List[float]) -> None: ...
    def GetNumberOfUnits(self) -> int: ...
    def GetUnitsName(self, index: int) -> str: ...
    def GetUnitsMultiplier(self, index: int) -> float: ...
    def Dispose(self) -> None: ...


class AnalysisDisplayStyleColorSettingsType:
    GradientColor = 0
    SolidColorRanges = 1


class AnalysisDisplayStyleMarkerType:
    Circle = 0
    Square = 1
    Triangle = 2


class AnalysisDisplayStyleMarkerTextLabelType:
    ShowAll = 0
    ShowNone = 1
    ShowPredefined = 2


class AnalysisDisplayStyleDiagramFenceType:
    ShowAll = 0
    ShowNone = 1
    ShowPredefined = 2


class AnalysisDisplayStyleDiagramTextLabelType:
    ShowAll = 0
    ShowNone = 1
    ShowPredefined = 2


class AnalysisDisplayStyleVectorTextType:
    ShowAll = 0
    ShowNone = 1
    ShowPredefined = 2


class AnalysisDisplayStyleVectorArrowheadScale:
    NoScaling = 0
    Length5Percent = 1
    Length10Percent = 2
    Length15Percent = 3
    Length20Percent = 4
    NoArrow = 5


class AnalysisDisplayStyleVectorPosition:
    ToDataPoint = 0
    FromDataPoint = 1


class AnalysisDisplayStyleVectorOrientation:
    Linear = 0
    ArcAroundVectorAxis = 1


class AnalysisDisplayStyleDeformedShapeTextLabelType:
    ShowAll = 0
    ShowNone = 1
    ShowPredefined = 2


class BuildingEnvelopeAnalyzerOptions:
    def __init__(self): ...
    @property
    def AnalyzeEnclosedSpaceVolumes(self) -> bool: ...
    @AnalyzeEnclosedSpaceVolumes.setter
    def AnalyzeEnclosedSpaceVolumes(self, analyzeEnclosedSpaceVolumes: bool) -> None: ...
    @property
    def OptimizeGridCellSize(self) -> bool: ...
    @OptimizeGridCellSize.setter
    def OptimizeGridCellSize(self, optimizeGridCellSize: bool) -> None: ...
    @property
    def GridCellSize(self) -> float: ...
    @GridCellSize.setter
    def GridCellSize(self, gridCellSize: float) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class BuildingEnvelopeAnalyzer:
    @property
    def IsValidObject(self) -> bool: ...
    def Create(document: Document, options: BuildingEnvelopeAnalyzerOptions) -> BuildingEnvelopeAnalyzer: ...
    def GetBoundingElements(self) -> List[LinkElementId]: ...
    def GetBoundingElementsForSpaceVolume(self, spaceVolume: int) -> List[LinkElementId]: ...
    def GetCenterPointsForConnectedGridCellsInSpaceVolume(self, spaceVolume: int) -> List[XYZ]: ...
    def Dispose(self) -> None: ...


class ConceptualConstructionType(ElementType):
    @property
    def MaterialId(self) -> ElementId: ...
    @MaterialId.setter
    def MaterialId(self, materialId: ElementId) -> None: ...
    @property
    def MassSurfaceSubCategoryId(self) -> ElementId: ...
    def GetWallConstructionType(ccda: Document, typeEnum: ConceptualConstructionWallType) -> ElementId: ...
    def GetRoofConstructionType(ccda: Document, typeEnum: ConceptualConstructionRoofType) -> ElementId: ...
    def GetFloorOrSlabConstructionType(ccda: Document, typeEnum: ConceptualConstructionFloorSlabType) -> ElementId: ...
    def GetWindowOrSkylightConstructionType(ccda: Document, typeEnum: ConceptualConstructionWindowSkylightType) -> ElementId: ...
    def GetShadeConstructionType(ccda: Document, typeEnum: ConceptualConstructionShadeType) -> ElementId: ...
    def GetOpeningConstructionType(ccda: Document, typeEnum: ConceptualConstructionOpeningType) -> ElementId: ...
    def GetAllConceptualConstructionsForCategory(ccda: Document, massSubCategoryId: ElementId) -> ICollection: ...
    def IsValidConceptualConstructionId(ccda: Document, constructionTypeId: ElementId) -> bool: ...
    def IsValidSurfaceSubcategoryForConstruction(self, massSurfaceSubcategoryId: ElementId) -> bool: ...
    def IsValidConceptualConstructionIdForCategory(ccda: Document, constructionTypeId: ElementId, massSubcategoryId: ElementId) -> bool: ...
    def GetGBSId(self, massSurfaceSubCategoryId: ElementId) -> int: ...
    def IsValidSubcategoryForMassSurfaceDatas(massSubCategoryId: ElementId) -> bool: ...


class ConceptualSurfaceType(Element):
    @property
    def MassSubCategoryId(self) -> ElementId: ...
    @property
    def DefaultConstructionTypeId(self) -> ElementId: ...
    @DefaultConstructionTypeId.setter
    def DefaultConstructionTypeId(self, defaultConstructionTypeId: ElementId) -> None: ...
    def GetByMassSubCategoryId(cda: Document, massSubCategoryId: ElementId) -> ConceptualSurfaceType: ...
    def GetAllMassSubCategoryIds() -> List[ElementId]: ...
    def GetConstructionTypeIds(self) -> ICollection: ...


class ConceptualConstructionWallType:
    LightweightConstructionHighInsulation = 0
    LightweightConstructionTypicalColdClimateInsulation = 1
    LightweightConstructionTypicalMildClimateInsulation = 2
    LightweightConstructionLowInsulation = 3
    LightweightConstructionNoInsulationInterior = 4
    HighMassConstructionHighInsulation = 5
    HighMassConstructionTypicalColdClimateInsulation = 6
    HighMassConstructionTypicalMildClimateInsulation = 7
    HighMassConstructionNoInsulationInterior = 8
    NumWallTypeConstruction = 9
    InvalidExteriorWallTypeConstruction = -1


class ConceptualConstructionRoofType:
    HighInsulationCoolRoof = 0
    HighInsulationDarkRoof = 1
    TypicalInsulationCoolRoof = 2
    TypicalInsulationDarkRoof = 3
    LowInsulationCoolRoof = 4
    LowInsulationDarkRoof = 5
    NoInsulationDarkRoof = 6
    NumRoofTypeConstruction = 7
    InvalidRoofTypeConstruction = -1


class ConceptualConstructionFloorSlabType:
    LightweightConstructionHighInsulation = 0
    LightweightConstructionTypicalInsulation = 1
    LightweightConstructionLowInsulation = 2
    LightweightConstructionNoInsulationInterior = 3
    HighMassConstructionFrigidClimateSlabInsulation = 4
    HighMassConstructionColdClimateSlabInsulation = 5
    HighMassConstructionTypicalNoInsulation = 6
    NumFloorSlabTypeConstruction = 7
    InvalidFloorSlabTypeConstruction = -1


class ConceptualConstructionWindowSkylightType:
    SinglePaneClearNoCoating = 0
    SinglePaneTinted = 1
    SinglePaneReflective = 2
    DoublePaneClearNoCoating = 3
    DoublePaneTinted = 4
    DoublePaneReflective = 5
    DoublePaneClearLowEColdClimateHighSHGC = 6
    DoublePaneClearLowEHotClimateLowSHGC = 7
    DoublePaneClearHighestPerformanceLowEHighVisTransLowSHGC = 8
    TriplePaneClearLowEHotOrColdClimate = 9
    QuadPaneClearLowEHotOrColdClimate = 10
    NumWindowSkylightTypeConstruction = 11
    InvalidWindowSkylightTypeConstruction = -1


class ConceptualConstructionShadeType:
    BasicShade = 0
    NumShadeTypeConstruction = 1
    InvalidShadeTypeConstruction = -1


class ConceptualConstructionOpeningType:
    Air = 0
    NumOpeningTypeConstruction = 1
    InvalidOpeningTypeConstruction = -1


class ViewSystemsAnalysisReport(View):
    @property
    def SystemsAnalysisWorkflowFile(self) -> str: ...
    @property
    def WeatherFile(self) -> str: ...
    @property
    def SystemsAnalysisOutputFolder(self) -> str: ...
    @property
    def AnalysisDateAndTime(self) -> DateTime: ...
    def Create(document: Document, viewName: str) -> ViewSystemsAnalysisReport: ...
    def RequestSystemsAnalysis(self, options: SystemsAnalysisOptions) -> None: ...
    def GetLatestSystemsAnalysisReport(document: Document) -> ElementId: ...
    def IsAnalysisCompleted(self) -> bool: ...
    def GetReportContent(self) -> str: ...


class SystemsAnalysisOptions:
    def __init__(self): ...
    @property
    def WorkflowFile(self) -> str: ...
    @WorkflowFile.setter
    def WorkflowFile(self, fileName: str) -> None: ...
    @property
    def WeatherFile(self) -> str: ...
    @WeatherFile.setter
    def WeatherFile(self, fileName: str) -> None: ...
    @property
    def OutputFolder(self) -> str: ...
    @OutputFolder.setter
    def OutputFolder(self, pathName: str) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class MassGBXMLExportOptions:
    @overload
    def __init__(self, massZoneIds: List[ElementId]): ...
    @overload
    def __init__(self, massZoneIds: List[ElementId], massIds: List[ElementId]): ...
    @property
    def IsValidObject(self) -> bool: ...
    def GetMassIds(self) -> List[ElementId]: ...
    def GetMassZoneIds(self) -> List[ElementId]: ...
    def Dispose(self) -> None: ...


class EnergyAnalysisDetailModelOptions:
    def __init__(self): ...
    @property
    def EnergyModelType(self) -> EnergyModelType: ...
    @EnergyModelType.setter
    def EnergyModelType(self, energyModelType: EnergyModelType) -> None: ...
    @property
    def Tier(self) -> EnergyAnalysisDetailModelTier: ...
    @Tier.setter
    def Tier(self, tier: EnergyAnalysisDetailModelTier) -> None: ...
    @property
    def IncludeShadingSurfaces(self) -> bool: ...
    @IncludeShadingSurfaces.setter
    def IncludeShadingSurfaces(self, includeShadingSurfaces: bool) -> None: ...
    @property
    def SimplifyCurtainSystems(self) -> bool: ...
    @SimplifyCurtainSystems.setter
    def SimplifyCurtainSystems(self, simplifyCurtainSystems: bool) -> None: ...
    @property
    def ExportMullions(self) -> bool: ...
    @ExportMullions.setter
    def ExportMullions(self, exportMullions: bool) -> None: ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class EnergyAnalysisDetailModel(Element):
    @property
    def Tier(self) -> EnergyAnalysisDetailModelTier: ...
    @property
    def IncludeShadingSurfaces(self) -> bool: ...
    @property
    def SimplifyCurtainSystems(self) -> bool: ...
    @property
    def ExportMullions(self) -> bool: ...
    @property
    def BuildingTypeId(self) -> ElementId: ...
    @BuildingTypeId.setter
    def BuildingTypeId(self, buildingTypeId: ElementId) -> None: ...
    @property
    def ExportCategory(self) -> ElementId: ...
    @ExportCategory.setter
    def ExportCategory(self, exportCategory: ElementId) -> None: ...
    def Create(document: Document, options: EnergyAnalysisDetailModelOptions) -> EnergyAnalysisDetailModel: ...
    def GetMainEnergyAnalysisDetailModel(document: Document) -> EnergyAnalysisDetailModel: ...
    def GetAnalyticalSpaces(self) -> List[EnergyAnalysisSpace]: ...
    def GetAnalyticalSurfaces(self) -> List[EnergyAnalysisSurface]: ...
    def GetAnalyticalOpenings(self) -> List[EnergyAnalysisOpening]: ...
    def GetAnalyticalShadingSurfaces(self) -> List[EnergyAnalysisSurface]: ...
    def TransformModel(self) -> None: ...


class EnergyAnalysisOpening(Element):
    @property
    def Width(self) -> float: ...
    @property
    def Height(self) -> float: ...
    @property
    def Type(self) -> gbXMLOpeningType: ...
    @property
    def OpeningName(self) -> str: ...
    @property
    def CADObjectUniqueId(self) -> str: ...
    @property
    def CADLinkUniqueId(self) -> str: ...
    @property
    def OpeningType(self) -> EnergyAnalysisOpeningType: ...
    @property
    def Corner(self) -> XYZ: ...
    @property
    def OriginatingElementDescription(self) -> str: ...
    @property
    def OpeningId(self) -> str: ...
    def GetAnalyticalSurface(self) -> EnergyAnalysisSurface: ...
    def GetPolyloop(self) -> Polyloop: ...


class EnergyAnalysisSpace(Element):
    @property
    def Area(self) -> float: ...
    @property
    def AnalyticalVolume(self) -> float: ...
    @property
    def InnerVolume(self) -> float: ...
    @property
    def SpaceName(self) -> str: ...
    @property
    def Description(self) -> str: ...
    @property
    def ComposedName(self) -> str: ...
    @property
    def CADObjectUniqueId(self) -> str: ...
    def GetAnalyticalSurfaces(self) -> List[EnergyAnalysisSurface]: ...
    def GetClosedShell(self) -> List[Polyloop]: ...
    def GetBoundary(self) -> List[Polyloop]: ...


class EnergyAnalysisSurface(Element):
    @property
    def Width(self) -> float: ...
    @property
    def Height(self) -> float: ...
    @property
    def Azimuth(self) -> float: ...
    @property
    def Tilt(self) -> float: ...
    @property
    def Type(self) -> gbXMLSurfaceType: ...
    @property
    def SurfaceName(self) -> str: ...
    @property
    def CADObjectUniqueId(self) -> str: ...
    @property
    def CADLinkUniqueId(self) -> str: ...
    @property
    def OriginatingElementDescription(self) -> str: ...
    @property
    def SurfaceType(self) -> EnergyAnalysisSurfaceType: ...
    @property
    def Normal(self) -> XYZ: ...
    @property
    def Corner(self) -> XYZ: ...
    @property
    def SurfaceId(self) -> str: ...
    def GetAnalyticalSpace(self) -> EnergyAnalysisSpace: ...
    def GetAdjacentAnalyticalSpace(self) -> EnergyAnalysisSpace: ...
    def GetAnalyticalOpenings(self) -> List[EnergyAnalysisOpening]: ...
    def GetPolyloop(self) -> Polyloop: ...


class Polyloop:
    @property
    def Centroid(self) -> XYZ: ...
    @property
    def Direction(self) -> XYZ: ...
    @property
    def IsValidObject(self) -> bool: ...
    def ComputeArea(self) -> float: ...
    def GetPoints(self) -> List[XYZ]: ...
    def Dispose(self) -> None: ...


class EnergyDataSettings(Element):
    @property
    def SliverSpaceTolerance(self) -> float: ...
    @SliverSpaceTolerance.setter
    def SliverSpaceTolerance(self, sliverSpaceTolerance: float) -> None: ...
    @property
    def PercentageGlazing(self) -> float: ...
    @PercentageGlazing.setter
    def PercentageGlazing(self, percentageGlazing: float) -> None: ...
    @property
    def SillHeight(self) -> float: ...
    @SillHeight.setter
    def SillHeight(self, sillHeight: float) -> None: ...
    @property
    def ShadeDepth(self) -> float: ...
    @ShadeDepth.setter
    def ShadeDepth(self, shadeDepth: float) -> None: ...
    @property
    def PercentageSkylights(self) -> float: ...
    @PercentageSkylights.setter
    def PercentageSkylights(self, percentageSkylights: float) -> None: ...
    @property
    def SkylightWidth(self) -> float: ...
    @SkylightWidth.setter
    def SkylightWidth(self, skylightWidth: float) -> None: ...
    @property
    def OutsideAirPerPerson(self) -> float: ...
    @OutsideAirPerPerson.setter
    def OutsideAirPerPerson(self, outsideAirPerPerson: float) -> None: ...
    @property
    def OutsideAirPerArea(self) -> float: ...
    @OutsideAirPerArea.setter
    def OutsideAirPerArea(self, outsideAirPerArea: float) -> None: ...
    @property
    def OutsideAirChangesRatePerHour(self) -> float: ...
    @OutsideAirChangesRatePerHour.setter
    def OutsideAirChangesRatePerHour(self, outsideAirChangesRatePerHour: float) -> None: ...
    @property
    def ExportComplexity(self) -> gbXMLExportComplexity: ...
    @ExportComplexity.setter
    def ExportComplexity(self, exportComplexity: gbXMLExportComplexity) -> None: ...
    @property
    def BuildingConstructionClass(self) -> HVACLoadConstructionClass: ...
    @BuildingConstructionClass.setter
    def BuildingConstructionClass(self, buildingConstructionClass: HVACLoadConstructionClass) -> None: ...
    @property
    def ProjectReportType(self) -> HVACLoadLoadsReportType: ...
    @ProjectReportType.setter
    def ProjectReportType(self, projectReportType: HVACLoadLoadsReportType) -> None: ...
    @property
    def BuildingOperatingSchedule(self) -> gbXMLBuildingOperatingSchedule: ...
    @BuildingOperatingSchedule.setter
    def BuildingOperatingSchedule(self, buildingOperatingSchedule: gbXMLBuildingOperatingSchedule) -> None: ...
    @property
    def BuildingHVACSystem(self) -> gbXMLBuildingHVACSystem: ...
    @BuildingHVACSystem.setter
    def BuildingHVACSystem(self, buildingHVACSystem: gbXMLBuildingHVACSystem) -> None: ...
    @property
    def ExportCategory(self) -> ElementId: ...
    @ExportCategory.setter
    def ExportCategory(self, exportCategory: ElementId) -> None: ...
    @property
    def GroundPlane(self) -> ElementId: ...
    @GroundPlane.setter
    def GroundPlane(self, groundPlane: ElementId) -> None: ...
    @property
    def ProjectPhase(self) -> ElementId: ...
    @ProjectPhase.setter
    def ProjectPhase(self, projectPhase: ElementId) -> None: ...
    @property
    def AnalysisType(self) -> AnalysisMode: ...
    @AnalysisType.setter
    def AnalysisType(self, analysisType: AnalysisMode) -> None: ...
    @property
    def BuildingTypeId(self) -> ElementId: ...
    @BuildingTypeId.setter
    def BuildingTypeId(self, buildingTypeId: ElementId) -> None: ...
    @property
    def ServiceType(self) -> gbXMLServiceType: ...
    @ServiceType.setter
    def ServiceType(self, serviceType: gbXMLServiceType) -> None: ...
    @property
    def ExportDefaults(self) -> bool: ...
    @ExportDefaults.setter
    def ExportDefaults(self, exportDefaults: bool) -> None: ...
    @property
    def UseHeatingCredits(self) -> bool: ...
    @UseHeatingCredits.setter
    def UseHeatingCredits(self, useHeatingCredits: bool) -> None: ...
    @property
    def CreateAnalyticalModel(self) -> bool: ...
    @property
    def IsGlazingShaded(self) -> bool: ...
    @IsGlazingShaded.setter
    def IsGlazingShaded(self, isGlazingShaded: bool) -> None: ...
    @property
    def UseOutsideAirPerPerson(self) -> bool: ...
    @UseOutsideAirPerPerson.setter
    def UseOutsideAirPerPerson(self, useOutsideAirPerPerson: bool) -> None: ...
    @property
    def UseOutsideAirPerArea(self) -> bool: ...
    @UseOutsideAirPerArea.setter
    def UseOutsideAirPerArea(self, useOutsideAirPerArea: bool) -> None: ...
    @property
    def UseAirChangesPerHour(self) -> bool: ...
    @UseAirChangesPerHour.setter
    def UseAirChangesPerHour(self, useAirChangesPerHour: bool) -> None: ...
    @property
    def IncludeThermalProperties(self) -> bool: ...
    @IncludeThermalProperties.setter
    def IncludeThermalProperties(self, includeThermalProperties: bool) -> None: ...
    @property
    def BuildingEnvelopeDeterminationMethod(self) -> gbXMLExportBuildingEnvelope: ...
    @BuildingEnvelopeDeterminationMethod.setter
    def BuildingEnvelopeDeterminationMethod(self, buildingEnvelopeDeterminationMethod: gbXMLExportBuildingEnvelope) -> None: ...
    @property
    def AnalyticalGridCellSize(self) -> float: ...
    @AnalyticalGridCellSize.setter
    def AnalyticalGridCellSize(self, analyticalGridCellSize: float) -> None: ...
    @property
    def IsExportShadingSurfacesEnabled(self) -> bool: ...
    @property
    def IsExportSimplifiedCurtainSystemsEnabled(self) -> bool: ...
    @property
    def IsExportMullionsEnabled(self) -> bool: ...
    @property
    def CoreOffset(self) -> float: ...
    @CoreOffset.setter
    def CoreOffset(self, coreOffset: float) -> None: ...
    @property
    def BuildingType(self) -> gbXMLBuildingType: ...
    @BuildingType.setter
    def BuildingType(self, buildingType: gbXMLBuildingType) -> None: ...
    @property
    def EnergyModel(self) -> bool: ...
    @EnergyModel.setter
    def EnergyModel(self, energyModel: bool) -> None: ...
    @property
    def DividePerimeter(self) -> bool: ...
    @DividePerimeter.setter
    def DividePerimeter(self, dividePerimeter: bool) -> None: ...
    def GetFromDocument(cda: Document) -> EnergyDataSettings: ...
    def IsDocumentUsingEnergyDataAnalyticalModel(ccda: Document) -> bool: ...
    def CheckRangeOfSliverSpaceTolerance(silverSpaceTolerance: float) -> bool: ...
    def CheckRangeOfPercentageGlazing(percentageGlazing: float) -> bool: ...
    def CheckRangeOfSillHeight(sillHeight: float) -> bool: ...
    def CheckRangeOfShadeDepth(shadeDepth: float) -> bool: ...
    def CheckRangeOfPercentageSkylights(percentageSkylights: float) -> bool: ...
    def CheckRangeOfSkylightWidth(skylightWidth: float) -> bool: ...
    def CheckExportCategory(exportCategoryId: ElementId) -> bool: ...
    def CheckConstructionSetElement(self, constructionSetElementId: ElementId) -> bool: ...
    @overload
    def CheckGroundPlane(ccda: Document, groundPlaneId: ElementId) -> bool: ...
    @overload
    def CheckGroundPlane(self, groundPlaneId: ElementId) -> bool: ...
    def CheckProjectPhase(self, projectPhaseId: ElementId) -> bool: ...
    def CheckExportComplexity(exportComplexity: gbXMLExportComplexity) -> bool: ...
    def CheckBuildingConstructionClass(buildingConstructionClass: HVACLoadConstructionClass) -> bool: ...
    def CheckProjectReportType(projectReportType: HVACLoadLoadsReportType) -> bool: ...
    def CheckBuildingOperatingSchedule(buildingOperatingSchedule: gbXMLBuildingOperatingSchedule) -> bool: ...
    def CheckBuildingHVACSystem(buildingHVACSystem: gbXMLBuildingHVACSystem) -> bool: ...
    def CheckBuildingType(buildingType: gbXMLBuildingType) -> bool: ...
    def CheckServiceType(serviceType: gbXMLServiceType) -> bool: ...
    def CheckBuildingEnvelope(determinationMethod: gbXMLExportBuildingEnvelope) -> bool: ...
    def CheckAnalysisType(analysisType: AnalysisMode) -> bool: ...
    def EnableConceptualEnergyAnalyticalModel() -> bool: ...
    def GetBuildingConstructionSetElementId(ccda: Document) -> ElementId: ...
    def SetCreateAnalyticalModel(self, createAnalyticalModel: bool) -> None: ...


class AnalysisMode:
    BuildingElements = 0
    ConceptualMasses = 1
    ConceptualMassesAndBuildingElements = 2


class EnergyAnalysisDetailModelTier:
    NotComputed = 0
    FirstLevelBoundaries = 1
    SecondLevelBoundaries = 2
    Final = 3


class EnergyModelType:
    SpatialElement = 0
    BuildingElement = 1


class EnergyAnalysisOpeningType:
    Door = 0
    Window = 1
    Skylight = 2
    Air = 3


class EnergyAnalysisSurfaceType:
    Roof = 0
    ExteriorWall = 1
    InteriorWall = 2
    Ceiling = 3
    InteriorFloor = 4
    ExteriorFloor = 5
    Shading = 6
    Air = 7
    Underground = 8


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


class FieldDomainPointsByParameter(FieldDomainPoints):
    def __init__(self, points: List[float]): ...


class FieldDomainPointsByUV(FieldDomainPoints):
    @overload
    def __init__(self, points: List[UV], uCoordinates: ICollection, vCoordinates: ICollection): ...
    @overload
    def __init__(self, points: List[UV]): ...
    def SetGridCoordinates(self, uCoordinates: ICollection, vCoordinates: ICollection) -> None: ...


class FieldDomainPointsByXYZ(FieldDomainPoints):
    def __init__(self, points: List[XYZ]): ...


class ValueAtPoint(ValueAtPointBase):
    @overload
    def __init__(self, otherObject: ValueAtPoint): ...
    @overload
    def __init__(self, values: List[float]): ...


class VectorAtPoint(ValueAtPointBase):
    @overload
    def __init__(self, otherObject: VectorAtPoint): ...
    @overload
    def __init__(self, vectors: List[XYZ]): ...


class FieldValues:
    @overload
    def __init__(self, otherObject: FieldValues): ...
    @overload
    def __init__(self, vectorAtPoint: List[VectorAtPoint]): ...
    @overload
    def __init__(self, valueAtPoint: List[ValueAtPoint], unitDirection: XYZ): ...
    @overload
    def __init__(self, valueAtPoint: List[ValueAtPoint]): ...
    @property
    def IsValidObject(self) -> bool: ...
    def Dispose(self) -> None: ...


class GenericZone(Element):
    @property
    def LevelOffset(self) -> float: ...
    @LevelOffset.setter
    def LevelOffset(self, offset: float) -> None: ...
    def Create(doc: Document, name: str, domainData: GenericZoneDomainData, levelId: ElementId, curveLoops: List[CurveLoop]) -> GenericZone: ...
    def GetDomainData(self) -> GenericZoneDomainData: ...
    def GetBoundaries(self) -> List[CurveLoop]: ...


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


class PathOfTravelCalculationServerIds:
    @property
    def DefaultPathOfTravelCalculationGUID() -> Guid: ...


class PathOfTravelCalculationRequestType:
    CalculateForCorrespondingStartEndPairs = 0
    CalculateForAllPossibleStartEndPairs = 1
    CalculateFarthestPointsToMultipleDestinations = 2
    GetRevealObstaclesModeInView = 3
    SetRevealObstaclesModeInView = 4
    LockCache = 5
    UnlockCache = 6
    CalculateForPathsWithWaypoints = 7
    GetDistanceMapModeInView = 8
    SetDistanceMapModeInView = 9
    CalculateShortestPathsToMultipleDestinations = 10


class PathOfTravelCalculationStatus:
    Success = 0
    NoPathOfTravel = 1
    AreaTooLarge = 2
    SplitView = 3
    ResultAffectedByCrop = 4
    StartAndEndPointsTooClose = 5
    PointOutsideActiveCrop = 6
    TooMuchGeometry = 7
    RevealObstaclesModeFailureDataExist = 8
    RevealObstaclesModeFailureWireframe = 9
    TemporaryModeFailureDataExist = 10
    TemporaryModeFailureWireframe = 11


class MassEnergyAnalyticalModel(Element):
    @property
    def MassZoneCoreOffset(self) -> float: ...
    @MassZoneCoreOffset.setter
    def MassZoneCoreOffset(self, massZoneCoreOffset: float) -> None: ...
    @property
    def MassId(self) -> ElementId: ...
    def GetMassZoneIds(self) -> ICollection: ...
    def GetCoincidentEnergyAnalyticalModelFaceReference(document: Document, referenceToFace: Reference) -> Reference: ...
    def GetCoincidentMassZoneFaceReferences(document: Document, referenceToFace: Reference) -> List[Reference]: ...
    def GetMassSurfaceDataIdForReference(self, reference: Reference) -> ElementId: ...
    def GetMassEnergyAnalyticalModelIdForMassInstance(document: Document, massInstanceId: ElementId) -> ElementId: ...
    def GetValidSurfaceCategoryIdsForReference(self, reference: Reference) -> Tuple[List[ElementId], ElementId]: ...
    def GetJoinedMassEnergyAnalyticalModelElementIds(self) -> ICollection: ...
    def GetReferencesToAllFaces(self) -> List[Reference]: ...
    def GetReferencesToAllShadingFaces(self) -> List[Reference]: ...


class MassSurfaceData(Element):
    @property
    def Area(self) -> float: ...
    @property
    def PercentageGlazing(self) -> float: ...
    @PercentageGlazing.setter
    def PercentageGlazing(self, percentageGlazing: float) -> None: ...
    @property
    def ShadeDepth(self) -> float: ...
    @ShadeDepth.setter
    def ShadeDepth(self, shadeDepth: float) -> None: ...
    @property
    def SillHeight(self) -> float: ...
    @SillHeight.setter
    def SillHeight(self, sillHeight: float) -> None: ...
    @property
    def PercentageSkylights(self) -> float: ...
    @PercentageSkylights.setter
    def PercentageSkylights(self, percentageSkylights: float) -> None: ...
    @property
    def SkylightWidth(self) -> float: ...
    @SkylightWidth.setter
    def SkylightWidth(self, skylightWidth: float) -> None: ...
    @property
    def SurfaceDataSource(self) -> MassSurfaceDataSource: ...
    @SurfaceDataSource.setter
    def SurfaceDataSource(self, surfaceDataSource: MassSurfaceDataSource) -> None: ...
    @property
    def ConceptualConstructionId(self) -> ElementId: ...
    @ConceptualConstructionId.setter
    def ConceptualConstructionId(self, conceptualConstructionId: ElementId) -> None: ...
    @property
    def MassLevelDataId(self) -> ElementId: ...
    @property
    def MaterialId(self) -> ElementId: ...
    @MaterialId.setter
    def MaterialId(self, materialId: ElementId) -> None: ...
    @property
    def MaterialType(self) -> MassSurfaceDataMaterialType: ...
    @MaterialType.setter
    def MaterialType(self, materialType: MassSurfaceDataMaterialType) -> None: ...
    @property
    def IsConceptualConstructionByEnergyData(self) -> bool: ...
    @IsConceptualConstructionByEnergyData.setter
    def IsConceptualConstructionByEnergyData(self, IsConceptualConstructionByEnergyData: bool) -> None: ...
    @property
    def IsGlazingShaded(self) -> bool: ...
    @IsGlazingShaded.setter
    def IsGlazingShaded(self, isGlazingShaded: bool) -> None: ...
    @property
    def IsUnderground(self) -> bool: ...
    @IsUnderground.setter
    def IsUnderground(self, isUnderground: bool) -> None: ...
    @property
    def IsSlab(self) -> bool: ...
    @property
    def CategoryIdForConceptualSurfaceType(self) -> ElementId: ...
    @property
    def ReferenceElementId(self) -> ElementId: ...
    def GetFaceReferences(self) -> List[Reference]: ...


class MassLevelData(Element):
    @property
    def StrUsage(self) -> str: ...
    @StrUsage.setter
    def StrUsage(self, strUsage: str) -> None: ...
    @property
    def NVolume(self) -> float: ...
    @property
    def NExteriorSurfaceArea(self) -> float: ...
    @property
    def NLevelFafArea(self) -> float: ...
    @property
    def NLevelPerimeter(self) -> float: ...
    @property
    def MaterialType(self) -> MassSurfaceDataMaterialType: ...
    @MaterialType.setter
    def MaterialType(self, materialType: MassSurfaceDataMaterialType) -> None: ...
    @property
    def OwningMassId(self) -> ElementId: ...
    @property
    def MaterialId(self) -> ElementId: ...
    @MaterialId.setter
    def MaterialId(self, materialId: ElementId) -> None: ...
    @property
    def ConceptualConstructionId(self) -> ElementId: ...
    @ConceptualConstructionId.setter
    def ConceptualConstructionId(self, conceptualConstructionId: ElementId) -> None: ...
    @property
    def ConceptualConstructionIsByEnergyData(self) -> bool: ...
    @ConceptualConstructionIsByEnergyData.setter
    def ConceptualConstructionIsByEnergyData(self, conceptualConstructionIsByEnergyData: bool) -> None: ...
    def IsEmpty(self) -> bool: ...
    def IsMassFamilyInstance(document: Document, id: ElementId) -> bool: ...
    def IsValidConceptualConstructionTypeElement(self, id: ElementId) -> bool: ...


class MassZone(Element):
    @property
    def Volume(self) -> float: ...
    @property
    def FloorArea(self) -> float: ...
    @property
    def LowerLevelId(self) -> ElementId: ...
    @property
    def UpperLevelId(self) -> ElementId: ...
    @property
    def MaterialId(self) -> ElementId: ...
    @MaterialId.setter
    def MaterialId(self, materialId: ElementId) -> None: ...
    @property
    def MaterialType(self) -> MassZoneMaterialType: ...
    @MaterialType.setter
    def MaterialType(self, materialType: MassZoneMaterialType) -> None: ...
    @property
    def IsZoneOccupiable(self) -> bool: ...
    @property
    def MassEnergyAnalyticalModelId(self) -> ElementId: ...
    @property
    def CutByLowerLevel(self) -> MassZoneLevelCutState: ...
    @property
    def CutByUpperLevel(self) -> MassZoneLevelCutState: ...
    @property
    def ConditionType(self) -> gbXMLConditionType: ...
    @ConditionType.setter
    def ConditionType(self, conditionType: gbXMLConditionType) -> None: ...
    @property
    def SpaceType(self) -> gbXMLSpaceType: ...
    @SpaceType.setter
    def SpaceType(self, spaceType: gbXMLSpaceType) -> None: ...
    @property
    def SpaceTypeId(self) -> ElementId: ...
    @SpaceTypeId.setter
    def SpaceTypeId(self, spaceType: ElementId) -> None: ...
    def IsEmpty(self) -> bool: ...
    def GetEquivalentReferenceFromMassOrLevel(self, referenceToZoneFace: Reference) -> Reference: ...
    def GetCoincidentReferenceFromAdjacentZone(self, referenceToZoneFace: Reference) -> Reference: ...
    def GetReferencesToEnergyAnalysisFaces(self) -> List[Reference]: ...
    def GetMassDataElementIdForZoneFaceReference(self, referenceOfZone: Reference) -> ElementId: ...


class MassSurfaceDataSource:
    EnergyData = 0
    Surface = 1
    Invalid = -1


class MassSurfaceDataMaterialType:
    NormalMaterial = 0
    MaterialByConstruction = -2


class MassZoneMaterialType:
    NormalMaterial = 0
    MaterialBySurfaceType = -2


class MassZoneLevelCutState:
    NotCut = 0
    Cut = 1
    NotCutButCoincident = 2


class PathOfTravel(Element):
    @property
    def PathMidpoint(self) -> XYZ: ...
    @property
    def PathStart(self) -> XYZ: ...
    @PathStart.setter
    def PathStart(self, pathStart: XYZ) -> None: ...
    @property
    def PathEnd(self) -> XYZ: ...
    @PathEnd.setter
    def PathEnd(self, pathEnd: XYZ) -> None: ...
    @property
    def LineStyle(self) -> ElementId: ...
    @LineStyle.setter
    def LineStyle(self, lineStyle: ElementId) -> None: ...
    @overload
    def Create(DBView: View, pathStart: XYZ, pathEnd: XYZ) -> PathOfTravel: ...
    @overload
    def Create(DBView: View, pathStart: XYZ, pathEnd: XYZ) -> Tuple[PathOfTravel, PathOfTravelCalculationStatus]: ...
    @overload
    def CreateMultiple(DBView: View, pathStarts: List[XYZ], pathEnds: List[XYZ]) -> Tuple[List[PathOfTravel], List[PathOfTravelCalculationStatus]]: ...
    @overload
    def CreateMultiple(DBView: View, pathStarts: List[XYZ], pathEnds: List[XYZ]) -> List[PathOfTravel]: ...
    @overload
    def CreateMapped(DBView: View, pathStarts: List[XYZ], pathEnds: List[XYZ]) -> List[PathOfTravel]: ...
    @overload
    def CreateMapped(DBView: View, pathStarts: List[XYZ], pathEnds: List[XYZ]) -> Tuple[List[PathOfTravel], List[PathOfTravelCalculationStatus]]: ...
    def FindStartsOfLongestPathsFromRooms(DBView: View, destinationPoints: List[XYZ]) -> List[XYZ]: ...
    def FindEndsOfShortestPaths(DBView: View, destinationPoints: List[XYZ], startPoints: List[XYZ]) -> List[XYZ]: ...
    def FindShortestPaths(DBView: View, destinationPoints: List[XYZ], startPoints: List[XYZ]) -> List[XYZ]: ...
    def Update(self) -> PathOfTravelCalculationStatus: ...
    @overload
    def UpdateMultiple(adoc: Document, elementsToUpdate: List[ElementId]) -> Tuple[int, List[PathOfTravelCalculationStatus]]: ...
    @overload
    def UpdateMultiple(adoc: Document, elementsToUpdate: List[ElementId]) -> int: ...
    def GetCurves(self) -> List[Curve]: ...
    def GetWaypoints(self) -> List[XYZ]: ...
    def InsertWaypoint(self, waypoint: XYZ, index: int) -> None: ...
    def SetWaypoint(self, waypoint: XYZ, index: int) -> None: ...
    def RemoveWaypoint(self, index: int) -> None: ...
    def IsInRevealObstaclesMode(DBView: View) -> bool: ...
    def SetRevealObstaclesMode(DBView: View, newState: bool) -> PathOfTravelCalculationStatus: ...


class RouteAnalysisSettings(Element):
    @property
    def EnableIgnoredCategoryIds(self) -> bool: ...
    @EnableIgnoredCategoryIds.setter
    def EnableIgnoredCategoryIds(self, enableIgnoredCategoryIds: bool) -> None: ...
    @property
    def IgnoreImports(self) -> bool: ...
    @IgnoreImports.setter
    def IgnoreImports(self, ignoreImports: bool) -> None: ...
    @property
    def AnalysisZoneBottomOffset(self) -> float: ...
    @AnalysisZoneBottomOffset.setter
    def AnalysisZoneBottomOffset(self, bottomOffset: float) -> None: ...
    @property
    def AnalysisZoneTopOffset(self) -> float: ...
    @AnalysisZoneTopOffset.setter
    def AnalysisZoneTopOffset(self, topOffset: float) -> None: ...
    @property
    def MinimumLength(self) -> float: ...
    def GetRouteAnalysisSettings(cda: Document) -> RouteAnalysisSettings: ...
    def GetIgnoredCategoryIds(self) -> ICollection: ...
    def GetExcludedCategoryIds(self) -> ICollection: ...
    def SetIgnoredCategoryIds(self, categoryIds: ICollection) -> None: ...
    def IsLargeGeometryAllowed(self) -> bool: ...


class AllowLargeGeometry:
    DisAllow = 0
    Allow = 1
    Prompt = 2


class SpatialFieldManager(Element):
    @property
    def AllowInteractiveSettings(self) -> bool: ...
    @AllowInteractiveSettings.setter
    def AllowInteractiveSettings(self, allowInteractiveSettings: bool) -> None: ...
    @property
    def NumberOfMeasurements(self) -> int: ...
    @property
    def LegendPosition(self) -> XYZ: ...
    @LegendPosition.setter
    def LegendPosition(self, newLegendPosition: XYZ) -> None: ...
    @property
    def CurrentMeasurement(self) -> int: ...
    @CurrentMeasurement.setter
    def CurrentMeasurement(self, measurement: int) -> None: ...
    @property
    def UseRangeForAllMeasurements(self) -> bool: ...
    @UseRangeForAllMeasurements.setter
    def UseRangeForAllMeasurements(self, useRangeForAllMeasurements: bool) -> None: ...
    @property
    def ResultsVisibleInView(self) -> bool: ...
    @ResultsVisibleInView.setter
    def ResultsVisibleInView(self, bResultsVisibleInView: bool) -> None: ...
    @property
    def LegendTextTypeId(self) -> ElementId: ...
    @LegendTextTypeId.setter
    def LegendTextTypeId(self, legendTextTypeId: ElementId) -> None: ...
    @property
    def LegendShowConfigurationName(self) -> bool: ...
    @LegendShowConfigurationName.setter
    def LegendShowConfigurationName(self, legendShowConfigurationName: bool) -> None: ...
    @property
    def LegendShowDescription(self) -> bool: ...
    @LegendShowDescription.setter
    def LegendShowDescription(self, legendShowDescription: bool) -> None: ...
    def CreateSpatialFieldManager(view: View, numberOfMeasurements: int) -> SpatialFieldManager: ...
    def GetSpatialFieldManager(view: View) -> SpatialFieldManager: ...
    @overload
    def AddSpatialFieldPrimitive(self, curve: Curve, trf: Transform) -> int: ...
    @overload
    def AddSpatialFieldPrimitive(self, face: Face, trf: Transform) -> int: ...
    @overload
    def AddSpatialFieldPrimitive(self, reference: Reference, hidingMode: SpatialFieldPrimitiveHideMode) -> int: ...
    @overload
    def AddSpatialFieldPrimitive(self, reference: Reference) -> int: ...
    @overload
    def AddSpatialFieldPrimitive(self) -> int: ...
    def RemoveSpatialFieldPrimitive(self, idx: int) -> None: ...
    def UpdateSpatialFieldPrimitive(self, idx: int, fieldDomainPoints: FieldDomainPoints, fieldValues: FieldValues, resultIndex: int) -> None: ...
    def Clear(self) -> None: ...
    def GetLegend(self) -> AnalysisDisplayLegend: ...
    def GetMinimum(self, resultIndex: int, rawValue: bool) -> float: ...
    def GetMaximum(self, resultIndex: int, rawValue: bool) -> float: ...
    def SetMeasurementNames(self, measurementNames: List[str]) -> None: ...
    def SetMeasurementDescriptions(self, measurementDescriptions: List[str]) -> None: ...
    def IsResultSchemaNameUnique(self, name: str, resultIndexToSkip: int) -> bool: ...
    def RegisterResult(self, resultSchema: AnalysisResultSchema) -> int: ...
    def GetResultSchema(self, idx: int) -> AnalysisResultSchema: ...
    def SetResultSchema(self, idx: int, resultSchema: AnalysisResultSchema) -> None: ...
    def GetRegisteredResults(self) -> List[int]: ...
    def IsTextTypeIdValid(textTypeId: ElementId, doc: Document) -> bool: ...


class SpatialFieldPrimitiveHideMode:
    Default = 0
    HideNone = 1
    HideOnlyReference = 2
    HideWholeElement = 3
