Revision Table¶
Revision Tables record the changes that have been made to a drawing. Knowledge of the Revision Table can be useful in many situations: e.g., to ensure that a supplier is always processing the latest version of a drawing, or to ensure that mistakes that have been made in the past are not being repeated. WERK24 allows you to access the content in an easy and structured way.
Table Structure¶
Revision Tables are standardized by ISO and ANSI. The content of both formats are very similar and summarized in the following:
Serial¶
Serial Number typically starts at "A" and progresses through the alphabet. Sometimes this field is also referred to as "Revision Id", "Position", "Index" or similar.
ECN Number¶
Number of the Engineering Change Note (also: Engineering Change Order) to identify the change across multiple documents and systems. Engineering Changes are typically managed by a dedicated software package. The presence of an ECN Number typically indicates that the drafting company has sophisticated engineering processes in place.
Description¶
Description of the change. This is a free text field.
Revision Date¶
Date on which the revision was accepted. The format of these dates is not standardized. Some drawings even show different date formats on the same revision table (e.g., 01Aug08 and 01022021). WERK24 uses all the available information to convert the different date formats to ISO 8601 (example: 2008-08-01, 2021-02-01).
Drafter¶
The person that owns the revision is typically indicated in an individual column. To comply with the data privacy rules, we are not returning this information.
Grid Squares¶
On large drawings, it can be difficult to quickly find the change indicator on the drawing. The grid squares (sometimes called zones) simplify the search.
Models¶
The data models are defined in the following models:
- Requesting the RevisionTable: W24AskVariantRevisionTable
- Receiving the RevisionTable: W24AskVariantRevisionTableResponse
- Processing the RevisionTables: W24RevisionTable
Extracted information can be accessed from the W24RevisionTable
Model.
W24RevisionTable¶
Revision Table object that contains all the rows
Attributes: rows (List[W24RevisionTableRow]): List of all rows in the revision table
Properties¶
-
rows
(array) -
Items: Refer to #/definitions/W24RevisionTableRow.
Definitions¶
-
W24Date
(object): Date object
Attributes: blurb: Date in ISO 8601 format
date: Python date object; this will automatically be interpreted when the object is loaded. -
blurb
(string) -
date
(string) -
W24GridSquare
(object): Grid Square
Attributes: column (str): Column of the Grid Square
row (str): Row of the Grid Square. -
column
(string) -
row
(string) -
W24RevisionTableRow
(object): Row of a revision table
Attributes: serial (Optional[str]): Serial number, also referred to as Index or Position of the row in the revision table. The serial number is typicall used to identify the revision on each individual sheet (e.g., A, B, C or 01, 02, 03)
ecn_number (Optional[str]): Identifier of the Engineering Change Note to uniquely identify the change across multiple documents. This is typically a long number and sometimes identifies a revision process that affect multiple parts.
description (str): Description of the change
revision_date (Optional[date]): Date of the revision
grid_squares: (List[W24GridSquare]): List of the grid squares that are affected by the revision. -
serial
(string) -
ecn_number
(string) -
description
(string) -
revision_date
: Refer to #/definitions/W24Date. -
grid_squares
(array)- Items: Refer to #/definitions/W24GridSquare.
Requesting the Revision Table¶
from werk24 import Hook, W24AskRevisionTable, W24AskRevisionTableResponse
from werk24.models.techread import W24TechreadMessage
from werk24.utils import w24_read_sync
# define a function to read a file and return it as bytes
from . import get_drawing_bytes
def recv_revision_table(message: W24TechreadMessage) -> None:
""" Print the Rows of the Revision Table when receiving it
"""
if not message.is_successful:
print("Exceptions occurred: {message.exceptions}")
return
revision_table = W24AskRevisionTableResponse.parse_obj(
message.payload_dict)
for row in revision_table.rows:
print(row)
if __name__ == "__main__":
# get your drawing bytes from a file or buffer
drawing_bytes = get_drawing_bytes()
# define what information you want to receive from the API
# and what shall be done when the info is available.
hooks = [Hook(ask=W24AskRevisionTable(), function=recv_revision_table)]
# submit the request to the Werk24 API
w24_read_sync(drawing_bytes, hooks)
Example Response¶
{
"variant_id": "585b4002-6371-4e49-8d2c-3a0f3c0a66e8",
"sectional_id": "0aa77b6f-18c0-4671-af78-6cdf8b0fb173",
"revision_table":{
"rows":[
{
"serial":"A",
"ecn_number": "ECN-0001",
"description": "First Issued",
"revision_date": {
"blurb": "2021-09-12",
"date": "2021-09-12",
},
grid_squares=[]
},
{
"serial":"B",
"ecn_number": "ECN-0201",
"description": "Material Changed",
"revision_date": {
"blurb": "2021-10-22",
"date": "2021-10-22",
},
grid_squares=[]
}
]
}
}