Logo

Getting Started

  • Technical Overview
  • File Formats
  • Supported Platforms
  • Evaluating HOOPS Access
  • Set Up Your Environment

Tutorials

  • A First Program
  • Print Table of Contents
  • File-to-File Translation
  • Read and Print Model Data
  • Read and Print Results Data
  • Use a Custom Reader

Programming Guide

  • HOOPS Solve, Access & Mesh Distribution
    • 3rd Party Packages
    • Directory Structure
    • Versioning
  • Programming Overview
    • HOOPS Access Modules
    • Include Files and Data Types
    • Floating Point Precision
    • Language Bindings
    • Major Version Migration
  • Fundamentals
    • Native vs External Libraries
    • Module Categories
    • Library Device Components
    • Supported Library Devices
    • Data Functions and Interprocess Communication
    • Library Management
    • Typical Workflow for Reading FEA Data
    • Best Practices
    • Example Code
  • Dataset Specification and Management
    • Dataset Specification Syntax
      • Dataset Name (dataset_name)
      • Numeric Identifiers (:id1:id2:id3)
      • Dataset Specification Expansion
      • Wildcards
      • Numeric Identifier Ranges
      • Highest and Lowest Identifiers
      • Combining Wildcards and Ranges
    • Dataset Parameters and Attributes
      • Dataset Parameters
      • Supported Data Types (ntyp)
      • Dataset Attributes
    • Data Structures
      • Rectangular Array
      • Element Face/Edge Variation
      • Variable Row Array
    • Dataset Formats
      • Node Array (.N)
      • Element Array (.E)
      • Element Node Array (.EL)
      • Element Integration Point Array (.EIP)
      • Element Face/Edge Arrays (.EF, .EE, .EFN, .EEN)
      • Degree of Freedom (.D)
      • Mode Format (.MOD)
      • Particle Format (.PCL)
      • Contact Pair Format (.CPR)
      • Panel Format (.PNL)
      • Table Format (.T)
      • Table Variable Row (.TL)
      • Library Dataset (.L)
      • Complex Result Datasets
    • Finite Element Model Dataset Names and Descriptions
      • Model Datasets
        • COLORID.E / COLORID.N
        • COLORMAP.T
        • CSYS.T
        • CSYS.TYPE.T
        • CSYS.ID.T
        • DOF.CID.N
        • EID.E
        • ELEM.NODE.EL
        • ELEM.SHAP.E
        • ELEM.MIJK.E
        • ELEM.SPEC.E
        • ELEM.TYPE.E
        • ELEM.TYPE.EXT.E
        • ELEM.TYPE.HOL.E
        • ERS.CID.E
        • ERS.VEC.E
        • INDX.* Datasets
        • MID.E
        • NID.N
        • NORMAL.N
        • PARAMETER.HOL.T
        • PARAMETER.IJK.T
        • PARAMETER.INT.T
        • PARTID.E / PARTID.N
        • PID.E
        • SET.ELEM.T:id
        • SET.ELEM.EDGE.T:id
        • SET.ELEM.FACE.T:id
        • SET.NODE.T:id
        • X.N
    • Finite Element Result Dataset Names and Descriptions
      • Dataset Naming Conventions
      • Result Dataset Attributes
      • Result Types and Conventions
      • Physical Dimensions
      • Specific Result Types
        • Notes
        • Specific Qualifier Types
        • Specific Valued Qualifier Types
    • Finite Element Results at Section Points
      • Dataset Attributes
      • Link.Section Dataset
      • Supported Layer Position Types
      • Link.Layers Dataset
      • Supported Layer Position Types (subset)
    • Finite Element Results at System Degrees of Freedom
      • Attributes
      • Example
    • Finite Element Results History Datasets
      • Key Characteristics
      • Additional Required Datasets
      • Example
      • Data Layout
      • Subset Indices
      • Step Numbers
      • Component Flags
    • Monitor Functions
      • Monitoring Progress
      • Defining Monitor Functions
    • Multiple Domains
      • Querying the Number of Domains
      • Opening Domains
      • Example: OpenFOAM Interface
      • Example: Opening Domains Individually or Collectively
  • Visualization Objects
    • Computational Cells
      • Edge and Face Numbering
      • Physical and Natural Coordinates
    • Element Types
    • Element Coordinate Systems
    • Mathematical Data Types
    • Complex Numbers
    • Attribute Objects, Data Interpolation, Isovalue Clipping and Topology
  • Data Provider Framework
    • Introduction
    • Programming Guide
      • Getting Started
      • Creating a DataProviderPlugin
      • Using Data Providers in HOOPS Access
    • Change Log
  • Examples
    • Access: Examples
      • Example 1, List Datasets on a Library Device
      • Example 2, Read and Print Model Data
      • Example 3, Read and Print Results State Data
      • Example 3a, Read and Print Results History Data
      • Example 3b, Read and Print Remeshing Results
      • Example 3c, Read and Print Results History Summary
      • Example 3d, Read and Print Reduced Matrix Data
      • Example 3e, Read and Print Particle Data
      • Example 3f, Read and Print Modal and Panel Contribution Results
      • Example 4, Export all Datasets
      • Example 5, Open and Append Files
      • Example 5a, Open Files Without Model Data
      • Example 6, Read and Print Finite Element Model in Fluent Form
      • Example 7, Read and Write Input Decks
      • Example 8, Remotely Access Any File Format
      • Example 8a, Remotely Writing a Model in Native Vdm Format
      • Example 9, Read and Transform Stress/Strain State Data
      • Example 10, Using a Monitor Function
      • Example 11, Reading Multiple Domains
      • Example 12, Load Model and Results and Save to Native File
      • Example 13, Save Model Using MemLib
      • Example 14, Use a custom plugin reader through PluginManager and LMan
      • Example 14a, Use the vtk-plugin reader through PluginManager and LMan
    • Foundation: Examples
      • Example 1, Demonstration of Object Collections
      • Example 2, Demonstration of Numeric Type Collections
      • Example 3, Demonstration of Property Sets
      • Example 4, Demonstration of Random Number Generation
      • Example 5, Creating a Derived Class in C++ Using a Base Random Class
      • Example 6, Install User Error Handler and Memory Management
      • Example 7, Test and Demonstrate Concatenated Storage
      • Example 8, Test and Demonstrate a Data Table
      • Example 9, Test and Demonstrate a PQueue Object
      • Example 9a, Test and Demonstrate a Heap Object
      • Example 10, Test and Demonstrate a TriCon Object
      • Example 11, Test and Demonstrate a VertLoc Object
      • Example 12, Test and Demonstrate a LineCon Object
      • Example 13, Test and Demonstrate a Timer Object
      • Example 14, Test and Demonstrate the MachInfo Module
      • Example 15, Test and Demonstrate a PTask Object
      • Example 16, Test and Demonstrate Text Processing and Formatting
      • Example 17, Test and Demonstrate the LinkList object
      • Example 18, Test and Demonstrate the ADTree object
      • Example 22, Test and Demonstrate the VSocket object
      • Example 23, Test and Demonstrate Quadruple Precision VQuad
      • Example 23cc, C++ Operator Overloading for Quadruple Precision VQuad
      • Example 24, Test and Demonstrate Tree
      • Example 25, Test and Demonstrate Pred
      • Example 26, Test and Demonstrate StrUtil
    • Global: Examples
      • Example 21, Translate Entity Identifiers Using IdTran
      • Example 22, Generate an Element Group Object
      • Example 23, Element Connectivity and Adjacency using Connect
      • Example 23a, Using a GridFun Object with Example 23.
      • Example 24, Generate Element Face and Edge Groups
      • Example 24a, Convert Linear Elements to Parabolic Elements
      • Example 25, Node Results Data Using State
      • Example 25a, Node History Results Data Using History
      • Example 25b, Element Node Scalar Section Results Using History
      • Example 25c, Element Face and Face Node Results Using State
      • Example 26, Element and Node Results Data
      • Example 26a, Element Face Node Data Using ElemDat
      • Example 26b, Element Face Node Normals Using ElemDat
      • Example 26c, Averaging Element Node Data within Groups
      • Example 26d, Computing Gradient of Normal Stress
      • Example 27, Perform Space Searches Using Space
      • Example 27a, Intersection and Interpolation
      • Example 28, Perform Range Searches Using Range
      • Example 29, Node and Element Associations
      • Example 31, Perform Element Checking Using ElemChk.
      • Example 31a, Compute Model Mass Properties Using MassPrp
      • Example 32, Manage Loads Using LCase
      • Example 32a, Manage Contact Pairs Using CPair
      • Example 32b, Manage Analytic Surfaces using ASurf
      • Example 32c, Manage Complex Loads Using LCase
      • Example 33, Manage Constraints Using RCase and MCase
      • Example 33a, Manage Initial Conditions Using ICase
      • Example 33b, Manage Complex Constraints Using RCase
      • Example 34, Manage Element Properties Using EProp
      • Example 34a, Composite Shell and General Beam Property Using EProp
      • Example 35, Manage Material Properties Using MProp
      • Example 36, Manage Solution Properties Using SProp
      • Example 37, Manage Tabular Functions Using TCurve
      • Example 38, Manage Results Properties Using RProp
      • Example 38avdm, Export Simple Finite Element Model and Results
      • Example 38bvdm, Export Simple CFD Finite Element Model and Results
      • Example 38cvdm, Export Simple Finite Element Model and Results with WriterFun
      • Example 39, Export a Simple Linear Static Solveable Model
      • Example 39a, Structural Finite Element Model Using Model
      • Example 39b, Traverse and Print Contents of a Model Object
      • Example 39c, Heat Transfer Finite Element Model Using Model
      • Example 40vdm, Compute Shell and Beam Local Coordinate Systems
      • Example 53, Manage System Degree of Freedom Data Using RedMat
      • Example 55, Computational Features of Edge, Face, Cell
      • Example 56, Using Units
      • Example 57, Compress and Uncompress Coordinate Field with ZState
      • Example 58vdm, Compress and Uncompress Results with ZState

