When any new structure is built it is important to build it strong enough to be safe to use. In some parts of the world the owner of the structures is responsible for the safety and in other parts you need a formal certification from a structural engineer who is authorized by the local government. The engineers assess the structure and summarize their findings in an engineering report which is referenced by the local government when they are allowing the construction of the structure.
Engineers use a variety of softwares to make their assessment of the structure and the reports frequently contain copy-pasted text and screenshots from the various programs because it is the quickest way to compile the report. Functional, but not particularly elegant.
In Shapemaker we wanted to generate engineering reports with programming. We wanted them to be elegant, consistent and contain all the data you need to understand the details of the assessment made. It turned out to be a pretty challenging task to develop a report generator with enough flexibility to do what we wanted it to do.
Some of the requirements we took into consideration:
- Different types of structures require different information
- Different engineering standards and annexes require different information
- Local authorities sometimes require the report in their local language
- Different companies have different preferences for presentation
- Different users have different reasons for generating reports
In our tech we now have a multi-step process to create the report and data is flowing in from many different directions. We receive the output from the engineering assessment as raw data along with a list of desired sections to include in the report from the user. In our data transformer we load pre-made LaTeX-templates for the chapters and create a viewmodel class by extracting the relevant data from the engineering assessment output. These two data sets, the templates and the viewmodels, are then fed into a template engine which helps us insert the data into the templates correctly. The output from the template engine is a complete LaTeX definition used to generate the report in PDF format.
This setup gives us a pretty impressive set of features to play with. We can create reports with the same layout for different types of structures, replacing only the parts where the information is not overlapping. We can create multiple representations and combinations of the same data to show in reports geared for different users. Users can choose to add sections, remove them or reorder them. Language definitions are fed into the template engine, enabling us to translate any part of the report to any language without touching any code.
Additionally the choice of LaTeX as the underlying technology has the benefit of being able to include both custom imagery such as tower design drawings and engineering formulas on standardized formats. Since everything happens programmatically any changes to engineering results from the application can immediately be reflected in the reports.
What are your experiences with engineering reports? Reach out and let us know! firstname.lastname@example.org