--- title: "system.bacnet.writeRawMultiple" description: "This function is the bulk version of system.bacnet.writeRaw by writing properties to objects provided equal-length lists of object types, object instance numbers, property IDs, values, priorities, and property array indices." --- # system.bacnet.writeRawMultiple > This function is the bulk version of system.bacnet.writeRaw by writing properties to objects provided equal-length lists of object types, object instance numbers, property IDs, values, priorities, and property array indices. This function is used in **Python Scripting**. ## Description This function is the bulk version of [system.bacnet.writeRaw](appendix\scripting-functions\system-bacnet\system-bacnet-writeRaw.md) by writing properties to objects provided equal-length lists of object types, object instance numbers, property IDs, values, priorities, and property array indices. The system.bacnet.writeRawMultiple() function will accept Encodable values on the value parameter. :::note To use this function, the [BACnet](ignition-modules\opc-ua\opc-ua-drivers\bacnet\bacnet.md) driver must be installed. ::: :::caution Please use caution when interacting directly with any BACnet device, as writing to an object may have unintended consequences and could result in data loss. ::: ## Client Permission Restrictions This scripting function has no [Client Permission](ignition-modules\vision\vision-project-properties\vision-project-properties.md#vision-permissions-properties) restrictions. ## Syntax `system.bacnet.writeRawMultiple(deviceName, objectTypes, objectIds, propertyIds, values, [priorities], [propertyArrayIndices])` ### Parameters Type | Parameter | Description ------- | ------- | ------- String | `deviceName` | Name of the configured BACnet/IP device instance to write from. ObjectType | `objectTypes` | A list of ObjectType(s) for the object instance being written to. Integer | `objectIds` | A list of object instance numbers to write to. PropertyIdentifier | `propertyIds` | A list of PropertyIdentifier(s) for the object instances being written to. Object | `values` | A list of values to write. Integer | `priorities` [optional] | An optional list of priority levels to use when writing to commandable properties. All elements must be in the range [1..16]. Defaults to 8 for all properties when this parameter is omitted. Integer | `propertyArrayIndices` [optional] | An optional list of array indices corresponding to array properties being written. None should be specified as an element when writing to the entire array property or if the property is not an array. Defaults to a list of None when this parameter is omitted. ### Returns No return value. ### Scope Gateway ## References ### objectType Reference Values for the **objectType** parameter that can be referenced at system.bacnet.enumerated.ObjectType.* ```python title="objectType reference" analogInput analogOutput analogValue binaryInput binaryOutput binaryValue calendar command device eventEnrollment file group loop multiStateInput multiStateOutput notificationClass program schedule averaging multiStateValue trendLog lifeSafetyPoint lifeSafetyZone accumulator pulseConverter eventLog globalGroup trendLogMultiple loadControl structuredView accessDoor timer accessCredential accessPoint accessRights accessUser accessZone credentialDataInput networkSecurity bitstringValue characterstringValue datePatternValue dateValue datetimePatternValue datetimeValue integerValue largeAnalogValue octetstringValue positiveIntegerValue timePatternValue timeValue notificationForwarder alertEnrollment channel lightingOutput binaryLightingOutput networkPort elevatorGroup escalator lift ``` ### propertyId Reference Values for the **propertyId** parameter that can be referenced at system.bacnet.enumerated.PropertyIdentifier.* ```python title="propertyId reference" ackedTransitions ackRequired action actionText activeText activeVtSessions alarmValue alarmValues all allWritesSuccessful apduSegmentTimeout apduTimeout applicationSoftwareVersion archive bias changeOfStateCount changeOfStateTime notificationClass controlledVariableReference controlledVariableUnits controlledVariableValue covIncrement dateList daylightSavingsStatus deadband derivativeConstant derivativeConstantUnits description descriptionOfHalt deviceAddressBinding deviceType effectivePeriod elapsedActiveTime errorLimit eventEnable eventState eventType exceptionSchedule faultValues feedbackValue fileAccessMethod fileSize fileType firmwareRevision highLimit inactiveText inProcess instanceOf integralConstant integralConstantUnits limitEnable listOfGroupMembers listOfObjectPropertyReferences localDate localTime location lowLimit manipulatedVariableReference maximumOutput maxApduLengthAccepted maxInfoFrames maxMaster maxPresValue minimumOffTime minimumOnTime minimumOutput minPresValue modelName modificationDate notifyType numberOfApduRetries numberOfStates objectIdentifier objectList objectName objectPropertyReference objectType optional outOfService outputUnits eventParameters polarity presentValue priority priorityArray priorityForWriting processIdentifier programChange programLocation programState proportionalConstant proportionalConstantUnits protocolObjectTypesSupported protocolServicesSupported protocolVersion readOnly reasonForHalt recipientList reliability relinquishDefault required resolution segmentationSupported setpoint setpointReference stateText statusFlags systemStatus timeDelay timeOfActiveTimeReset timeOfStateCountReset timeSynchronizationRecipients units updateInterval utcOffset vendorIdentifier vendorName vtClassesSupported weeklySchedule attemptedSamples averageValue bufferSize clientCovIncrement covResubscriptionInterval eventTimeStamps logBuffer logDeviceObjectProperty enable logInterval maximumValue minimumValue notificationThreshold protocolRevision recordsSinceNotification recordCount startTime stopTime stopWhenFull totalRecordCount validSamples windowInterval windowSamples maximumValueTimestamp minimumValueTimestamp varianceValue activeCovSubscriptions backupFailureTimeout configurationFiles databaseRevision directReading lastRestoreTime maintenanceRequired memberOf mode operationExpected setting silenced trackingValue zoneMembers lifeSafetyAlarmValues maxSegmentsAccepted profileName autoSlaveDiscovery manualSlaveAddressBinding slaveAddressBinding slaveProxyEnable lastNotifyRecord scheduleDefault acceptedModes adjustValue count countBeforeChange countChangeTime covPeriod inputReference limitMonitoringInterval loggingObject loggingRecord prescale pulseRate scale scaleFactor updateTime valueBeforeChange valueSet valueChangeTime alignIntervals intervalOffset lastRestartReason loggingType restartNotificationRecipients timeOfDeviceRestart timeSynchronizationInterval trigger utcTimeSynchronizationRecipients nodeSubtype nodeType structuredObjectList subordinateAnnotations subordinateList actualShedLevel dutyWindow expectedShedLevel fullDutyBaseline requestedShedLevel shedDuration shedLevelDescriptions shedLevels stateDescription doorAlarmState doorExtendedPulseTime doorMembers doorOpenTooLongTime doorPulseTime doorStatus doorUnlockDelayTime lockStatus maskedAlarmValues securedStatus absenteeLimit accessAlarmEvents accessDoors accessEvent accessEventAuthenticationFactor accessEventCredential accessEventTime accessTransactionEvents accompaniment accompanimentTime activationTime activeAuthenticationPolicy assignedAccessRights authenticationFactors authenticationPolicyList authenticationPolicyNames authenticationStatus authorizationMode belongsTo credentialDisable credentialStatus credentials credentialsInZone daysRemaining entryPoints exitPoints expirationTime extendedTimeEnable failedAttemptEvents failedAttempts failedAttemptsTime lastAccessEvent lastAccessPoint lastCredentialAdded lastCredentialAddedTime lastCredentialRemoved lastCredentialRemovedTime lastUseTime lockout lockoutRelinquishTime maxFailedAttempts members musterPoint negativeAccessRules numberOfAuthenticationPolicies occupancyCount occupancyCountAdjust occupancyCountEnable occupancyLowerLimit occupancyLowerLimitEnforced occupancyState occupancyUpperLimit occupancyUpperLimitEnforced passbackMode passbackTimeout positiveAccessRules reasonForDisable supportedFormats supportedFormatClasses threatAuthority threatLevel traceFlag transactionNotificationClass userExternalIdentifier userInformationReference userName userType usesRemaining zoneFrom zoneTo accessEventTag globalIdentifier verificationTime baseDeviceSecurityPolicy distributionKeyRevision doNotHide keySets lastKeyServer networkAccessSecurityPolicies packetReorderTime securityPduTimeout securityTimeWindow supportedSecurityAlgorithms updateKeySetTimeout backupAndRestoreState backupPreparationTime restoreCompletionTime restorePreparationTime bitMask bitText isUtc groupMembers groupMemberNames memberStatusFlags requestedUpdateInterval covuPeriod covuRecipients eventMessageTexts eventMessageTextsConfig eventDetectionEnable eventAlgorithmInhibit eventAlgorithmInhibitRef timeDelayNormal reliabilityEvaluationInhibit faultParameters faultType localForwardingOnly processIdentifierFilter subscribedRecipients portFilter authorizationExemptions allowGroupDelayInhibit channelNumber controlGroups executionDelay lastPriority writeStatus propertyList serialNumber blinkWarnEnable defaultFadeTime defaultRampRate defaultStepIncrement egressTime inProgress instantaneousPower lightingCommand lightingCommandDefaultPriority maxActualValue minActualValue power transition egressActive interfaceValue faultHighLimit faultLowLimit lowDiffLimit strikeCount timeOfStrikeCountReset defaultTimeout initialTimeout lastStateChange stateChangeValues timerRunning timerState apduLength ipAddress ipDefaultGateway ipDhcpEnable ipDhcpLeaseTime ipDhcpLeaseTimeRemaining ipDhcpServer ipDnsServer bacnetIpGlobalAddress bacnetIpMode bacnetIpMulticastAddress bacnetIpNatTraversal ipSubnetMask bacnetIpUdpPort bbmdAcceptFdRegistrations bbmdBroadcastDistributionTable bbmdForeignDeviceTable changesPending command fdBbmdAddress fdSubscriptionLifetime linkSpeed linkSpeeds linkSpeedAutonegotiate macAddress networkInterfaceName networkNumber networkNumberQuality networkType routingTable virtualMacAddressTable commandTimeArray currentCommandPriority lastCommandTime valueSource valueSourceArray bacnetIpv6Mode ipv6Address ipv6PrefixLength bacnetIpv6UdpPort ipv6DefaultGateway bacnetIpv6MulticastAddress ipv6DnsServer ipv6AutoAddressingEnable ipv6DhcpLeaseTime ipv6DhcpLeaseTimeRemaining ipv6DhcpServer ipv6ZoneIndex assignedLandingCalls carAssignedDirection carDoorCommand carDoorStatus carDoorText carDoorZone carDriveStatus carLoad carLoadUnits carMode carMovingDirection carPosition elevatorGroup energyMeter energyMeterRef escalatorMode faultSignals floorText groupId groupMode higherDeck installationId landingCalls landingCallControl landingDoorStatus lowerDeck machineRoomId makingCarCall nextStoppingFloor operationDirection passengerAlarm powerMode registeredCarCall activeCovMultipleSubscriptions protocolLevel referencePort deployedProfileLocation profileLocation tags subordinateNodeTypes subordinateTags subordinateRelationships defaultSubordinateRelationship represents ``` ### Enums Reference Enum objects which can be referenced at system.bacnet.enums.* ```python title="Enums reference" DayOfWeek MaxApduLength MaxSegments Month ``` ## Code Examples ```python title="Writing with an Enumerated Property" ### Writing with an enumerated property ### Note you can reference the id (int) or name (string) from system.bacnet.enumerated import DoorAlarmState ot1 = system.bacnet.enumerated.ObjectType.accessDoor pid1 = system.bacnet.enumerated.PropertyIdentifier.maskedAlarmValues ``` ```python title="Writing with Property Array Indices" from system.bacnet.constructed import NameValue from system.bacnet.primitive import UnsignedInteger ot1 = system.bacnet.enumerated.ObjectType.integerValue pid1 = system.bacnet.enumerated.PropertyIdentifier.tags v1 = NameValue('I am', UnsignedInteger(0)) v2 = NameValue('writing', UnsignedInteger(0)) v3 = NameValue('values', UnsignedInteger(0)) system.bacnet.writeRawMultiple( deviceName="bacnet_device_2", objectTypes= [ot1, ot1, ot1], objectIds= [1, 1, 1], propertyIds= [pid1, pid1, pid1], values= [v1, v2, v3], propertyArrayIndices= [1, 2, 3]) ```