API Reference

  • Access Modules
    • Module Index
    • Library Device Components - Library, Dataset, Attribute
      • Maintain Library Information - Library
        • Function Descriptions
      • Maintain Dataset Information - Dataset
        • Function Descriptions
      • Maintain Attribute Information - Attribute
        • Function Descriptions
    • Data Functions - DataFun, Options - Options, Settings - Settings
      • Data Functions - DataFun
        • Library Control
        • Query
        • Read Datasets
        • Function Descriptions
      • Options - Options
        • Function Descriptions
      • Settings - Settings
        • Function Descriptions
    • Data Function Filters, Interprocess Communication - DataIPC
      • Function Descriptions
    • Library Device Interfaces - *Fil, *Lib
      • SDRC/IDEAS Universal File - SDRCLib
        • Writing SDRC/IDEAS Universal Files
        • Function Descriptions
      • ABAQUS Input File - ABAFil
        • Function Descriptions
        • Writing ABAQUS input files
      • ABAQUS .fil and .odb File Output - ABALib
        • Writing ABAQUS .fil data files
        • ABAQUS .odb Output Data Base
        • Function Descriptions
      • Adams files - AdamsLib
        • Function Descriptions
      • AFLR (Mississippi State) Grid File - AFLRFil
        • Function Descriptions
      • ANSYS Input File - ANSFil
        • Writing ANSYS Input Files
        • Function Descriptions
      • ANSYS .rst, .rth, .rmg, .rfl Results Files - ANSLib
        • Function Descriptions
      • ANSYS AUTODYN results files - AUTODYNLib
        • Function Descriptions
      • CFX results file - CFXLib
        • Function Descriptions
      • CGNS data base - CGNSVLib
        • Function Descriptions
      • COMSOL MPH and Sectionwise file - COMSOLLib
        • Function Descriptions
      • LSTC LS-DYNA input file - D3DFil
        • Function Descriptions
      • LSTC LS-DYNA State and Time History Databases - D3DLib
        • Function Descriptions
      • ANSYS Data Processing Framework .rst, .rth, .rmg and .rfl Results Files - DPFLib
        • Function Descriptions
      • EnSight Casefile format - EnSightLib
        • Function Descriptions
      • FEMAP Neutral File - FEMAPLib
        • Function Descriptions
      • FIDAP Neutral File - FDILib
        • Function Descriptions
      • FLUENT Case and Data File - FLUENTLib
        • Function Descriptions
      • General Mesh Viewer File Format - GMVLib
        • Function Descriptions
      • Altair Engineering HyperMesh ASCII File - HMAFil
        • Function Descriptions
      • Altair Engineering H3D File - H3DLib
        • Function Descriptions
      • MSC/Marc Post File - MarcLib
        • Function Descriptions
      • Memory object - MemLib
        • Function Descriptions
      • MSC/NASTRAN bulk data input file - NASFil
        • Function Descriptions
        • Writing NASTRAN Input Files
      • NASTRAN OUTPUT2, .xdb and .h5 data files - NASLib
        • Function Descriptions
        • Writing NASTRAN OUTPUT2 data files
      • Native file - NatLib
        • Function Descriptions
      • OBJ file - OBJFil
        • Function Descriptions
      • OpenFOAM database - OpenFOAMLib
        • Function Descriptions
      • Patran Neutral model and results file - PatLib
        • Function Descriptions
      • ESI/PAM-CRASH DAISY and ERF file - PAMLib
        • Function Descriptions
      • PERMAS result file - PERMASLib
        • Function Descriptions
      • NASA/PLOT3D grid, solution and function files - PLOT3DLib
        • Function Descriptions
      • Interface to the Data Provider Framework - PluginLib
        • Function Descriptions
      • POLYFLOW data base - POLYFLOWLib
        • Function Descriptions
      • Writing PTC/Mechanica FEM Neutral Format - RASFil
        • Function Descriptions
      • PTC/Mechanica Design Study - RASLib
        • Function Descriptions
      • SAMCEF des file - SAMCEFLib
        • Function Descriptions
      • STAR-CCM data base - STARCCMLib
        • Function Descriptions
      • 3D Systems/STL ASCII text and binary file - STLFil
        • Function Descriptions
      • Tecplot file format - TecplotLib
        • Function Descriptions
      • Vtk Legacy and Vtu File Format - VTKLib
        • Function Descriptions
    • Library Manager - LMan
      • Function Descriptions
    • Unrecognized Data - UnrecognizedData
      • Function Descriptions
    • Plugin Manager, Plugin Settings - PluginManager , PluginSetting
      • Plugin Manager - PluginManager
        • Function Descriptions
      • Plugin Settings - PluginSetting
        • Function Descriptions
    • Data Provider Plugins
      • Introduction
      • Plugins
        • OpenFOAM Plugin
        • VTK Plugin
    • Writer Components - Writer, WriterFun
      • Writer Functions - WriterFun
        • Function Descriptions
      • Writer - Writer
        • Function Descriptions
  • Foundation Modules
    • Module Index
    • Base Library
    • Priority Queues - Heap, PQueue
      • Heaps - Heap
        • Function Descriptions
      • Priority Queues - PQueue
        • Function Descriptions
    • Error Handling, License, Memory System, Standard Output, Quadruple Precision - Error, License, Memory, Print, VQuad
      • Error Handling - Error
        • Function Descriptions
      • License Check - License
        • Function Descriptions
      • Memory System - Memory
        • Function Descriptions
      • Standard Output - Print
        • Function Descriptions
      • Quadruple Precision - VQuad
        • Function Descriptions
    • Object Collections - List, Stack, Dictionary, HashTable, VHashTable, Tree
      • Randomly Accessible Sequences - List
        • Function Descriptions
      • Last-In First-Out Storage - Stack
        • Function Descriptions
      • Storage Accessed by Name - Dictionary
        • Function Descriptions
      • Storage Accessed by Integer - HashTable
        • Function Descriptions
      • Multiple Integer Key Hashtable - VHashTable
        • Function Descriptions
      • Tree Data Structure - Tree
        • Function Descriptions
    • Numeric Type Collections - BitVec, DblVec, FltVec, IntDict, DblDict, IntHash, IntVHash, IntQue, IntVec
      • Bit Vectors - BitVec
        • Function Descriptions
      • Real Vectors (single FltVec) - DblVec
        • Function Descriptions
      • Integer Dictionary - IntDict
        • Function Descriptions
      • Double Dictionary - DblDict
        • Function Descriptions
      • Integer Hashtable - IntHash
        • Function Descriptions
      • Double Hashtable - DblHash
        • Function Descriptions
      • Integer, Multiple Integer Key, Hashtable - IntVHash
        • Function Descriptions
      • Integer Queue - IntQue
        • Function Descriptions
      • Integer Vectors - IntVec
        • Function Descriptions
    • Utilities - PropSet, Random, DataTable, Concat, LinkList, StrUtil
      • Property Sets - PropSet
        • Function Descriptions
      • Random Numbers - Random
        • Function Descriptions
      • Data Tables - DataTable
        • Function Descriptions
      • Concatenated Storage - Concat
        • Function Descriptions
      • Linked List Storage - LinkList
        • Function Descriptions
      • String Utilities - StrUtil
        • Function Descriptions
    • Geometry Tools - VertLoc, LineCon, TriCon, ADTree, Pred
      • Point Colocation - VertLoc
        • Function Descriptions
      • Line Connectivity - LineCon
        • Function Descriptions
      • Triangle Connectivity - TriCon
        • Function Descriptions
      • Geometric Searching, Alternating Digital Tree - ADTree
        • Function Descriptions
      • Geometric Predicates - Pred
        • Function Descriptions
    • System - MachInfo, PTask, Timer, VSocket
      • Machine Information - MachInfo
        • Function Descriptions
      • Threading - PTask
        • Function Descriptions
      • Timers - Timer
        • Function Descriptions
      • Socket Communication - VSocket
        • Function Descriptions
    • Text Processing - TextFun, TextTee, PlainText, HTMLText, LaTeXText
      • Text Functions - TextFun
      • File Operations
      • Text Attributes and Modes
      • Text Primitives
      • Forms and Form Actions
        • Function Descriptions
      • Text Tee - TextTee
        • Function Descriptions
      • Plain Text Format - PlainText
        • Function Descriptions
      • HTML Text Format - HTMLText
        • Function Descriptions
      • LaTeX Text Format - LaTeXText
        • Function Descriptions
  • Global Modules
    • Module Index
    • Introduction
      • Module Summary
    • Grid Topology and Geometry - Connect, GridFun
      • Finite Element (Unstructured) Grids - Connect
        • Node and Element Editing and Element Adjacency Query
        • Node and Element Associations
        • Element, Element Face, Element Edge and Node Groups
        • Element Face Normals and Edge Tangents
        • Geometric Tesselation
        • Parallel Functions
        • Attribute Objects
        • Function Descriptions
      • Grid Topology and Geometry Query Functions - GridFun
        • Function Descriptions
    • Entity Sets and Identifier Translation - Group, IdTran
      • Entity Sets - Group
        • Function Descriptions
      • Entity Identifier Translation - IdTran
        • Function Descriptions
    • Data Manipulation - ElemDat, State, History, RedMat, ZState, ResultMetadata
      • Face and Edge Data - ElemDat
        • Attribute Objects
        • Function Descriptions
      • Results Manipulation - State
        • Local Coordinate Systems
        • Parallel Functions
        • Attribute Objects
        • Function Descriptions
      • History Results Manipulation - History
        • Attribute Objects
        • Function Descriptions
      • System Degree of Freedom Data - RedMat
        • Function Descriptions
      • Results Compression - ZState
        • Attribute Objects
        • Function Descriptions
      • Result Metadata - ResultMetadata
        • Function Descriptions
    • Space and Range Searching - Space, Range
      • Spatial Searching - Space
        • Attribute Objects
        • Function Descriptions
      • Range Searching - Range
        • Attribute Objects
        • Function Descriptions
    • Loads and Constraints - LCase, RCase, MCase, ICase
      • Load Case - LCase
        • Function Descriptions
      • Restraint Case - RCase
        • Function Descriptions
      • Multipoint Constraint Case - MCase
        • Function Descriptions
      • Initial Condition Case - ICase
        • Function Descriptions
    • Contact Pairs, Surfaces - CPair, ASurf, RBody
      • Contact Pair - CPair
        • Function Descriptions
      • Analytic Surface - ASurf
        • Function Descriptions
      • Rigid Body - RBody
        • Function Descriptions
    • Properties and Functions - GProp, EProp, MProp, SProp, TCurve, RProp, UProp
      • Global Properties - GProp
        • Function Descriptions
      • Element Properties - EProp
        • Function Descriptions
      • Material Properties - MProp
        • Function Descriptions
      • Solution Properties - SProp
        • Function Descriptions
      • Tabular Functions - TCurve
        • Function Descriptions
      • Results Properties - RProp
        • Function Descriptions
      • User Defined Properties - UProp
        • Function Descriptions
    • Beam Section Properties Calculator - BeamSectCalculator
      • Function Descriptions
    • Utilities - Model, ElemChk, MassPrp, Mesh Metric
      • Finite Element Model - Model
        • Function Descriptions
      • Element Checking - ElemChk
        • Shape Parameters
        • Attribute Objects
        • Function Descriptions
      • Mass Properties - MassPrp
        • Attribute Objects
        • Function Descriptions
      • Mesh Metric - Mesh Metric
        • Function Descriptions
  • Legacy Visualization Modules
    • Module Index
    • Attributes - CoordSys, Units, VisContext
      • Coordinate System - CoordSys
        • Function Descriptions
      • Units - Units
        • Function Descriptions
      • Visualization Context - VisContext
        • Function Descriptions
    • Color and Transparency Mapping - Levels, ColorMap, TransMap, Legend
      • Map Field Magnitude to Level - Levels
        • Function Descriptions
      • Color Mapping - ColorMap
        • Function Descriptions
      • Transparency Mapping - TransMap
        • Function Descriptions
      • Color and Transparency Mapping Diagrams - Legend
        • Attribute Objects
        • Function Descriptions
    • Isosurface Clipping, Data Interpolation - IsoClip, DataInt, PrmClp
      • Isosurface Clipping - IsoClip
        • Function Descriptions
      • Data Interpolation - DataInt
        • Function Descriptions
      • Graphics Primitive Clipping - PrmClp
        • Attribute Objects
        • Function Descriptions
    • Discrete Markers and Values - Mark, Value
      • Markers - Mark
        • Attribute Objects
        • Function Descriptions
      • Values - Value
        • Attribute Objects
        • Function Descriptions
    • Wire Frame and Shaded Surface Rendering - Edge, Face, Cell
      • Wire Frame Rendering - Edge
        • Attribute Objects
        • Function Descriptions
      • Shaded Surface - Face
        • Attribute Objects
        • Function Descriptions
      • Shaded Solid - Cell
        • Attribute Objects
        • Function Descriptions
    • Isovalues - Segment, Contour, Threshold, IsoLabel
      • 1D Domains - Segment
        • Attribute Objects
        • Function Descriptions
      • 2D Domains - Contour
        • Attribute Objects
        • Function Descriptions
      • 3D Domains - Threshold
        • Attribute Objects
        • Function Descriptions
      • 2D Contour Line Labeling - IsoLabel
        • Attribute Objects
        • Function Descriptions
    • Tangent Curve Generation - Trace, Stream
      • 2D Domains - Trace
        • Attribute Objects
        • Function Descriptions
      • 3D Domains - Stream
        • Attribute Objects
        • Function Descriptions
    • Annotation - Axis, Billboard, Dimension, Font, Glyph, Tess, Triad
      • Annotated Axes - Axis
        • Attribute Objects
        • Function Descriptions
      • Billboard Displays - Billboard
        • Attribute Objects
        • Function Descriptions
      • Dimensioning - Dimension
        • Attribute Objects
        • Function Descriptions
      • Stroked Text - Font
        • Attribute Objects
        • Function Descriptions
      • Markers and Glyphs - Glyph
        • Segmented Glyphs
        • Attribute Objects
        • Function Descriptions
      • Tesselation Tools - Tess
        • Attribute Objects
        • Function Descriptions
      • Coordinate System Triads - Triad
        • Attribute Objects
        • Function Descriptions
    • Manipulators - HandleBox, PolyBox, WorkPlane
      • Handle Box - HandleBox
        • Attribute Objects
        • Function Descriptions
      • Polygon Box - PolyBox
        • Attribute Objects
        • Function Descriptions
      • Work Plane - WorkPlane
        • Attribute Objects
        • Function Descriptions
    • Beam Elements and Beam Sections - BeamElem, BeamSect
      • Beam Elements - BeamElem
        • Attribute Objects
        • Function Descriptions
      • Beam Section Properties - BeamSect
        • Attribute Objects
        • Function Descriptions
    • Shell Elements and Shell Walls - ShellElem, ShellWall
      • Shell Elements - ShellElem
        • Attribute Objects
        • Function Descriptions
      • Shell Wall Properties - ShellWall
        • Attribute Objects
        • Function Descriptions
    • Rigid, Mass, Spring and Gap Elements - RigidElem, MassElem, DiscElem, GapElem
      • Rigid Elements - RigidElem
        • Attribute Objects
        • Function Descriptions
      • Mass Elements - MassElem
        • Attribute Objects
        • Function Descriptions
      • Spring and Dashpot Elements - DiscElem
        • Attribute Objects
        • Function Descriptions
      • Gap Elements - GapElem
        • Attribute Objects
        • Function Descriptions
    • Report Writing - ProRender
      • Rendering - ProRender
        • Function Descriptions
  • Data Provider Framework
    • Enum Descriptions
      • Data Provider Types
    • Class Descriptions
      • CDPChangeNotifications
      • CDPClientRequest
      • CDPClientResponse
      • CDPColor4
      • CDPDataProviderFactory
      • CDPDataProviderInfo
      • CDPDataProvider
      • CDPElementGroupInfo
      • CDPElementGroup
      • CDPError
      • CDPGeometryInfo
      • CDPGeometrySpec
      • CDPGeometry
      • CDPInitOptions
      • CDPLogHelper
      • CDPMetaData
      • CDPNodeGroup
      • CDPResultInfo
      • CDPResultSpec
      • CDPResultValueGroup
      • CDPResult
      • CDPSet
      • CDPStateInfo
      • CDPString
      • CDPTransformations
      • CDPUtils
      • CDPVec3
      • CDPVisibilityResultValueGroup
      • CDPVisibilityResult
    • Struct Descriptions
      • CDP_FrameworkServices
      • CDP_RegisterProviderParams

