    

 ## On this page

  

 

 # ExportDesigns Class Reference

 Last update: 16.07.2025 

A struct collecting export information for various design directories. [More...](class_export_designs.xhtml#details)

## <a name="pub-methods"></a>Public Member Functions

 [check](class_export_designs.xhtml#a47c34ec1e578c2ce27cf1c5fcd0d1704) ([Structure](class_structure.xhtml) [database](group__data.xhtml#gaebcac3a2836ec9fdf2e47bd812994b6b)) Checks validity of these data. [More...](#a47c34ec1e578c2ce27cf1c5fcd0d1704)  
  [ExportDesigns](class_export_designs.xhtml#a1d83964912947e55b024670d445ad3cb) ([Structure](class_structure.xhtml) [database](group__data.xhtml#gaebcac3a2836ec9fdf2e47bd812994b6b), [ExportReferenceDesign](class_export_reference_design.xhtml) [reference\_design](class_export_designs.xhtml#acf3a932aa2f8b555c1a254385c014629)) Initializes defaults and starts a first filesystem scan. ( [Structure](class_structure.xhtml "The central data structure for SoS. ") ) [More...](#a1d83964912947e55b024670d445ad3cb)  
 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) [getDesignNumbers](class_export_designs.xhtml#a34c4b23f216aeb33d79984bca8041ea4) () Generates a list of all design sample numbers. [More...](#a34c4b23f216aeb33d79984bca8041ea4)  
 string [getDesignNumbersString](class_export_designs.xhtml#a91d115ad2f6b884384893cb38c794ea7) () generates the defined design range intervals as a string [More...](#a91d115ad2f6b884384893cb38c794ea7)  
 [DataObjectContainer::string\_vector\_type](class_data_object_container.xhtml#ac293ea0e5c280f69a497ea20f20c60b9) [getDesignPathNames](class_export_designs.xhtml#abec8ff4bd28cc81e9c577b482291b498) () generates a list of all design directory path names () [More...](#abec8ff4bd28cc81e9c577b482291b498)  
  [modifyDesigns](class_export_designs.xhtml#a5d80a037916c72d23fc49fe1f2283bdc) ([Structure](class_structure.xhtml) [database](group__data.xhtml#gaebcac3a2836ec9fdf2e47bd812994b6b)) Exports multiple designs to disk. [More...](#a5d80a037916c72d23fc49fe1f2283bdc)  
  [scanDesignRanges](class_export_designs.xhtml#adc841662c22b0ecc5a2bfe47da762121) ([Structure](class_structure.xhtml) [database](group__data.xhtml#gaebcac3a2836ec9fdf2e47bd812994b6b)) Scans the base path for design directories. ( [Structure](class_structure.xhtml "The central data structure for SoS. ") ) [More...](#adc841662c22b0ecc5a2bfe47da762121)  
  [setDesignNumbers](class_export_designs.xhtml#a2c914c9ef85b4d3a481ed5e3b56da7f1) (string design\_ranges) Sets the design number intervals given as string The method calls [unifyDesignNumbers()](class_export_designs.xhtml#ad011ce88ed992315a48040de3edbf675 "Unifies the design numbers This method ensures that each design number appears at most once in the de..."); to ensure uniqueness of the defined design numbers. () [More...](#a2c914c9ef85b4d3a481ed5e3b56da7f1)  
  [unifyDesignNumbers](class_export_designs.xhtml#ad011ce88ed992315a48040de3edbf675) () Unifies the design numbers This method ensures that each design number appears at most once in the design interval definition. () [More...](#ad011ce88ed992315a48040de3edbf675)  
 ## <a name="pub-attribs"></a>Public Attributes

string [base\_path](class_export_designs.xhtml#a1be53c8e392d898f99ddc804ff403c84) Base path (absolute path) [More...](#a1be53c8e392d898f99ddc804ff403c84)  
 string [design\_name\_format](class_export_designs.xhtml#aa25e23bc102293eb390ebd22691c1a90) Format string for identifying design directories. [More...](#aa25e23bc102293eb390ebd22691c1a90)  
 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) [ranges\_from](class_export_designs.xhtml#a845f0717e285151b07a57d047b4dd84e) Defines ranges of the design directories, specifically the left interval boundaries. [More...](#a845f0717e285151b07a57d047b4dd84e)  
 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) [ranges\_to](class_export_designs.xhtml#ac1cd6c172f196f452af5d57b7299b471) Defines ranges of the design directories, specifically the right interval boundaries. [More...](#ac1cd6c172f196f452af5d57b7299b471)  
 [ExportReferenceDesign](class_export_reference_design.xhtml) [reference\_design](class_export_designs.xhtml#acf3a932aa2f8b555c1a254385c014629) Stores the information on the reference design/design template (defines which data to be imported) [More...](#acf3a932aa2f8b555c1a254385c014629)  
 <a id="details" name="details"></a>## Detailed Description

A struct collecting export information for various design directories.



## Constructor &amp; Destructor Documentation

<a id="a1d83964912947e55b024670d445ad3cb"></a>## [◆ ](#a1d83964912947e55b024670d445ad3cb)ExportDesigns()

 [ExportDesigns](class_export_designs.xhtml)  ( [Structure](class_structure.xhtml)  *database*,    [ExportReferenceDesign](class_export_reference_design.xhtml)  *reference\_design*   ) 

Initializes defaults and starts a first filesystem scan. ( [Structure](class_structure.xhtml "The central data structure for SoS. ") )

At first, the constructor tries to generate a suiteable base path and design template string:

- Usually, the [ReferenceDesign](class_reference_design.xhtml "defines information on imported data and files given a reference design ") object will contain at least one file to be imported. If this is the case, its completed file path will be analyzed using the #DesignPath object. At best, this analysis will return a reliable [base\_path](class_export_designs.xhtml#a1be53c8e392d898f99ddc804ff403c84 "Base path (absolute path) ") as well as [design\_name\_format](class_export_designs.xhtml#aa25e23bc102293eb390ebd22691c1a90 "Format string for identifying design directories. ").
- Otherwise the [ReferenceDesign::base\_path](class_reference_design.xhtml#a1be53c8e392d898f99ddc804ff403c84 "Specifies the base path. Must be changed only via setBasePath()! ") of reference\_design given will be separated. Its parent path will be re-used as [base\_path](class_export_designs.xhtml#a1be53c8e392d898f99ddc804ff403c84 "Base path (absolute path) ") and the other part as [design\_name\_format](class_export_designs.xhtml#aa25e23bc102293eb390ebd22691c1a90 "Format string for identifying design directories. ") Afterwards, [ImportDesigns::scanDesignRanges()](class_import_designs.xhtml#a54f34c64e9326398eaaf5cdcb8127e08 "Scans the base path for design directories. ") will be called automatically and the first design range number re-used as start design ident. Otherise, the design ranges remain empty and the [ImportDesigns::start\_design\_number](class_import_designs.xhtml#a72dfcf1d918d2b4c2eaa79e34becc576 "Associates the start design number to the specified design ranges. ") will be initialized to one.

Parameters reference\_designThe reference design object ( [Structure](class_structure.xhtml "The central data structure for SoS. ") ) databaseThe database were all data is stored 



## Member Function Documentation

<a id="a47c34ec1e578c2ce27cf1c5fcd0d1704"></a>## [◆ ](#a47c34ec1e578c2ce27cf1c5fcd0d1704)check()

 check  ( [Structure](class_structure.xhtml)  *database*) 

Checks validity of these data.

- If any of the specified directories, design IDs or files does not exist, an exception is thrown
- It also checks the validity of the reference design
- It further checks if any of the objects to be exported does not exist.

Parameters databaseThe data base where all the data is stored 



<a id="a34c4b23f216aeb33d79984bca8041ea4"></a>## [◆ ](#a34c4b23f216aeb33d79984bca8041ea4)getDesignNumbers()

 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) getDesignNumbers  ( ) 

Generates a list of all design sample numbers.

ReturnsA vector of integer numbers where each number represents the design identifier used in the SoS database. The vector indices correspond to the vector of [ImportDesigns::getDesignPathNames](class_import_designs.xhtml#abec8ff4bd28cc81e9c577b482291b498 "generates a list of all design directory path names ") 



<a id="a91d115ad2f6b884384893cb38c794ea7"></a>## [◆ ](#a91d115ad2f6b884384893cb38c794ea7)getDesignNumbersString()

 string getDesignNumbersString  ( ) 

generates the defined design range intervals as a string

Returnsthe design range string, eg. "1-4;6-10;12;15-20" 



<a id="abec8ff4bd28cc81e9c577b482291b498"></a>## [◆ ](#abec8ff4bd28cc81e9c577b482291b498)getDesignPathNames()

 [DataObjectContainer::string\_vector\_type](class_data_object_container.xhtml#ac293ea0e5c280f69a497ea20f20c60b9) getDesignPathNames  ( ) 

generates a list of all design directory path names ()

ReturnsA vector of strings where each string represents the design path name. Each path name is a valid directory name (already includes the base\_path). () 



<a id="a5d80a037916c72d23fc49fe1f2283bdc"></a>## [◆ ](#a5d80a037916c72d23fc49fe1f2283bdc)modifyDesigns()

 modifyDesigns  ( [Structure](class_structure.xhtml)  *database*) 

Exports multiple designs to disk.

This method tries to export as much data as possible and does even proceed in case of errors. Important: the design directories to be exported to must already exist.

Parameters databaseThe data base where all data is contained. 



<a id="adc841662c22b0ecc5a2bfe47da762121"></a>## [◆ ](#adc841662c22b0ecc5a2bfe47da762121)scanDesignRanges()

 scanDesignRanges  ( [Structure](class_structure.xhtml)  *database*) 

Scans the base path for design directories. ( [Structure](class_structure.xhtml "The central data structure for SoS. ") )

Depending on the currently storred information (base path, design name properties, defined files in the reference design) the design directories are determined and the ranges of the indicies are stored in ranges\_from and ranges\_to. Only design directories are accepted which contain ALL of the files being contained in the reference path! ( [Structure](class_structure.xhtml "The central data structure for SoS. ") ) Furthermore, only those design numbers are accepted for which all objects to be exported exist in the database.

Parameters databaseThe database where all data are stored 



<a id="a2c914c9ef85b4d3a481ed5e3b56da7f1"></a>## [◆ ](#a2c914c9ef85b4d3a481ed5e3b56da7f1)setDesignNumbers()

 setDesignNumbers  ( string  *design\_ranges*) 

Sets the design number intervals given as string The method calls [unifyDesignNumbers()](class_export_designs.xhtml#ad011ce88ed992315a48040de3edbf675 "Unifies the design numbers This method ensures that each design number appears at most once in the de..."); to ensure uniqueness of the defined design numbers. ()

Parameters design\_rangesThe string to be interpreted, must be of format "1-4;12;15-20;" or "1-4" or "1" or "". Exceptions anexception If the string can not be interpreted. In this case, the definition is not changed. () 



<a id="ad011ce88ed992315a48040de3edbf675"></a>## [◆ ](#ad011ce88ed992315a48040de3edbf675)unifyDesignNumbers()

 unifyDesignNumbers  ( ) 

Unifies the design numbers This method ensures that each design number appears at most once in the design interval definition. ()

()





## Member Data Documentation

<a id="a1be53c8e392d898f99ddc804ff403c84"></a>## [◆ ](#a1be53c8e392d898f99ddc804ff403c84)base\_path

 string base\_path

Base path (absolute path)





<a id="aa25e23bc102293eb390ebd22691c1a90"></a>## [◆ ](#aa25e23bc102293eb390ebd22691c1a90)design\_name\_format

 string design\_name\_format

Format string for identifying design directories.

Format strings shall be defined as [Perl Regular Expressions](http://www.boost.org/doc/libs/1_59_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html) including one sub-expression which defines the design ID, eg.

Design_?(\d+)$



 which matches the string Design, followed by one or no underscore and a sub-expression of one or more digits until the end of the string. The digit group will be used as unique design number within the database. Other examples might be

Design_?(\d\d)$



 which expects exactly 2 digits, or

first/.*/Design_?(\d{1,5})/dp\d{2}/mech$



 which matches the directory 'first' relative to *base\_path*, any of its subdirectories, a Design directory consisting of one or 5 digits (zero should be avoided as internal design numbers must be generated in that case), an ANSYS dp subdirectory composed of the dp string followed by exactly 2 digits and as last acceptable subdirectory the string mech. For further common pittfalls - like the maximum sub directory level - refer to DesignScanner::filter ( string )





<a id="a845f0717e285151b07a57d047b4dd84e"></a>## [◆ ](#a845f0717e285151b07a57d047b4dd84e)ranges\_from

 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) ranges\_from

Defines ranges of the design directories, specifically the left interval boundaries.





<a id="ac1cd6c172f196f452af5d57b7299b471"></a>## [◆ ](#ac1cd6c172f196f452af5d57b7299b471)ranges\_to

 [TUIntVector](group__data.xhtml#ga2a154410171578b305471e89715c7d93) ranges\_to

Defines ranges of the design directories, specifically the right interval boundaries.

Must have the same dimensions as #ImportDesings::ranges\_from





<a id="acf3a932aa2f8b555c1a254385c014629"></a>## [◆ ](#acf3a932aa2f8b555c1a254385c014629)reference\_design

 [ExportReferenceDesign](class_export_reference_design.xhtml) reference\_design

Stores the information on the reference design/design template (defines which data to be imported)