Translating unstructured data into a structured form significantly improves the efficiency of various processes: it simplifies data processing (Fig. 4.1-1, Fig. 4.1-2) and speeds up the validation process by making the requirements clear and transparent, as we have already discussed in the previous chapters. Similarly, translating CAD data (BIM) into a structured open form (Fig. 4.1-12, Fig. 4.1-13) facilitates the attribute grouping process and the QTO process.
The QTO attribute table is structured, so when using structured CAD data, we work with a single data model (Fig. 5.2-5), which eliminates the need to convert and translate project data models and grouping rules to a common denominator. This allows us to group data by one or more attributes with just one line of code. In contrast, in open BIM and closed BIM, where data is stored in semi-structured, parametric or closed formats, processing requires dozens or even hundreds of lines of code, and the use of the API to interact with geometry and attribute information.
- Example of grouping a QTO structured project by one attribute. Text query in any LLM chat room (ChatGPT, LlaMa, Mistral DeepSeek, Grok, Claude, QWEN or any other):
I have CAD -project as DataFrame – please filter the project data to get items with “Type” parameter containing only “Type 1 value. ⏎
![]() |
Thanks to the simple structure of the two-dimensional DataFrame we do not need to explain the LLM schema and data model, which shortens the interpretation steps and speeds up the creation of final solutions. Previously, writing even simple code required learning programming languages, but now modern language models (LLMs) allow us to automatically translate process logic into code when working with structured data using text queries.
LLM automation and language models can completely eliminate the need for professionals working with CAD (BIM) data grouping and processing from having to learn programming languages or BIM tools by providing the ability to solve problems with text-based queries.
The same query – grouping all project elements from the “walls” category and calculating volumes for each type (Fig. 5.2-5) – which in a CAD environment (BIM) requires 17 clicks in the interface or writing 40 lines of code, in open data processing tools (e.g. SQL or Pandas) looks like a simple and intuitive query:
With a single line in Pandas:
df[df[‘Category’].isin([‘OST_Walls’])].groupby(‘Type’)[‘Volume’].sum()
Code decoding: take from df (DataFrame) the elements, which attribute-column “Category”, has values “OST_Walls”, group all obtained elements by attribute-column “Type” and summarize for the obtained group of elements attribute “Volume”.
Grouping a structured design retrieved from CAD using SQL:
SELECT Type, SUM(Volume) AS TotalVolume
FROM elements
WHERE Category = ‘OST_Walls’
GROUP BY Type;
With the help of LLM we can write a grouping request to the project database as a simple text reference – a prompt (Fig. 5.2-7):
For the project dataframe, group the items by the ‘Type’ parameter, but only for items with the ‘Category’ parameter equal to ‘OST_Walls’ or ‘OST_Columns’ and please summarize the column parameter ‘Volume’ for the resulting ⏎

Obtaining QTO from CAD data using LLM tools (ChatGPT, LLaMa, Mistral, Claude, DeepSeek, QWEN, Grok), dramatically changes traditional methods of extracting attribute information, quantitative and volumetric data for individual objects and groups of objects.
Now even project managers, costing or logistics specialists who do not have a deep knowledge of design and do not have specialized CAD software – (BIM-) vendors, having access to the CAD database can get the total volume of elements of the category of walls or other objects in seconds, simply by writing or dictating a query.
In text queries (Fig. 5.2-8) the LLM agent of the model processes the user’s request to apply a certain function to one or more parameters – columns of the table. As a result, the user in communication with the LLM receives either a new column-parameter with new values, or one specific value after grouping

If it is necessary to retrieve quantities for only one group of elements, it is sufficient to perform a simple QTO query (Fig. 5.2-7) on the CAD model data. However, when calculating a budget or estimate for an entire project consisting of many groups of elements, it is often necessary to extract quantities for all types of elements (classes0, where each category of elements is processed separately – with grouping by appropriate attributes.
In the practice of estimators and appraisers, individual grouping and calculation rules are used for different types of objects. For example, windows are usually grouped by floors or zones (grouping parameter – attribute Level, Rooms), and walls – by material or construction type (parameter Material, Type). To automate the grouping process, such rules are described in advance in in the form of grouping rule tables. These tables act as configuration templates that define which attributes should be used in calculations for each group of elements in the project.