Additional Resources

  • Release Notes
    • SAM 2.x Releases
      • SAM 2.12.x - latest [September 30, 2025]
        • Fixed Bugs
        • New Features
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.11.x - [September 4, 2025]
        • Fixed Bugs
        • New Features
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.10.x - [July 28, 2025]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.9.x - [Jun 11, 2025]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.8.x - [Apr 29, 2025]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.7.x - [Mar 21, 2025]
        • Fixed Bugs
        • New Features
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.6.x [Jan 22, 2025]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.5.x [Dec 16, 2024]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
        • Provided Third Parties
      • SAM 2.4.x [Nov 20, 2024]
        • Fixed Bugs
        • New Features
        • Patches
        • Benchmark Report of HOOPS Solve
      • SAM 2.3.x [Oct 1, 2024]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 2.2 [Aug 23, 2024]
        • Fixed Bugs
        • New Features
      • SAM 2.1.x [Jul 15, 2024]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 2.0 [Jun 5, 2024]
        • Fixed Bugs
        • New Features
    • SAM 1.x Releases
      • SAM 1.11.x [Apr 18, 2024]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.10.x [Feb 28, 2024]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.9.x [Dec 20, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.8.x [Nov 7, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.7.x [Sep 29, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.6.x [Aug 16, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.5.x [Jul 4, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.4.x May 26, 2023
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.3.x [Apr 28, 2023]
        • Fixed Bugs
        • New Features
        • Patches
      • SAM 1.2.x [Feb 17, 2023]
        • Fixed Bugs
        • New Features
        • Feature Gaps
        • Patches
      • SAM 1.0.x [Sep 28, 2022]
        • Fixed Bugs
        • New Features
        • Patches
  • Downloads
  • Evaluation
  • Archives
    • 2025
    • 2024
    • 2023
    • 2022

Support

  • Developer Support
  • Community Forum
  • Contact Us
HOOPS Access
  • Print Table of Contents
Previous Next

Print Table of Contents

Contents

  • Overview
  • Step 1: Initialize and Setup
  • Step 2: Open File with Library Manager
  • Step 3: Error Checking
  • Step 4: Print Table of Contents
  • Step 5: Cleanup
  • Expected Output
  • Complete Source Code

This example demonstrates how to open an SDRC Universal file and display its table of contents using the Library Manager interface. We’ll walk through the process step by step, showing you how to initialize the library manager, open a file, and print a complete table of contents.

Overview

The example performs the following main tasks:

  1. Parse command line arguments, and validate license
  2. Open the file using Library Manager
  3. Check for errors and handle them appropriately
  4. Print the complete table of contents
  5. Clean up resources

Let’s examine each step in detail.

Step 1: Initialize and Setup

First, we include necessary headers, declare variables, and handle command line arguments:

C
#include "sam/base/base.h"
#include "sam/vdm/vdm.h"
#include "sam/base/license.h"
#include "sam/hoops_license.h"

int main(int argc, char** argv)
{
    char inputFile[256];
    /* check input arguments */
    if (argc < 2) {
        fprintf(stderr, "Usage: %s inputfile [appendfile]\n", argv[0]);
        fprintf(stderr, " inputfile is blank, 'bumper.unv' is assumed\n");
        strcpy(inputFile, "bumper.unv");
    }
    else {
        strcpy(inputFile, argv[1]);
    }

    vsy_LicenseValidate(HOOPS_LICENSE);

The program provides helpful information about all the datasets in the “bumper.unv” file which is provided along with the SDK. The license is validated using the vsy_LicenseValidate() function.

Step 2: Open File with Library Manager

Next, we create a Library Manager and open the input file:

C
/* Open file */
vdm_LMan* libraryManager = vdm_LManBegin();
vdm_LManOpenFile(libraryManager, inputFile, nullptr);

The LMan (Library Manager) provides a high-level interface for file operations, automatically detecting the file format and initializing the appropriate library based on the file format. A nullptr is provided instead of options since we are not interested in any particular options or conventions while reading this file.

Step 3: Error Checking

After opening the file, we check for any errors and handle them appropriately:

C
/* check for error */
Vint ierr = vdm_LManError(libraryManager);
if (ierr) {
    fprintf(stderr, "Error: opening file %s\n", inputFile);
    vdm_LManCloseFile(libraryManager);
    vdm_LManEnd(libraryManager);
    exit(1);
}

Proper error checking is essential when working with file operations. The Library Manager provides a simple error checking mechanism through vdm_LManError().

Step 4: Print Table of Contents

Now we use the Library Manager’s built-in table of contents function:

C
vdm_LManSetParami(libraryManager, LMAN_VERBOSE, SYS_ON);
vdm_LManTOC(libraryManager, "*");

The vdm_LManSetParami() function is used to configure the Library Manager’s behavior. In this case, we set the LMAN_VERBOSE parameter to SYS_ON, which enables detailed output formatting for the table of contents. This provides the dataset attribute information. Then, vdm_LManTOC() function provides a complete table of contents for the file. The “*” parameter is a wildcard that indicates to get information about all datasets. You can also use specific patterns like “D.N*” to get only displacement datasets for each iteration/timestep.

Step 5: Cleanup

Finally, we close the file and free all allocated resources:

C
vdm_LManCloseFile(libraryManager);
vdm_LManEnd(libraryManager);
return 0;

The Library Manager interface requires only two cleanup calls: vdm_LManCloseFile() to close the file and vdm_LManEnd() to free the Library Manager object.

Expected Output

When you run this example with a typical Universal file, you’ll see a comprehensive table of contents output similar to:

Library Table of Contents
Path: bumper.unv
Type: SDRC/IDEAS Universal File
IDst         LRec  NRow     NCol Type NAtt  Dataset
    0          200     1      200    1    2  PARAMETER.INT.T
                Model = Parameters
        Description = Model Integer Parameters
    1          200     1      200    3    2  PARAMETER.HOL.T
                Model = Parameters
        Description = Model Hollerith Parameters
    2         1956     3      652    2    4  X.N
                Model = Mesh
        Description = Node Coordinates
            Contents = Position
            DataType = Vector
    3          652     1      652    1    2  NID.N
                Model = Mesh
        Description = Node User Identifier

Complete Source Code

The complete source code for this example can be found at: src/sam/vdm/exam/exam1.cpp

You can also view the full source here:

 1#include "sam/base/base.h"
 2#include "sam/vdm/vdm.h"
 3#include "sam/base/license.h"
 4#include "sam/hoops_license.h"
 5
 6/*----------------------------------------------------------------------
 7                      Print Table of Contents
 8----------------------------------------------------------------------*/
 9int
10main(int argc, char** argv)
11{
12    char inputFile[256];
13    /* check input arguments */
14    if (argc < 2) {
15        fprintf(stderr, "Usage: %s inputfile [appendfile]\n", argv[0]);
16        fprintf(stderr, " inputfile is blank, 'bumper.unv' is assumed\n");
17        strcpy(inputFile, "bumper.unv");
18    }
19    else {
20        strcpy(inputFile, argv[1]);
21    }
22
23    vsy_LicenseValidate(HOOPS_LICENSE);
24
25    /* Open file */
26    vdm_LMan* libraryManager = vdm_LManBegin();
27    vdm_LManOpenFile(libraryManager, inputFile, nullptr);
28
29    /* check for error */
30    Vint ierr = vdm_LManError(libraryManager);
31    if (ierr) {
32        fprintf(stderr, "Error: opening file %s\n", inputFile);
33        vdm_LManCloseFile(libraryManager);
34        vdm_LManEnd(libraryManager);
35        exit(1);
36    }
37    /* Set verbose mode */
38    vdm_LManSetParami(libraryManager, LMAN_VERBOSE, SYS_ON);
39    vdm_LManTOC(libraryManager, "*");
40
41    vdm_LManCloseFile(libraryManager);
42    vdm_LManEnd(libraryManager);
43    return 0;
44}
Previous Next

© Copyright 2025, Tech Soft 3D

Welcome Conversation saved
HOOPSY BETA

Hello! I'm HOOPSY

Your Docs generative AI assistant. Ask me anything about HOOPS Access or choose a sample question below to start a conversation:

What is HOOPS Access?
What are the latest release notes for HOOPS Access?
How do I start evaluating HOOPS Access?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...
Return to top